summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAdrien Mazarguil <adrien.mazarguil@6wind.com>2013-03-21 12:09:23 +0100
committerThomas Monjalon <thomas.monjalon@6wind.com>2014-01-15 18:11:18 +0100
commitcaa3d413086205f3bff0fa4753edb7dfbfc1f633 (patch)
tree3f153e815e6a923cc5416eb23162eec7f68862ef /lib
parentda1ae3c6ed7cde3c9e9cff08037c1f685e4f691e (diff)
downloaddpdk-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.c6
-rw-r--r--lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h3
-rw-r--r--lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h3
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