diff options
author | Adrien Mazarguil <adrien.mazarguil@6wind.com> | 2013-03-21 12:09:23 +0100 |
---|---|---|
committer | Thomas Monjalon <thomas.monjalon@6wind.com> | 2014-01-15 18:11:18 +0100 |
commit | caa3d413086205f3bff0fa4753edb7dfbfc1f633 (patch) | |
tree | 3f153e815e6a923cc5416eb23162eec7f68862ef /lib | |
parent | da1ae3c6ed7cde3c9e9cff08037c1f685e4f691e (diff) | |
download | dpdk-caa3d413086205f3bff0fa4753edb7dfbfc1f633.zip dpdk-caa3d413086205f3bff0fa4753edb7dfbfc1f633.tar.gz dpdk-caa3d413086205f3bff0fa4753edb7dfbfc1f633.tar.xz |
kni: fix build with kernel < 3.3 with netdev_features_t backport
The netdev_features_t typedef appeared in Linux 3.3, but checking the kernel
version isn't enough with some distributions (such as Debian Wheezy) that
backported it into 3.2, causing a compilation failure due to redefinition.
Since the presence of a typedef can't be tested at compile time, this commit
adds type kni_netdev_features_t, which, depending on the kernel version,
translates either to u32 or netdev_features_t.
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 6 | ||||
-rw-r--r-- | lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 3 | ||||
-rw-r--r-- | lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h | 3 |
3 files changed, 7 insertions, 5 deletions
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c index b92a492..f199133 100644 --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c @@ -1837,8 +1837,8 @@ void igb_reset(struct igb_adapter *adapter) } #ifdef HAVE_NDO_SET_FEATURES -static netdev_features_t igb_fix_features(struct net_device *netdev, - netdev_features_t features) +static kni_netdev_features_t igb_fix_features(struct net_device *netdev, + kni_netdev_features_t features) { /* * Since there is no support for separate tx vlan accel @@ -1855,7 +1855,7 @@ static netdev_features_t igb_fix_features(struct net_device *netdev, } static int igb_set_features(struct net_device *netdev, - netdev_features_t features) + kni_netdev_features_t features) { u32 changed = netdev->features ^ features; diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h index 0a578be..1d86c2b 100644 --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h @@ -3024,8 +3024,9 @@ static inline void __kc_skb_frag_unref(skb_frag_t *frag) /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) ) -typedef u32 netdev_features_t; +typedef u32 kni_netdev_features_t; #else /* ! < 3.3.0 */ +typedef netdev_features_t kni_netdev_features_t; #define HAVE_INT_NDO_VLAN_RX_ADD_VID #ifdef ETHTOOL_SRXNTUPLE #undef ETHTOOL_SRXNTUPLE diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h index ea94ef6..1c4e057 100644 --- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h +++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h @@ -3081,8 +3081,9 @@ static inline void __kc_skb_frag_unref(skb_frag_t *frag) /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) ) -typedef u32 netdev_features_t; +typedef u32 kni_netdev_features_t; #else /* ! < 3.3.0 */ +typedef netdev_features_t kni_netdev_features_t; #define HAVE_INT_NDO_VLAN_RX_ADD_VID #ifdef ETHTOOL_SRXNTUPLE #undef ETHTOOL_SRXNTUPLE |