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. Fixes: d476059e77d1 ("net: Kill dev_rebuild_header") Signed-off-by: Miguel Bernal Marin <miguel.bernal.marin at linux.intel.com> --- lib/librte_eal/linuxapp/kni/kni_net.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/lib/librte_eal/linuxapp/kni/kni_net.c index e34a0fd..ab5add4 100644 --- a/lib/librte_eal/linuxapp/kni/kni_net.c +++ b/lib/librte_eal/linuxapp/kni/kni_net.c @@ -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 */ }; -- 2.3.3