6lowpan: init ipv6hdr buffer to zero
authorAlexander Aring <alex.aring@gmail.com>
Fri, 16 Aug 2013 19:59:54 +0000 (21:59 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Aug 2013 20:23:11 +0000 (13:23 -0700)
This patch simplify the handling to set fields inside of struct ipv6hdr
to zero. Instead of setting some memory regions with memset to zero we
initialize the whole ipv6hdr to zero.

This is a simplification for parsing the 6lowpan header for the upcomming
patches.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reviewed-by: Werner Almesberger <werner@almesberger.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ieee802154/6lowpan.c

index 3b9d5f20bd1c695de768db960b190beb4370fa35..92429db0b2373191521559b3d98570fe3a58cf44 100644 (file)
@@ -223,10 +223,6 @@ lowpan_uncompress_addr(struct sk_buff *skb, struct in6_addr *ipaddr,
        if (prefcount > 0)
                memcpy(ipaddr, prefix, prefcount);
 
-       if (prefcount + postcount < 16)
-               memset(&ipaddr->s6_addr[prefcount], 0,
-                                       16 - (prefcount + postcount));
-
        if (postcount > 0) {
                memcpy(&ipaddr->s6_addr[16 - postcount], skb->data, postcount);
                skb_pull(skb, postcount);
@@ -723,7 +719,7 @@ frame_err:
 static int
 lowpan_process_data(struct sk_buff *skb)
 {
-       struct ipv6hdr hdr;
+       struct ipv6hdr hdr = {};
        u8 tmp, iphc0, iphc1, num_context = 0;
        u8 *_saddr, *_daddr;
        int err;
@@ -868,8 +864,6 @@ lowpan_process_data(struct sk_buff *skb)
 
                hdr.priority = ((tmp >> 2) & 0x0f);
                hdr.flow_lbl[0] = ((tmp << 6) & 0xC0) | ((tmp >> 2) & 0x30);
-               hdr.flow_lbl[1] = 0;
-               hdr.flow_lbl[2] = 0;
                break;
        /*
         * Flow Label carried in-line
@@ -885,10 +879,6 @@ lowpan_process_data(struct sk_buff *skb)
                break;
        /* Traffic Class and Flow Label are elided */
        case 3: /* 11b */
-               hdr.priority = 0;
-               hdr.flow_lbl[0] = 0;
-               hdr.flow_lbl[1] = 0;
-               hdr.flow_lbl[2] = 0;
                break;
        default:
                break;