[dpdk-dev] [PATCH] igb_uio: only check for pci bridge in supported by linux kernel

Ferruh Yigit ferruh.yigit at intel.com
Tue Apr 17 11:35:38 CEST 2018


On 4/16/2018 9:51 PM, Ajit Khaparde wrote:
> From: Scott Branden <scott.branden at 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.

Thanks for the patch, this is mainly solves the issue, only a few nit-picking:
can you covert title to a fix patch and add a fixes line please? This is to fix
the build error with some kernels.

> 
> Signed-off-by: Scott Branden <scott.branden at broadcom.com>
> Reported-by: Ferruh Yigit <ferruh.yigit at intel.com>
> ---
>  kernel/linux/igb_uio/compat.h  | 4 ++++
>  kernel/linux/igb_uio/igb_uio.c | 2 ++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/kernel/linux/igb_uio/compat.h b/kernel/linux/igb_uio/compat.h
> index ce456d4bb..b48c4cc91 100644
> --- a/kernel/linux/igb_uio/compat.h
> +++ b/kernel/linux/igb_uio/compat.h
> @@ -132,3 +132,7 @@ static bool pci_check_and_mask_intx(struct pci_dev *pdev)
>  #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0)
>  #define HAVE_PCI_MSI_MASK_IRQ 1
>  #endif
> +
> +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0)
> +#define HAVE_PCI_IS_BRIDGE_API 1
> +#endif

Can you keep check with version order, add this part after "3.3.0" one, I am
aware "4, 8, 0" one breaks the order it seems that has slipped...

> diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
> index cbc5ab63a..cd9b7e721 100644
> --- a/kernel/linux/igb_uio/igb_uio.c
> +++ b/kernel/linux/igb_uio/igb_uio.c
> @@ -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)
> 



More information about the dev mailing list