]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ipv6: Fix fragment id assignment on LE arches.
authorVlad Yasevich <vyasevich@gmail.com>
Mon, 9 Feb 2015 14:38:20 +0000 (09:38 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Feb 2015 22:21:03 +0000 (14:21 -0800)
Recent commit:
0508c07f5e0c94f38afd5434e8b2a55b84553077
Author: Vlad Yasevich <vyasevich@gmail.com>
Date:   Tue Feb 3 16:36:15 2015 -0500

    ipv6: Select fragment id during UFO segmentation if not set.

Introduced a bug on LE in how ipv6 fragment id is assigned.
This was cought by nightly sparce check:

Resolve the following sparce error:
 net/ipv6/output_core.c:57:38: sparse: incorrect type in assignment
 (different base types)
   net/ipv6/output_core.c:57:38:    expected restricted __be32
[usertype] ip6_frag_id
   net/ipv6/output_core.c:57:38:    got unsigned int [unsigned]
[assigned] [usertype] id

Fixes: 0508c07f5e0c9 (ipv6: Select fragment id during UFO segmentation if not set.)
Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/output_core.c

index 54520a0bd5e3b5feac3d4bc4221fac77ab990031..a86cf60f0ca61d0182ab377068e1cd9592e5b3d7 100644 (file)
@@ -54,7 +54,7 @@ void ipv6_proxy_select_ident(struct sk_buff *skb)
 
        id = __ipv6_select_ident(ip6_proxy_idents_hashrnd,
                                 &addrs[1], &addrs[0]);
-       skb_shinfo(skb)->ip6_frag_id = id;
+       skb_shinfo(skb)->ip6_frag_id = htonl(id);
 }
 EXPORT_SYMBOL_GPL(ipv6_proxy_select_ident);