Hi Thomas, We tested this patch with latest RHEL 7. (3.10.0-123) on RC2. It fixed compilation error in KNI. Please merge this patch in the RC3. Although We don't meet this compilation in RHEL 7 beta version, but Hiroshi caught it in latest version. It seems that there are a difference between Kernel 3.10.0-54 and 3.10.0-123
Thanks Waterman -----Original Message----- >From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com] >Sent: Wednesday, June 25, 2014 6:05 PM >To: Cao, Waterman >Cc: dev at dpdk.org; Hiroshi Shimamoto; Hayato Momma >Subject: Re: [dpdk-dev] [PATCH] kni: compatibility with RHEL 7 > >Hi Waterman, > >2014-06-12 09:35, Hiroshi Shimamoto: >> 2014-06-12 09:18, Cao, Waterman: >> > Can you give details about Linux Kernel version and complier version? >> > Because we tried to build code in the Redhat 7.0 before, but we don't >> > meet this issue. Please see information as the following: >> > Linux kernel 3.10.0-54.0.1.el7.x86_64 >> > RHEL70BETA_64 GCC 4.8.2 ICC: 14.0.0 >> >> Yes, >> >> Linux REHEL7RC-1 3.10.0-121.el7.x86_64 #1 SMP Tue Apr 8 10:48:19 EDT >> 2014 >> x86_64 x86_64 x86_64 GNU/Linux gcc version 4.8.2 20140120 (Red Hat >> 4.8.2-16) (GCC) >> >> I got the below error; >> /path/to/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3851:1: error: >> conflicting types for ?skb_set_hash? skb_set_hash(struct sk_buff *skb, >> __u32 hash, __always_unused int type) >> >> /usr/src/kernels/3.10.0-121.el7.x86_64/include/linux/skbuff.h:762:1: note: >> previous definition of ?skb_set_hash? was here skb_set_hash(struct >> sk_buff *skb, __u32 hash, enum pkt_hash_types type) > >Could you confirm this fix is needed and acknowledge it? >Thanks > > >> > -----Original Message----- >> > >> > >From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Hiroshi >> > >Shimamoto >> > >Sent: Thursday, June 12, 2014 4:10 PM >> > >To: dev at dpdk.org >> > >Cc: Hayato Momma >> > >Subject: [dpdk-dev] [PATCH] kni: compatibility with RHEL 7 >> > > >> > >From: Hiroshi Shimamoto <h-shimamoto at ct.jp.nec.com> >> > > >> > >Compilation in RHEL7 is failed. This fixes the build issue. >> > > >> > >RHEL7 has skb_set_hash, the kernel version is 3.10 though. >> > >Don't define skb_set_hash for RHEL7. >> > > >> > >Signed-off-by: Hiroshi Shimamoto <h-shimamoto at ct.jp.nec.com> >> > >Reviewed-by: Hayato Momma <h-momma at ce.jp.nec.com> >> > >--- >> > > >> > > lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 5 +++++ >> > > 1 file changed, 5 insertions(+) >> > > >> > >diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h >> > >b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h index >> > >4c27d5d..b4de6e2 100644 >> > >--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h >> > >+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h >> > >@@ -3843,6 +3843,9 @@ static inline struct sk_buff >> > >*__kc__vlan_hwaccel_put_tag(struct sk_buff *skb, #endif /* >= >> > >3.10.0> >> > */ >> > >> > > #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) ) >> > > >> > >+ >> > >+#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= >> > >+RHEL_RELEASE_VERSION(7,0))) >> > >+ >> > > >> > > #ifdef NETIF_F_RXHASH >> > > #define PKT_HASH_TYPE_L3 0 >> > > static inline void >> > > >> > >@@ -3851,6 +3854,8 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, >> > >__always_unused int type)> > >> > > skb->rxhash = hash; >> > > >> > > } >> > > #endif /* NETIF_F_RXHASH */ >> > > >> > >+#endif /* < RHEL7 */ >> > >+ >> > > >> > > #endif /* < 3.14.0 */ >> > > >> > > #endif /* _KCOMPAT_H_ */ >> > > >> > >-- >> > >1.9.1 > > >-- >Thomas