macvtap: Ignore tap features when VNET_HDR is off
authorVlad Yasevich <vyasevic@redhat.com>
Fri, 16 Aug 2013 19:25:02 +0000 (15:25 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Aug 2013 20:09:12 +0000 (13:09 -0700)
When the user turns off VNET_HDR support on the
macvtap device, there is no way to provide any
offload information to the user.  So, it's safer
to ignore offload setting then depend on the user
setting them correctly.

Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/macvtap.c

index 4acfbce63a7d6e04b8a8583ae1d1a66d6276a775..ea53abb209889ed1032323bfcebd154e68fc1d1d 100644 (file)
@@ -290,9 +290,11 @@ static int macvtap_forward(struct net_device *dev, struct sk_buff *skb)
 
        skb->dev = dev;
        /* Apply the forward feature mask so that we perform segmentation
-        * according to users wishes.
+        * according to users wishes.  This only works if VNET_HDR is
+        * enabled.
         */
-       features |= vlan->tap_features;
+       if (q->flags & IFF_VNET_HDR)
+               features |= vlan->tap_features;
        if (netif_needs_gso(skb, features)) {
                struct sk_buff *segs = __skb_gso_segment(skb, features, false);