From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id D281F677B for ; Fri, 31 Oct 2014 02:47:29 +0100 (CET) Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s9V1uNmF008367 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Thu, 30 Oct 2014 21:56:25 -0400 Received: from dhcp-66-71-51.eng.nay.redhat.com (dhcp-66-71-51.eng.nay.redhat.com [10.66.71.51] (may be forged)) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s9V1uLa0019279 for ; Thu, 30 Oct 2014 21:56:22 -0400 Message-ID: <5452EBDA.2090706@redhat.com> Date: Fri, 31 Oct 2014 09:54:34 +0800 From: Jincheng Miao User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: dev@dpdk.org References: <1414657104-16141-1-git-send-email-jmiao@redhat.com> In-Reply-To: <1414657104-16141-1-git-send-email-jmiao@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 Subject: Re: [dpdk-dev] [PATCH] igb_uio: fix build for longterm kernel 2.6.32.63 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Oct 2014 01:47:30 -0000 This patch will make RHEL6 build failed. The root cause is that RHEL-based kernel is slightly different with upstream kernel. It has some functions (pci_num_vf, kstrtoul, etc) which don't exist in upstream longterm kernel. For better compatibility, IMHO it is distinguishing RHEL-based kernel and upstream one. Using macro like: ``` #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) && \ !(defined(RHEL_RELEASE_CODE) && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 3)) static int pci_num_vf(struct pci_dev *dev) { ``` But this is RHEL-specified fix. For other distros, if they have some problem, we should hack it in the same way. Thanks and regards, Jincheng Miao 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_uio/igb_uio.o > /root/dpdk-source/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c: In function ‘show_max_vfs’: > /root/dpdk-source/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:75: error: implicit declaration of function ‘pci_num_vf’ > > 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 > > #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) && \ > - !defined(CONFIG_PCI_IOV) > + defined(CONFIG_PCI_IOV) > > static int pci_num_vf(struct pci_dev *dev) > {