If the ip fragmentation backport is enabled, we should always use our
own {,__}ipv6_select_ident(). This fixes the following issue on some
v3.19 kernels:

datapath/linux/ip6_output.c:93:12: error: conflicting types for
‘__ipv6_select_ident’
 static u32 __ipv6_select_ident(struct net *net, u32 hashrnd,

Reported-by: Simon Horman <simon.hor...@netronome.com>
Signed-off-by: Joe Stringer <j...@ovn.org>
---
 datapath/linux/compat/ip6_output.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/datapath/linux/compat/ip6_output.c 
b/datapath/linux/compat/ip6_output.c
index 004575c5abab..5c0cdec4b382 100644
--- a/datapath/linux/compat/ip6_output.c
+++ b/datapath/linux/compat/ip6_output.c
@@ -90,7 +90,7 @@ static u32 rpl_ip_idents_reserve(u32 hash, int segs)
        return atomic_add_return(segs + delta, p_id) - segs;
 }
 
-static u32 __ipv6_select_ident(struct net *net, u32 hashrnd,
+static u32 rpl___ipv6_select_ident(struct net *net, u32 hashrnd,
                               const struct in6_addr *dst,
                               const struct in6_addr *src)
 {
@@ -111,7 +111,6 @@ static u32 __ipv6_select_ident(struct net *net, u32 hashrnd,
        return id;
 }
 
-/* XXX: Exported in 3.19. */
 static __be32 rpl_ipv6_select_ident(struct net *net,
                             const struct in6_addr *daddr,
                             const struct in6_addr *saddr)
@@ -121,7 +120,7 @@ static __be32 rpl_ipv6_select_ident(struct net *net,
 
        net_get_random_once(&ip6_idents_hashrnd, sizeof(ip6_idents_hashrnd));
 
-       id = __ipv6_select_ident(net, ip6_idents_hashrnd, daddr, saddr);
+       id = rpl___ipv6_select_ident(net, ip6_idents_hashrnd, daddr, saddr);
        return htonl(id);
 }
 
-- 
2.1.4

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to