diff options
| -rw-r--r-- | net/openvswitch/flow_netlink.c | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/net/openvswitch/flow_netlink.c b/net/openvswitch/flow_netlink.c index 9645a21d9eaa..d1eecf707613 100644 --- a/net/openvswitch/flow_netlink.c +++ b/net/openvswitch/flow_netlink.c | |||
| @@ -1753,7 +1753,6 @@ static int __ovs_nla_copy_actions(const struct nlattr *attr, | |||
| 1753 | __be16 eth_type, __be16 vlan_tci, bool log) | 1753 | __be16 eth_type, __be16 vlan_tci, bool log) |
| 1754 | { | 1754 | { |
| 1755 | const struct nlattr *a; | 1755 | const struct nlattr *a; |
| 1756 | bool out_tnl_port = false; | ||
| 1757 | int rem, err; | 1756 | int rem, err; |
| 1758 | 1757 | ||
| 1759 | if (depth >= SAMPLE_ACTION_DEPTH) | 1758 | if (depth >= SAMPLE_ACTION_DEPTH) |
| @@ -1796,8 +1795,6 @@ static int __ovs_nla_copy_actions(const struct nlattr *attr, | |||
| 1796 | case OVS_ACTION_ATTR_OUTPUT: | 1795 | case OVS_ACTION_ATTR_OUTPUT: |
| 1797 | if (nla_get_u32(a) >= DP_MAX_PORTS) | 1796 | if (nla_get_u32(a) >= DP_MAX_PORTS) |
| 1798 | return -EINVAL; | 1797 | return -EINVAL; |
| 1799 | out_tnl_port = false; | ||
| 1800 | |||
| 1801 | break; | 1798 | break; |
| 1802 | 1799 | ||
| 1803 | case OVS_ACTION_ATTR_HASH: { | 1800 | case OVS_ACTION_ATTR_HASH: { |
| @@ -1832,12 +1829,6 @@ static int __ovs_nla_copy_actions(const struct nlattr *attr, | |||
| 1832 | case OVS_ACTION_ATTR_PUSH_MPLS: { | 1829 | case OVS_ACTION_ATTR_PUSH_MPLS: { |
| 1833 | const struct ovs_action_push_mpls *mpls = nla_data(a); | 1830 | const struct ovs_action_push_mpls *mpls = nla_data(a); |
| 1834 | 1831 | ||
| 1835 | /* Networking stack do not allow simultaneous Tunnel | ||
| 1836 | * and MPLS GSO. | ||
| 1837 | */ | ||
| 1838 | if (out_tnl_port) | ||
| 1839 | return -EINVAL; | ||
| 1840 | |||
| 1841 | if (!eth_p_mpls(mpls->mpls_ethertype)) | 1832 | if (!eth_p_mpls(mpls->mpls_ethertype)) |
| 1842 | return -EINVAL; | 1833 | return -EINVAL; |
| 1843 | /* Prohibit push MPLS other than to a white list | 1834 | /* Prohibit push MPLS other than to a white list |
| @@ -1873,11 +1864,9 @@ static int __ovs_nla_copy_actions(const struct nlattr *attr, | |||
| 1873 | 1864 | ||
| 1874 | case OVS_ACTION_ATTR_SET: | 1865 | case OVS_ACTION_ATTR_SET: |
| 1875 | err = validate_set(a, key, sfa, | 1866 | err = validate_set(a, key, sfa, |
| 1876 | &out_tnl_port, eth_type, log); | 1867 | &skip_copy, eth_type, log); |
| 1877 | if (err) | 1868 | if (err) |
| 1878 | return err; | 1869 | return err; |
| 1879 | |||
| 1880 | skip_copy = out_tnl_port; | ||
| 1881 | break; | 1870 | break; |
| 1882 | 1871 | ||
| 1883 | case OVS_ACTION_ATTR_SAMPLE: | 1872 | case OVS_ACTION_ATTR_SAMPLE: |
