[dpdk-dev,v2] igb_uio: only check for pci bridge if supported by linux kernel
Checks
Commit Message
From: Scott Branden <scott.branden@broadcom.com>
Starting from Linux v3.16 pci_is_bridge() is in linux/pci.h,
in previous versions it is in drivers/pci/pci.h which is private header.
Fix build error when calling pci_is_bridge by not calling/supporting
pci_is_bridge with kernel versions before 3.16.
Fixes: 6f0841b7701b ("igb_uio: bind error if PCIe bridge")
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reported-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
--
v1->v2: add fixes line in commit message.
---
kernel/linux/igb_uio/compat.h | 4 ++++
kernel/linux/igb_uio/igb_uio.c | 2 ++
2 files changed, 6 insertions(+)
Comments
On 4/17/2018 6:52 PM, Ajit Khaparde wrote:
> From: Scott Branden <scott.branden@broadcom.com>
>
> Starting from Linux v3.16 pci_is_bridge() is in linux/pci.h,
> in previous versions it is in drivers/pci/pci.h which is private header.
>
> Fix build error when calling pci_is_bridge by not calling/supporting
> pci_is_bridge with kernel versions before 3.16.
>
> Fixes: 6f0841b7701b ("igb_uio: bind error if PCIe bridge")
>
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Reported-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
17/04/2018 20:07, Ferruh Yigit:
> On 4/17/2018 6:52 PM, Ajit Khaparde wrote:
> > From: Scott Branden <scott.branden@broadcom.com>
> >
> > Starting from Linux v3.16 pci_is_bridge() is in linux/pci.h,
> > in previous versions it is in drivers/pci/pci.h which is private header.
> >
> > Fix build error when calling pci_is_bridge by not calling/supporting
> > pci_is_bridge with kernel versions before 3.16.
> >
> > Fixes: 6f0841b7701b ("igb_uio: bind error if PCIe bridge")
> >
> > Signed-off-by: Scott Branden <scott.branden@broadcom.com>
> > Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> > Reported-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Applied, thanks
@@ -121,6 +121,10 @@ static bool pci_check_and_mask_intx(struct pci_dev *pdev)
#endif /* < 3.3.0 */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0)
+#define HAVE_PCI_IS_BRIDGE_API 1
+#endif
+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
#define HAVE_ALLOC_IRQ_VECTORS 1
#endif
@@ -473,10 +473,12 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
void *map_addr;
int err;
+#ifdef HAVE_PCI_IS_BRIDGE_API
if (pci_is_bridge(dev)) {
dev_warn(&dev->dev, "Ignoring PCI bridge device\n");
return -ENODEV;
}
+#endif
udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
if (!udev)