From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from g9t5009.houston.hp.com (g9t5009.houston.hp.com [15.240.92.67]) by dpdk.org (Postfix) with ESMTP id A6BDE2BCD for ; Wed, 30 Mar 2016 20:13:40 +0200 (CEST) Received: from g4t3433.houston.hp.com (g4t3433.houston.hp.com [16.210.25.219]) by g9t5009.houston.hp.com (Postfix) with ESMTP id F0E2654 for ; Wed, 30 Mar 2016 18:13:39 +0000 (UTC) Received: from hpe.com (unknown [16.79.28.131]) by g4t3433.houston.hp.com (Postfix) with ESMTP id AAC3B4C; Wed, 30 Mar 2016 18:13:39 +0000 (UTC) From: Lee Roberts To: dev@dpdk.org Cc: Lee Roberts Date: Wed, 30 Mar 2016 12:13:35 -0600 Message-Id: <1459361615-6021-1-git-send-email-lee.roberts@hpe.com> X-Mailer: git-send-email 1.9.1 Subject: [dpdk-dev] [PATCH] Fix KNI compilation under Wind River Linux 6.0 recent RCPLs. 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: Wed, 30 Mar 2016 18:13:40 -0000 skb_set_hash() has been backported to recent Wind River Linux 6.0 RCPLs. As a result, the corresponding stanza in kcompat.h must be removed. Similar patches have already been applied for RHEL, SLES and Ubuntu. Wind River Linux does not provide convenient macros for kernel version identification. Add macros to Makefile to identify the Wind River Linux version. Signed-off-by: Lee Roberts --- lib/librte_eal/linuxapp/kni/Makefile | 8 ++++++++ lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/librte_eal/linuxapp/kni/Makefile b/lib/librte_eal/linuxapp/kni/Makefile index ac99d3f..6310615 100644 --- a/lib/librte_eal/linuxapp/kni/Makefile +++ b/lib/librte_eal/linuxapp/kni/Makefile @@ -51,6 +51,14 @@ UBUNTU_KERNEL_CODE := $(shell echo `grep UTS_RELEASE $(RTE_KERNELDIR)/include/ge MODULE_CFLAGS += -D"UBUNTU_KERNEL_CODE=UBUNTU_KERNEL_VERSION($(UBUNTU_KERNEL_CODE))" endif +ifeq ($(shell lsb_release -si 2>/dev/null),wrlinux) +WRLINUX_MAJOR := $(shell lsb_release -sr | cut -d. -f1) +WRLINUX_MINOR := $(shell lsb_release -sr | cut -d. -f2) +WRLINUX_RCPL := $(shell lsb_release -sr | cut -d. -f4) +MODULE_CFLAGS += -D"WRLINUX_RELEASE_CODE=WRLINUX_RELEASE_VERSION($(WRLINUX_MAJOR),$(WRLINUX_MINOR))" +MODULE_CFLAGS += -D"WRLINUX_RCPL=$(WRLINUX_RCPL)" +endif + # this lib needs main eal DEPDIRS-y += lib/librte_eal/linuxapp/eal diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h index e2cf71e..b25a35f 100644 --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h @@ -730,6 +730,17 @@ struct _kc_ethtool_pauseparam { #define UBUNTU_KERNEL_CODE 0 #endif +/* Wind River release codes must be specified from Makefile */ +#ifndef WRLINUX_RELEASE_VERSION +#define WRLINUX_RELEASE_VERSION(a,b) (((a) * 256) + (b)) +#endif +#ifndef WRLINUX_RELEASE_CODE +#define WRLINUX_RELEASE_CODE 0 +#endif +#ifndef WRLINUX_RCPL +#define WRLINUX_RCPL 0 +#endif + #ifdef __KLOCWORK__ #ifdef ARRAY_SIZE #undef ARRAY_SIZE @@ -3868,6 +3879,7 @@ static inline struct sk_buff *__kc__vlan_hwaccel_put_tag(struct sk_buff *skb, && (UBUNTU_RELEASE_CODE == UBUNTU_RELEASE_VERSION(12,4) \ || UBUNTU_RELEASE_CODE == UBUNTU_RELEASE_VERSION(14,4)))) #if (!(SLE_VERSION_CODE == SLE_VERSION(12,0,0))) +#if (!(WRLINUX_RELEASE_CODE == WRLINUX_RELEASE_VERSION(6,0) && WRLINUX_RCPL >= 26)) #ifdef NETIF_F_RXHASH #define PKT_HASH_TYPE_L3 0 static inline void @@ -3876,6 +3888,7 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type) skb->rxhash = hash; } #endif /* NETIF_F_RXHASH */ +#endif /* < WRLINUX */ #endif /* < SLES12 */ #endif /* < 3.13.0-30.54 (Ubuntu 14.04) */ #endif /* < RHEL7 */ -- 1.9.1