From 78f0bd7e4598df9d5607585933620a29f2cb8304 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Thu, 30 Oct 2014 18:22:03 +0200 Subject: [PATCH] openvswitch: add patch "datapath: Backport __ip_select_ident() function" Signed-off-by: Alexandru Ardelean --- ...-backport___ip_select_ident_function.patch | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 net/openvswitch/patches/0005-datapath-backport___ip_select_ident_function.patch diff --git a/net/openvswitch/patches/0005-datapath-backport___ip_select_ident_function.patch b/net/openvswitch/patches/0005-datapath-backport___ip_select_ident_function.patch new file mode 100644 index 000000000..0ea48c6dd --- /dev/null +++ b/net/openvswitch/patches/0005-datapath-backport___ip_select_ident_function.patch @@ -0,0 +1,43 @@ +commit 2ea824143172e38b4387ef23b8685cebaee21c69 +Author: Pravin B Shelar +Date: Tue Sep 24 18:42:43 2013 -0700 + + datapath: Backport __ip_select_ident() function + + definition of __ip_select_ident() changed in newer kernel and + it is backported to stable kernel, Therefore adding configure + check to detect the new function. + + Signed-off-by: Pravin B Shelar + Acked-by: Andy Zhou + +diff --git a/acinclude.m4 b/acinclude.m4 +index 7e036e5..b0794d2 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -284,6 +284,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ + OVS_GREP_IFELSE([$KSRC/include/linux/if_vlan.h], [vlan_set_encap_proto]) + + OVS_GREP_IFELSE([$KSRC/include/linux/in.h], [ipv4_is_multicast]) ++ OVS_GREP_IFELSE([$KSRC/include/net/ip.h], [__ip_select_ident.*dst_entry], ++ [OVS_DEFINE([HAVE_IP_SELECT_IDENT_USING_DST_ENTRY])]) + + OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [dev_disable_lro]) + OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [dev_get_stats]) +diff --git a/datapath/linux/compat/ip_tunnels_core.c b/datapath/linux/compat/ip_tunnels_core.c +index d650be2..a70aefc 100644 +--- a/datapath/linux/compat/ip_tunnels_core.c ++++ b/datapath/linux/compat/ip_tunnels_core.c +@@ -70,7 +70,12 @@ int iptunnel_xmit(struct rtable *rt, + iph->daddr = dst; + iph->saddr = src; + iph->ttl = ttl; ++ ++#ifdef HAVE_IP_SELECT_IDENT_USING_DST_ENTRY + __ip_select_ident(iph, &rt_dst(rt), (skb_shinfo(skb)->gso_segs ?: 1) - 1); ++#else ++ __ip_select_ident(iph, skb_shinfo(skb)->gso_segs ?: 1); ++#endif + + err = ip_local_out(skb); + if (unlikely(net_xmit_eval(err)))