From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH] igb_uio: only check for pci bridge in supported by linux kernel Date: Tue, 17 Apr 2018 10:35:38 +0100 Message-ID: References: <20180416205110.1354-1-ajit.khaparde@broadcom.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: Scott Branden To: Ajit Khaparde , dev@dpdk.org Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id E574D8E85 for ; Tue, 17 Apr 2018 11:35:40 +0200 (CEST) In-Reply-To: <20180416205110.1354-1-ajit.khaparde@broadcom.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 4/16/2018 9:51 PM, Ajit Khaparde wrote: > From: Scott Branden > > 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 > Reported-by: Ferruh Yigit > --- > 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) >