diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2014-12-16 15:05:01 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-12-16 11:19:41 -0500 |
commit | 5eea84f478537de769330079dc068414f9d417f4 (patch) | |
tree | e41a7f8c33e87894ce9cd99a46388766d8db331e | |
parent | 39ec7de7092ba9789f211d112a66bd19d4cb5d36 (diff) | |
download | linux-stable-5eea84f478537de769330079dc068414f9d417f4.tar.gz linux-stable-5eea84f478537de769330079dc068414f9d417f4.tar.bz2 linux-stable-5eea84f478537de769330079dc068414f9d417f4.zip |
if_tun: add TUNSETVNETLE/TUNGETVNETLE
ifreq flags field is only 16 bit wide, so setting IFF_VNET_LE there has
no effect:
doesn't fit in two bytes.
The tests passed apparently because they have an even number of bugs,
all cancelling out.
Luckily we didn't release a kernel with this flag, so it's
not too late to fix this.
Add TUNSETVNETLE/TUNGETVNETLE to really achieve the purpose
of IFF_VNET_LE.
This has an added benefit that if we ever want a BE flag,
we won't have to deal with weird configurations like
setting both LE and BE at the same time.
IFF_VNET_LE will be dropped in a follow-up patch.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/uapi/linux/if_tun.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/uapi/linux/if_tun.h b/include/uapi/linux/if_tun.h index 18b2403982f9..274630caa276 100644 --- a/include/uapi/linux/if_tun.h +++ b/include/uapi/linux/if_tun.h @@ -48,6 +48,8 @@ #define TUNSETQUEUE _IOW('T', 217, int) #define TUNSETIFINDEX _IOW('T', 218, unsigned int) #define TUNGETFILTER _IOR('T', 219, struct sock_fprog) +#define TUNSETVNETLE _IOW('T', 220, int) +#define TUNGETVNETLE _IOR('T', 221, int) /* TUNSETIFF ifr flags */ #define IFF_TUN 0x0001 |