kni: fix build with kernel 4.1
authorMiguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
Fri, 26 Jun 2015 22:14:36 +0000 (17:14 -0500)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 10 Jul 2015 09:58:59 +0000 (11:58 +0200)
rebuild member was removed from headers_ops in kernel release
4.1. Therefore kni module compilation breaks.

This patch add the properly checks to fix it.

Linux: d476059e77d1 ("net: Kill dev_rebuild_header")

Signed-off-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
lib/librte_eal/linuxapp/kni/kni_net.c

index e34a0fd..ab5add4 100644 (file)
@@ -605,6 +605,7 @@ kni_net_header(struct sk_buff *skb, struct net_device *dev,
 /*
  * Re-fill the eth header
  */
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
 static int
 kni_net_rebuild_header(struct sk_buff *skb)
 {
@@ -616,6 +617,7 @@ kni_net_rebuild_header(struct sk_buff *skb)
 
        return 0;
 }
+#endif /* < 4.1.0  */
 
 /**
  * kni_net_set_mac - Change the Ethernet Address of the KNI NIC
@@ -646,7 +648,9 @@ static int kni_net_change_carrier(struct net_device *dev, bool new_carrier)
 
 static const struct header_ops kni_net_header_ops = {
        .create  = kni_net_header,
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
        .rebuild = kni_net_rebuild_header,
+#endif /* < 4.1.0  */
        .cache   = NULL,  /* disable caching */
 };