DPDK patches and discussions
 help / color / mirror / Atom feed
From: Patrick McGleenon <Patrick.McGleenon@owmobility.com>
To: "dev@dpdk.org" <dev@dpdk.org>
Subject: [dpdk-dev] kni: error building with kernel < 3.3 and ether_addr_equal backport
Date: Wed, 5 Mar 2014 13:32:08 +0000	[thread overview]
Message-ID: <9cfac239bfe0489d901fe0158ff227ec@BLUPR05MB200.namprd05.prod.outlook.com> (raw)

Here is a patch to building DPDK 1.6 on RHEL 6 kernels.   It's similar to the issue below.   The kernel version check really only applies to vanilla kernels - for commercial distributions it's common for features from later kernels to be backported.   Should we be using autoconf or something to check if the code is present instead of the kernel version check?

http://www.dpdk.org/browse/dpdk/commit/?id=caa3d413086205f3bff0fa4753edb7dfbfc1f633

diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
index 6933626..33bb858 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
@@ -9275,7 +9275,7 @@ int igb_del_mac_filter(struct igb_adapter *adapter, u8* addr, u16 queue)
        if (is_zero_ether_addr(addr))
                return 0;
        for (i = 0; i < hw->mac.rar_entry_count; i++) {
-               if (ether_addr_equal(addr, adapter->mac_table[i].addr) &&
+               if (kni_ether_addr_equal(addr, adapter->mac_table[i].addr) &&
                    adapter->mac_table[i].queue == queue) {
                        adapter->mac_table[i].state = IGB_MAC_STATE_MODIFIED;
                        memset(adapter->mac_table[i].addr, 0, ETH_ALEN);
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
index a404c9f..f6f6635 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
@@ -3528,11 +3528,12 @@ 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)
-static inline bool ether_addr_equal(const u8 *addr1, const u8 *addr2)
+static inline bool kni_ether_addr_equal(const u8 *addr1, const u8 *addr2)
 {
        return !compare_ether_addr(addr1, addr2);
 }
 #else
+typedef ether_addr_equal kni_ether_addr_equal;
 #define HAVE_FDB_OPS
 #define HAVE_ETHTOOL_GET_TS_INFO
 #endif /* < 3.5.0 */
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c
index cb56906..dea2192 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c
+++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c
@@ -525,7 +525,7 @@ int ixgbe_del_mac_filter(struct ixgbe_adapter *adapter, u8* addr, u16 queue)
        if (is_zero_ether_addr(addr))
                return 0;
        for (i = 0; i < hw->mac.num_rar_entries; i++) {
-               if (ether_addr_equal(addr, adapter->mac_table[i].addr) &&
+               if (kni_ether_addr_equal(addr, adapter->mac_table[i].addr) &&
                    adapter->mac_table[i].queue == queue) {
                        adapter->mac_table[i].state |= IXGBE_MAC_STATE_MODIFIED;
                        adapter->mac_table[i].state &= ~IXGBE_MAC_STATE_IN_USE;
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h
index 3fb6b14..45f6c4c 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h
+++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h
@@ -3107,11 +3107,12 @@ typedef netdev_features_t kni_netdev_features_t;
 
 /*****************************************************************************/
 #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) )
-static inline bool ether_addr_equal(const u8 *addr1, const u8 *addr2)
+static inline bool kni_ether_addr_equal(const u8 *addr1, const u8 *addr2)
 {
        return !compare_ether_addr(addr1, addr2);
 }
 #else
+typedef ether_addr_equal kni_ether_addr_equal;
 #define HAVE_FDB_OPS
 #endif /* < 3.5.0 */

             reply	other threads:[~2014-03-05 13:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-05 13:32 Patrick McGleenon [this message]
2014-03-05 16:00 ` David Marchand
2014-03-06 14:53   ` Patrick McGleenon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9cfac239bfe0489d901fe0158ff227ec@BLUPR05MB200.namprd05.prod.outlook.com \
    --to=patrick.mcgleenon@owmobility.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).