Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'ovs-8021AD-fixes'

Jiri Benc says:

====================
openvswitch: vlan fixes

Fix three issues introduced by the 802.1AD patchset.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>

+4 -3
+1 -1
net/openvswitch/flow.c
··· 343 343 key->eth.cvlan.tci = 0; 344 344 key->eth.cvlan.tpid = 0; 345 345 346 - if (likely(skb_vlan_tag_present(skb))) { 346 + if (skb_vlan_tag_present(skb)) { 347 347 key->eth.vlan.tci = htons(skb->vlan_tci); 348 348 key->eth.vlan.tpid = skb->vlan_proto; 349 349 } else {
+1 -1
net/openvswitch/vport-internal_dev.c
··· 176 176 177 177 netdev->vlan_features = netdev->features; 178 178 netdev->hw_enc_features = netdev->features; 179 - netdev->features |= NETIF_F_HW_VLAN_CTAG_TX; 179 + netdev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX; 180 180 netdev->hw_features = netdev->features & ~NETIF_F_LLTX; 181 181 182 182 eth_hw_addr_random(netdev);
+2 -1
net/openvswitch/vport.c
··· 485 485 { 486 486 unsigned int length = skb->len - ETH_HLEN; 487 487 488 - if (skb_vlan_tagged(skb)) 488 + if (!skb_vlan_tag_present(skb) && 489 + eth_type_vlan(skb->protocol)) 489 490 length -= VLAN_HLEN; 490 491 491 492 /* Don't subtract for multiple VLAN tags. Most (all?) drivers allow