[dpdk-dev] kni: fix build with kernel 4.8
Commit Message
Linux kernel v4.8 removes macro DEFINE_PCI_DEVICE_TABLE
Linux: 7e9321599011 ("treewide: remove references to the now unnecessary
DEFINE_PCI_DEVICE_TABLE")
Added the macro to compatibility headers of the kni ethtool drivers.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 7 +++++++
lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h | 6 ++++++
2 files changed, 13 insertions(+)
Comments
On Thu, 8 Sep 2016 18:54:56 +0100
Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> Linux kernel v4.8 removes macro DEFINE_PCI_DEVICE_TABLE
>
> Linux: 7e9321599011 ("treewide: remove references to the now unnecessary
> DEFINE_PCI_DEVICE_TABLE")
>
> Added the macro to compatibility headers of the kni ethtool drivers.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 7 +++++++
> lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h | 6 ++++++
> 2 files changed, 13 insertions(+)
>
> diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
> index bdd0806..9560aae 100644
> --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
> +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
> @@ -3915,4 +3915,11 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
> /* ndo_bridge_getlink adds new filter_mask and vlan_fill parameters */
> #define HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK_VLAN_FILL
> #endif /* >= 4.2.0 */
> +
> +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0) )
> +#ifndef DEFINE_PCI_DEVICE_TABLE
> +#define DEFINE_PCI_DEVICE_TABLE(_table) const struct pci_device_id _table[]
> +#endif /* DEFINE_PCI_DEVICE_TABLE */
> +#endif /* >= 4.8.0 */
> +
Good to see the KNI driver staying up to date with upstream.
Please just remove use of DEFINE_PCI_DEVICE_TABLE rather than resurrecting it!
@@ -3915,4 +3915,11 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
/* ndo_bridge_getlink adds new filter_mask and vlan_fill parameters */
#define HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK_VLAN_FILL
#endif /* >= 4.2.0 */
+
+#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0) )
+#ifndef DEFINE_PCI_DEVICE_TABLE
+#define DEFINE_PCI_DEVICE_TABLE(_table) const struct pci_device_id _table[]
+#endif /* DEFINE_PCI_DEVICE_TABLE */
+#endif /* >= 4.8.0 */
+
#endif /* _KCOMPAT_H_ */
@@ -3140,4 +3140,10 @@ static inline int __kc_pci_vfs_assigned(struct pci_dev *dev)
#define SET_ETHTOOL_OPS(netdev, ops) ((netdev)->ethtool_ops = (ops))
#endif /* >= 3.16.0 */
+#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0) )
+#ifndef DEFINE_PCI_DEVICE_TABLE
+#define DEFINE_PCI_DEVICE_TABLE(_table) const struct pci_device_id _table[]
+#endif /* DEFINE_PCI_DEVICE_TABLE */
+#endif /* >= 4.8.0 */
+
#endif /* _KCOMPAT_H_ */