From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by dpdk.org (Postfix) with ESMTP id D6AEAB0A3 for ; Wed, 11 Jun 2014 15:43:41 +0200 (CEST) Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 11 Jun 2014 06:43:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.01,458,1400050800"; d="scan'208";a="444278828" Received: from shilc102.sh.intel.com ([10.239.39.44]) by azsmga001.ch.intel.com with ESMTP; 11 Jun 2014 06:43:54 -0700 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shilc102.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id s5BDhnOB015503; Wed, 11 Jun 2014 21:43:51 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id s5BDhk4X009312; Wed, 11 Jun 2014 21:43:48 +0800 Received: (from hzhan75@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id s5BDhk62009308; Wed, 11 Jun 2014 21:43:46 +0800 From: Helin Zhang To: dev@dpdk.org Date: Wed, 11 Jun 2014 21:43:38 +0800 Message-Id: <1402494218-9203-1-git-send-email-helin.zhang@intel.com> X-Mailer: git-send-email 1.7.0.7 Subject: [dpdk-dev] [PATCH v2] kni: fix compile errors on Oracle Linux6.4 and RHEL6.5 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, 11 Jun 2014 13:43:42 -0000 From: HELIN ZHANG The compile errors are copied as follows. The fixes came from Linux drivers of ixgbe-3.21.2 and igb-5.1.2 with modifications. The idea is to use self-defined functions no matter they have already been defined somewhere or not. * Oracle Linux6.4 lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h:3111: error: redefinition of 'ether_addr_equal' include/linux/etherdevice.h:180: note: previous definition of 'ether_addr_equal' was here * RHEL6.5 lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3597: error: redefinition of 'mmd_eee_cap_to_ethtool_sup_t' include/linux/mdio.h:387: note: previous definition of 'mmd_eee_cap_to_ethtool_sup_t' was here lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3625: error: redefinition of 'mmd_eee_adv_to_ethtool_adv_t' include/linux/mdio.h:415: note: previous definition of 'mmd_eee_adv_to_ethtool_adv_t' was here lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3653: error: redefinition of 'ethtool_adv_to_mmd_eee_adv_t' include/linux/mdio.h:443: note: previous definition of 'ethtool_adv_to_mmd_eee_adv_t' was here Signed-off-by: HELIN ZHANG Acked-by: Cunming Liang Tested-by: Waterman Cao --- lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 19 +++++++++++-------- lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h | 5 ++--- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h index 4c27d5d..0aa15cd 100644 --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h @@ -3534,12 +3534,11 @@ extern void _kc_skb_add_rx_frag(struct sk_buff *, int, struct page *, /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) ) #define skb_tx_timestamp(skb) do {} while (0) -#if !(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,4)) -static inline bool ether_addr_equal(const u8 *addr1, const u8 *addr2) +static inline bool __kc_ether_addr_equal(const u8 *addr1, const u8 *addr2) { return !compare_ether_addr(addr1, addr2); } -#endif +#define ether_addr_equal(_addr1, _addr2) __kc_ether_addr_equal((_addr1),(_addr2)) #else #define HAVE_FDB_OPS #define HAVE_ETHTOOL_GET_TS_INFO @@ -3586,7 +3585,6 @@ static inline bool ether_addr_equal(const u8 *addr1, const u8 *addr2) #define ADVERTISED_40000baseLR4_Full (1 << 26) #endif -#if defined(ETHTOOL_GEEE) || (RHEL_RELEASE_CODE && RHEL_RELEASE_CODE <= RHEL_RELEASE_VERSION(6,4)) /** * mmd_eee_cap_to_ethtool_sup_t * @eee_cap: value of the MMD EEE Capability register @@ -3594,7 +3592,7 @@ static inline bool ether_addr_equal(const u8 *addr1, const u8 *addr2) * A small helper function that translates MMD EEE Capability (3.20) bits * to ethtool supported settings. */ -static inline u32 mmd_eee_cap_to_ethtool_sup_t(u16 eee_cap) +static inline u32 __kc_mmd_eee_cap_to_ethtool_sup_t(u16 eee_cap) { u32 supported = 0; @@ -3613,6 +3611,8 @@ static inline u32 mmd_eee_cap_to_ethtool_sup_t(u16 eee_cap) return supported; } +#define mmd_eee_cap_to_ethtool_sup_t(eee_cap) \ + __kc_mmd_eee_cap_to_ethtool_sup_t(eee_cap) /** * mmd_eee_adv_to_ethtool_adv_t @@ -3622,7 +3622,7 @@ static inline u32 mmd_eee_cap_to_ethtool_sup_t(u16 eee_cap) * and MMD EEE Link Partner Ability (7.61) bits to ethtool advertisement * settings. */ -static inline u32 mmd_eee_adv_to_ethtool_adv_t(u16 eee_adv) +static inline u32 __kc_mmd_eee_adv_to_ethtool_adv_t(u16 eee_adv) { u32 adv = 0; @@ -3641,6 +3641,8 @@ static inline u32 mmd_eee_adv_to_ethtool_adv_t(u16 eee_adv) return adv; } +#define mmd_eee_adv_to_ethtool_adv_t(eee_adv) \ + __kc_mmd_eee_adv_to_ethtool_adv_t(eee_adv) /** * ethtool_adv_to_mmd_eee_adv_t @@ -3650,7 +3652,7 @@ static inline u32 mmd_eee_adv_to_ethtool_adv_t(u16 eee_adv) * to EEE advertisements for the MMD EEE Advertisement (7.60) and * MMD EEE Link Partner Ability (7.61) registers. */ -static inline u16 ethtool_adv_to_mmd_eee_adv_t(u32 adv) +static inline u16 __kc_ethtool_adv_to_mmd_eee_adv_t(u32 adv) { u16 reg = 0; @@ -3669,7 +3671,8 @@ static inline u16 ethtool_adv_to_mmd_eee_adv_t(u32 adv) return reg; } -#endif +#define ethtool_adv_to_mmd_eee_adv_t(adv) \ +__kc_ethtool_adv_to_mmd_eee_adv_t(adv) #ifndef pci_pcie_type #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) ) diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h index 4126d14..b539315 100644 --- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h +++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h @@ -3107,12 +3107,11 @@ typedef netdev_features_t kni_netdev_features_t; /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) ) -#if !(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,4)) -static inline bool ether_addr_equal(const u8 *addr1, const u8 *addr2) +static inline bool __kc_ether_addr_equal(const u8 *addr1, const u8 *addr2) { return !compare_ether_addr(addr1, addr2); } -#endif +#define ether_addr_equal(_addr1, _addr2) __kc_ether_addr_equal((_addr1),(_addr2)) #else #define HAVE_FDB_OPS #endif /* < 3.5.0 */ -- 1.8.1.4