From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] igb_uio: fix build for longterm kernel 2.6.32.63 Date: Fri, 31 Oct 2014 09:53:10 +0100 Message-ID: <5765562.Md9X049dkv@xps13> References: <1414657104-16141-1-git-send-email-jmiao@redhat.com> <5452EBDA.2090706@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Cc: dev-VfR2kkLFssw@public.gmane.org To: Jincheng Miao Return-path: In-Reply-To: <5452EBDA.2090706-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" Hi Jincheng, 2014-10-31 09:54, Jincheng Miao: > This patch will make RHEL6 build failed. >=20 > The root cause is that RHEL-based kernel is slightly different with=20= > upstream kernel. > It has some functions (pci_num_vf, kstrtoul, etc) which don't exist i= n=20 > upstream longterm kernel. Yes it seems that the functions are stub-defined in RHEL if CONFIG_PCI_= IOV is not defined. > For better compatibility, IMHO it is distinguishing RHEL-based kernel= =20 > and upstream one. Yes we have to handle the RedHat difference. > Using macro like: > ``` > #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) && \ > !(defined(RHEL_RELEASE_CODE) && RHEL_RELEASE_CODE >=3D=20 > RHEL_RELEASE_VERSION(6, 3)) >=20 > static int pci_num_vf(struct pci_dev *dev) > { > ``` >=20 > But this is RHEL-specified fix. For other distros, if they have some=20= > problem, we should hack it in the same way. >=20 > Thanks and regards, > Jincheng Miao >=20 >=20 > On 10/30/2014 04:18 PM, Jincheng Miao wrote: > > There is a logical error in igb_uio/compat.h when define pci_num_vf= (). > > Only CONFIG_PCI_IOV enabled, this function could be defined. > > > > This patch fix the following error for linux-2.6.32.63: > > CC [M] /root/dpdk-source/build/build/lib/librte_eal/linuxapp/igb_u= io/igb_uio.o > > /root/dpdk-source/build/build/lib/librte_eal/linuxapp/igb_uio/igb_u= io.c: In function =E2=80=98show_max_vfs=E2=80=99: > > /root/dpdk-source/build/build/lib/librte_eal/linuxapp/igb_uio/igb_u= io.c:75: error: implicit declaration of function =E2=80=98pci_num_vf=E2= =80=99 > > > > Signed-off-by: Jincheng Miao > > --- > > lib/librte_eal/linuxapp/igb_uio/compat.h | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/lib/librte_eal/linuxapp/igb_uio/compat.h b/lib/librte_= eal/linuxapp/igb_uio/compat.h > > index 676fa1b..0af0cae 100644 > > --- a/lib/librte_eal/linuxapp/igb_uio/compat.h > > +++ b/lib/librte_eal/linuxapp/igb_uio/compat.h > > @@ -21,7 +21,7 @@ > > #endif > > =20 > > #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) && \ > > -=09!defined(CONFIG_PCI_IOV) > > +=09defined(CONFIG_PCI_IOV) > > =20 > > static int pci_num_vf(struct pci_dev *dev) > > {