From: Michał Mirosław Date: Wed, 16 Nov 2011 14:05:33 +0000 (+0000) Subject: net: verify GSO flag bits against netdev features X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=0345e1864283207bc236120dd3e13ff2391fa85f;p=mv-sheeva.git net: verify GSO flag bits against netdev features Signed-off-by: Michał Mirosław Signed-off-by: David S. Miller --- diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index b35ffd735ec..31da3bbe7b1 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -2492,6 +2492,15 @@ netdev_features_t netif_skb_features(struct sk_buff *skb); static inline int net_gso_ok(netdev_features_t features, int gso_type) { netdev_features_t feature = gso_type << NETIF_F_GSO_SHIFT; + + /* check flags correspondence */ + BUILD_BUG_ON(SKB_GSO_TCPV4 != (NETIF_F_TSO >> NETIF_F_GSO_SHIFT)); + BUILD_BUG_ON(SKB_GSO_UDP != (NETIF_F_UFO >> NETIF_F_GSO_SHIFT)); + BUILD_BUG_ON(SKB_GSO_DODGY != (NETIF_F_GSO_ROBUST >> NETIF_F_GSO_SHIFT)); + BUILD_BUG_ON(SKB_GSO_TCP_ECN != (NETIF_F_TSO_ECN >> NETIF_F_GSO_SHIFT)); + BUILD_BUG_ON(SKB_GSO_TCPV6 != (NETIF_F_TSO6 >> NETIF_F_GSO_SHIFT)); + BUILD_BUG_ON(SKB_GSO_FCOE != (NETIF_F_FSO >> NETIF_F_GSO_SHIFT)); + return (features & feature) == feature; }