[IPV6] MIP6: Several obvious clean-ups.
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Thu, 24 Aug 2006 14:18:12 +0000 (23:18 +0900)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 22 Sep 2006 22:17:58 +0000 (15:17 -0700)
- Remove redundant code.  Pointed out by Brian Haley <brian.haley@hp.com>.
- Unify code paths with/without CONFIG_IPV6_MIP.
- Use NIP6_FMT for IPv6 address textual presentation.
- Fold long line.  Pointed out by David Miller <davem@davemloft.net>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
net/ipv6/ah6.c
net/ipv6/exthdrs.c
net/ipv6/mip6.c

index 0f2b4e3..b0d83e8 100644 (file)
@@ -128,9 +128,7 @@ static void ipv6_rearrange_destopt(struct ipv6hdr *iph, struct ipv6_opt_hdr *des
                off += optlen;
                len -= optlen;
        }
-       if (len == 0)
-               return;
-
+       /* Note: ok if len == 0 */
 bad:
        return;
 }
@@ -175,11 +173,7 @@ static void ipv6_rearrange_rthdr(struct ipv6hdr *iph, struct ipv6_rt_hdr *rthdr)
        ipv6_addr_copy(&iph->daddr, &final_addr);
 }
 
-#ifdef CONFIG_IPV6_MIP6
 static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len, int dir)
-#else
-static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len)
-#endif
 {
        union {
                struct ipv6hdr *iph;
@@ -194,30 +188,12 @@ static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len)
 
        while (exthdr.raw < end) {
                switch (nexthdr) {
-#ifdef CONFIG_IPV6_MIP6
-               case NEXTHDR_HOP:
-                       if (!zero_out_mutable_opts(exthdr.opth)) {
-                               LIMIT_NETDEBUG(
-                                       KERN_WARNING "overrun %sopts\n",
-                                       nexthdr == NEXTHDR_HOP ?
-                                               "hop" : "dest");
-                               return -EINVAL;
-                       }
-                       break;
                case NEXTHDR_DEST:
+#ifdef CONFIG_IPV6_MIP6
                        if (dir == XFRM_POLICY_OUT)
                                ipv6_rearrange_destopt(iph, exthdr.opth);
-                       if (!zero_out_mutable_opts(exthdr.opth)) {
-                               LIMIT_NETDEBUG(
-                                       KERN_WARNING "overrun %sopts\n",
-                                       nexthdr == NEXTHDR_HOP ?
-                                               "hop" : "dest");
-                               return -EINVAL;
-                       }
-                       break;
-#else
+#endif
                case NEXTHDR_HOP:
-               case NEXTHDR_DEST:
                        if (!zero_out_mutable_opts(exthdr.opth)) {
                                LIMIT_NETDEBUG(
                                        KERN_WARNING "overrun %sopts\n",
@@ -226,7 +202,6 @@ static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len)
                                return -EINVAL;
                        }
                        break;
-#endif
 
                case NEXTHDR_ROUTING:
                        ipv6_rearrange_rthdr(iph, exthdr.rth);
@@ -282,16 +257,13 @@ static int ah6_output(struct xfrm_state *x, struct sk_buff *skb)
                }
 #ifdef CONFIG_IPV6_MIP6
                memcpy(tmp_ext, &top_iph->saddr, extlen);
-               err = ipv6_clear_mutable_options(top_iph,
-                                                extlen - sizeof(*tmp_ext) +
-                                                sizeof(*top_iph),
-                                                XFRM_POLICY_OUT);
 #else
                memcpy(tmp_ext, &top_iph->daddr, extlen);
+#endif
                err = ipv6_clear_mutable_options(top_iph,
                                                 extlen - sizeof(*tmp_ext) +
-                                                sizeof(*top_iph));
-#endif
+                                                sizeof(*top_iph),
+                                                XFRM_POLICY_OUT);
                if (err)
                        goto error_free_iph;
        }
@@ -386,13 +358,8 @@ static int ah6_input(struct xfrm_state *x, struct sk_buff *skb)
        if (!tmp_hdr)
                goto out;
        memcpy(tmp_hdr, skb->nh.raw, hdr_len);
-#ifdef CONFIG_IPV6_MIP6
        if (ipv6_clear_mutable_options(skb->nh.ipv6h, hdr_len, XFRM_POLICY_IN))
                goto free_out;
-#else
-       if (ipv6_clear_mutable_options(skb->nh.ipv6h, hdr_len))
-               goto free_out;
-#endif
        skb->nh.ipv6h->priority    = 0;
        skb->nh.ipv6h->flow_lbl[0] = 0;
        skb->nh.ipv6h->flow_lbl[1] = 0;
index 6a6466b..084f78c 100644 (file)
@@ -87,7 +87,6 @@ int ipv6_find_tlv(struct sk_buff *skb, int offset, int type)
                len -= optlen;
        }
        /* not_found */
-       return -1;
  bad:
        return -1;
 }
index 7085403..99d116c 100644 (file)
@@ -121,7 +121,8 @@ int mip6_mh_filter(struct sock *sk, struct sk_buff *skb)
                                    &skb->nh.ipv6h->daddr,
                                    mhlen, IPPROTO_MH,
                                    skb_checksum(skb, 0, mhlen, 0))) {
-                       LIMIT_NETDEBUG(KERN_DEBUG "mip6: MH checksum failed [%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x > %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x]\n",
+                       LIMIT_NETDEBUG(KERN_DEBUG "mip6: MH checksum failed "
+                                      "[" NIP6_FMT " > " NIP6_FMT "]\n",
                                       NIP6(skb->nh.ipv6h->saddr),
                                       NIP6(skb->nh.ipv6h->daddr));
                        return -1;
@@ -234,7 +235,8 @@ static int mip6_destopt_reject(struct xfrm_state *x, struct sk_buff *skb, struct
        struct timeval stamp;
        int err = 0;
 
-       if (unlikely(fl->proto == IPPROTO_MH && fl->fl_mh_type <= IP6_MH_TYPE_MAX))
+       if (unlikely(fl->proto == IPPROTO_MH &&
+                    fl->fl_mh_type <= IP6_MH_TYPE_MAX))
                goto out;
 
        if (likely(opt->dsthao)) {