macvtap: Correctly set tap features when IFF_VNET_HDR is disabled.
authorVlad Yasevich <vyasevic@redhat.com>
Fri, 16 Aug 2013 19:25:01 +0000 (15:25 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Aug 2013 20:09:11 +0000 (13:09 -0700)
When the user turns off IFF_VNET_HDR flag, attempts to change
offload features via TUNSETOFFLOAD do not work.  This could cause
GSO packets to be delivered to the user when the user is
not prepared to handle them.

To solve, allow processing of TUNSETOFFLOAD when IFF_VNET_HDR is
disabled.

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

index 448f8a505cd963843d99bcff906e0713476f709c..4acfbce63a7d6e04b8a8583ae1d1a66d6276a775 100644 (file)
@@ -1163,10 +1163,6 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
                            TUN_F_TSO_ECN | TUN_F_UFO))
                        return -EINVAL;
 
-               /* TODO: only accept frames with the features that
-                        got enabled for forwarded frames */
-               if (!(q->flags & IFF_VNET_HDR))
-                       return  -EINVAL;
                rtnl_lock();
                ret = set_offload(q, arg);
                rtnl_unlock();