[dpdk-dev] [PATCH] kni: fix build for debian kernel 3.2

Neil Horman nhorman at tuxdriver.com
Tue Apr 29 16:23:44 CEST 2014


On Tue, Apr 29, 2014 at 04:16:03PM +0200, David Marchand wrote:
> Following debian kernel headers upgrade to 3.2.57-3, pci capability accessors
> have been backported (upstream commit 8c0d3a02c1309eb6112d2e7c8172e8ceb26ecfca,
> ("PCI: Add accessors for PCI Express Capability", v3.7-rc1)).
> 
> It results in the same compilation error as redhat 6.x.
> However, there is no clear way to determine we are building on a debian kernel.
> So, rather than determine if we are building on a distribution kernel, look at
> PCI_EXP_LNKSTA2 that appeared in this upstream commit.
> 
> Signed-off-by: David Marchand <david.marchand at 6wind.com>
> ---
>  lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h |    6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
> index d2f65ab..19df483 100644
> --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
> +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
> @@ -3691,8 +3691,7 @@ static inline u8 pci_pcie_type(struct pci_dev *pdev)
>  
>  #define ptp_clock_register(caps, args...) ptp_clock_register(caps)
>  
> -#if !(SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,3,0)) && \
> -    !(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,5))
> +#ifndef PCI_EXP_LNKSTA2
>  int __kc_pcie_capability_read_word(struct pci_dev *dev, int pos, u16 *val);
>  #define pcie_capability_read_word(d,p,v) __kc_pcie_capability_read_word(d,p,v)
>  int __kc_pcie_capability_write_word(struct pci_dev *dev, int pos, u16 val);
> @@ -3709,8 +3708,7 @@ static inline int pcie_capability_clear_word(struct pci_dev *dev, int pos,
>  {
>  	return __kc_pcie_capability_clear_and_set_word(dev, pos, clear, 0);
>  }
> -#endif /* !(SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,3,0)) && \
> -          !(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,5)) */
> +#endif /* !PCI_EXP_LNKSTA2 */
>  
>  #if (SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,3,0))
>  #define USE_CONST_DEV_UC_CHAR
> -- 
> 1.7.10.4
> 
> 

Acked-by: Neil Horman <nhorman at tuxdriver.com>

Though, not to grind on this issue, but if the PMDs for real hardware were
converted to use VFIO, the kni interface wouldn't really be needed anymore, nor
would any of the other kernel code being maintained out of tree here

Neil



More information about the dev mailing list