Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos...
[sfrench/cifs-2.6.git] / net / ipv6 / seg6.c
index 15fba55e3da816424b3f68adf05a2989204ff667..c814077709562cc070d21936c8bf101136d6aefe 100644 (file)
@@ -40,7 +40,7 @@ bool seg6_validate_srh(struct ipv6_sr_hdr *srh, int len)
        if (((srh->hdrlen + 1) << 3) != len)
                return false;
 
-       if (srh->segments_left != srh->first_segment)
+       if (srh->segments_left > srh->first_segment)
                return false;
 
        tlv_offset = sizeof(*srh) + ((srh->first_segment + 1) << 4);
@@ -456,6 +456,10 @@ int __init seg6_init(void)
        err = seg6_iptunnel_init();
        if (err)
                goto out_unregister_pernet;
+
+       err = seg6_local_init();
+       if (err)
+               goto out_unregister_pernet;
 #endif
 
 #ifdef CONFIG_IPV6_SEG6_HMAC
@@ -471,6 +475,7 @@ out:
 #ifdef CONFIG_IPV6_SEG6_HMAC
 out_unregister_iptun:
 #ifdef CONFIG_IPV6_SEG6_LWTUNNEL
+       seg6_local_exit();
        seg6_iptunnel_exit();
 #endif
 #endif