ipv6: Store Router Alert option in IP6CB directly.
[pandora-kernel.git] / net / ipv6 / ip6_input.c
index 2ccd35e..4ac5bf3 100644 (file)
@@ -280,9 +280,8 @@ int ip6_mc_input(struct sk_buff *skb)
                struct inet6_skb_parm *opt = IP6CB(skb);
 
                /* Check for MLD */
-               if (unlikely(opt->ra)) {
+               if (unlikely(opt->flags & IP6SKB_ROUTERALERT)) {
                        /* Check if this is a mld message */
-                       u8 *ptr = skb_network_header(skb) + opt->ra;
                        u8 nexthdr = hdr->nexthdr;
                        __be16 frag_off;
                        int offset;
@@ -290,7 +289,7 @@ int ip6_mc_input(struct sk_buff *skb)
                        /* Check if the value of Router Alert
                         * is for MLD (0x0000).
                         */
-                       if ((ptr[2] | ptr[3]) == 0) {
+                       if (opt->ra == htons(IPV6_OPT_ROUTERALERT_MLD)) {
                                deliver = false;
 
                                if (!ipv6_ext_hdr(nexthdr)) {