diff options
Diffstat (limited to 'net/ieee802154')
-rw-r--r-- | net/ieee802154/6lowpan.c | 94 |
1 files changed, 37 insertions, 57 deletions
diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c index b45e229bc42c..ad0c2264e537 100644 --- a/net/ieee802154/6lowpan.c +++ b/net/ieee802154/6lowpan.c | |||
@@ -240,8 +240,7 @@ lowpan_uncompress_addr(struct sk_buff *skb, struct in6_addr *ipaddr, | |||
240 | lowpan_uip_ds6_set_addr_iid(ipaddr, lladdr); | 240 | lowpan_uip_ds6_set_addr_iid(ipaddr, lladdr); |
241 | } | 241 | } |
242 | 242 | ||
243 | pr_debug("(%s): uncompressing %d + %d => ", __func__, prefcount, | 243 | pr_debug("uncompressing %d + %d => ", prefcount, postcount); |
244 | postcount); | ||
245 | lowpan_raw_dump_inline(NULL, NULL, ipaddr->s6_addr, 16); | 244 | lowpan_raw_dump_inline(NULL, NULL, ipaddr->s6_addr, 16); |
246 | 245 | ||
247 | return 0; | 246 | return 0; |
@@ -252,13 +251,11 @@ lowpan_compress_udp_header(u8 **hc06_ptr, struct sk_buff *skb) | |||
252 | { | 251 | { |
253 | struct udphdr *uh = udp_hdr(skb); | 252 | struct udphdr *uh = udp_hdr(skb); |
254 | 253 | ||
255 | pr_debug("(%s): UDP header compression\n", __func__); | ||
256 | |||
257 | if (((uh->source & LOWPAN_NHC_UDP_4BIT_MASK) == | 254 | if (((uh->source & LOWPAN_NHC_UDP_4BIT_MASK) == |
258 | LOWPAN_NHC_UDP_4BIT_PORT) && | 255 | LOWPAN_NHC_UDP_4BIT_PORT) && |
259 | ((uh->dest & LOWPAN_NHC_UDP_4BIT_MASK) == | 256 | ((uh->dest & LOWPAN_NHC_UDP_4BIT_MASK) == |
260 | LOWPAN_NHC_UDP_4BIT_PORT)) { | 257 | LOWPAN_NHC_UDP_4BIT_PORT)) { |
261 | pr_debug("(%s): both ports compression to 4 bits\n", __func__); | 258 | pr_debug("UDP header: both ports compression to 4 bits\n"); |
262 | **hc06_ptr = LOWPAN_NHC_UDP_CS_P_11; | 259 | **hc06_ptr = LOWPAN_NHC_UDP_CS_P_11; |
263 | **(hc06_ptr + 1) = /* subtraction is faster */ | 260 | **(hc06_ptr + 1) = /* subtraction is faster */ |
264 | (u8)((uh->dest - LOWPAN_NHC_UDP_4BIT_PORT) + | 261 | (u8)((uh->dest - LOWPAN_NHC_UDP_4BIT_PORT) + |
@@ -266,20 +263,20 @@ lowpan_compress_udp_header(u8 **hc06_ptr, struct sk_buff *skb) | |||
266 | *hc06_ptr += 2; | 263 | *hc06_ptr += 2; |
267 | } else if ((uh->dest & LOWPAN_NHC_UDP_8BIT_MASK) == | 264 | } else if ((uh->dest & LOWPAN_NHC_UDP_8BIT_MASK) == |
268 | LOWPAN_NHC_UDP_8BIT_PORT) { | 265 | LOWPAN_NHC_UDP_8BIT_PORT) { |
269 | pr_debug("(%s): remove 8 bits of dest\n", __func__); | 266 | pr_debug("UDP header: remove 8 bits of dest\n"); |
270 | **hc06_ptr = LOWPAN_NHC_UDP_CS_P_01; | 267 | **hc06_ptr = LOWPAN_NHC_UDP_CS_P_01; |
271 | memcpy(*hc06_ptr + 1, &uh->source, 2); | 268 | memcpy(*hc06_ptr + 1, &uh->source, 2); |
272 | **(hc06_ptr + 3) = (u8)(uh->dest - LOWPAN_NHC_UDP_8BIT_PORT); | 269 | **(hc06_ptr + 3) = (u8)(uh->dest - LOWPAN_NHC_UDP_8BIT_PORT); |
273 | *hc06_ptr += 4; | 270 | *hc06_ptr += 4; |
274 | } else if ((uh->source & LOWPAN_NHC_UDP_8BIT_MASK) == | 271 | } else if ((uh->source & LOWPAN_NHC_UDP_8BIT_MASK) == |
275 | LOWPAN_NHC_UDP_8BIT_PORT) { | 272 | LOWPAN_NHC_UDP_8BIT_PORT) { |
276 | pr_debug("(%s): remove 8 bits of source\n", __func__); | 273 | pr_debug("UDP header: remove 8 bits of source\n"); |
277 | **hc06_ptr = LOWPAN_NHC_UDP_CS_P_10; | 274 | **hc06_ptr = LOWPAN_NHC_UDP_CS_P_10; |
278 | memcpy(*hc06_ptr + 1, &uh->dest, 2); | 275 | memcpy(*hc06_ptr + 1, &uh->dest, 2); |
279 | **(hc06_ptr + 3) = (u8)(uh->source - LOWPAN_NHC_UDP_8BIT_PORT); | 276 | **(hc06_ptr + 3) = (u8)(uh->source - LOWPAN_NHC_UDP_8BIT_PORT); |
280 | *hc06_ptr += 4; | 277 | *hc06_ptr += 4; |
281 | } else { | 278 | } else { |
282 | pr_debug("(%s): can't compress header\n", __func__); | 279 | pr_debug("UDP header: can't compress\n"); |
283 | **hc06_ptr = LOWPAN_NHC_UDP_CS_P_00; | 280 | **hc06_ptr = LOWPAN_NHC_UDP_CS_P_00; |
284 | memcpy(*hc06_ptr + 1, &uh->source, 2); | 281 | memcpy(*hc06_ptr + 1, &uh->source, 2); |
285 | memcpy(*hc06_ptr + 3, &uh->dest, 2); | 282 | memcpy(*hc06_ptr + 3, &uh->dest, 2); |
@@ -323,7 +320,7 @@ lowpan_uncompress_udp_header(struct sk_buff *skb) | |||
323 | goto err; | 320 | goto err; |
324 | 321 | ||
325 | if ((tmp & LOWPAN_NHC_UDP_MASK) == LOWPAN_NHC_UDP_ID) { | 322 | if ((tmp & LOWPAN_NHC_UDP_MASK) == LOWPAN_NHC_UDP_ID) { |
326 | pr_debug("(%s): UDP header uncompression\n", __func__); | 323 | pr_debug("UDP header uncompression\n"); |
327 | switch (tmp & LOWPAN_NHC_UDP_CS_P_11) { | 324 | switch (tmp & LOWPAN_NHC_UDP_CS_P_11) { |
328 | case LOWPAN_NHC_UDP_CS_P_00: | 325 | case LOWPAN_NHC_UDP_CS_P_00: |
329 | memcpy(&uh->source, &skb->data[0], 2); | 326 | memcpy(&uh->source, &skb->data[0], 2); |
@@ -349,19 +346,19 @@ lowpan_uncompress_udp_header(struct sk_buff *skb) | |||
349 | skb_pull(skb, 1); | 346 | skb_pull(skb, 1); |
350 | break; | 347 | break; |
351 | default: | 348 | default: |
352 | pr_debug("(%s) ERROR: unknown UDP format\n", __func__); | 349 | pr_debug("ERROR: unknown UDP format\n"); |
353 | goto err; | 350 | goto err; |
354 | break; | 351 | break; |
355 | } | 352 | } |
356 | 353 | ||
357 | pr_debug("(%s): uncompressed UDP ports: src = %d, dst = %d\n", | 354 | pr_debug("uncompressed UDP ports: src = %d, dst = %d\n", |
358 | __func__, uh->source, uh->dest); | 355 | uh->source, uh->dest); |
359 | 356 | ||
360 | /* copy checksum */ | 357 | /* copy checksum */ |
361 | memcpy(&uh->check, &skb->data[0], 2); | 358 | memcpy(&uh->check, &skb->data[0], 2); |
362 | skb_pull(skb, 2); | 359 | skb_pull(skb, 2); |
363 | } else { | 360 | } else { |
364 | pr_debug("(%s): ERROR: unsupported NH format\n", __func__); | 361 | pr_debug("ERROR: unsupported NH format\n"); |
365 | goto err; | 362 | goto err; |
366 | } | 363 | } |
367 | 364 | ||
@@ -394,10 +391,9 @@ static int lowpan_header_create(struct sk_buff *skb, | |||
394 | hdr = ipv6_hdr(skb); | 391 | hdr = ipv6_hdr(skb); |
395 | hc06_ptr = head + 2; | 392 | hc06_ptr = head + 2; |
396 | 393 | ||
397 | pr_debug("(%s): IPv6 header dump:\n\tversion = %d\n\tlength = %d\n" | 394 | pr_debug("IPv6 header dump:\n\tversion = %d\n\tlength = %d\n" |
398 | "\tnexthdr = 0x%02x\n\thop_lim = %d\n", __func__, | 395 | "\tnexthdr = 0x%02x\n\thop_lim = %d\n", hdr->version, |
399 | hdr->version, ntohs(hdr->payload_len), hdr->nexthdr, | 396 | ntohs(hdr->payload_len), hdr->nexthdr, hdr->hop_limit); |
400 | hdr->hop_limit); | ||
401 | 397 | ||
402 | lowpan_raw_dump_table(__func__, "raw skb network header dump", | 398 | lowpan_raw_dump_table(__func__, "raw skb network header dump", |
403 | skb_network_header(skb), sizeof(struct ipv6hdr)); | 399 | skb_network_header(skb), sizeof(struct ipv6hdr)); |
@@ -498,23 +494,22 @@ static int lowpan_header_create(struct sk_buff *skb, | |||
498 | 494 | ||
499 | /* source address compression */ | 495 | /* source address compression */ |
500 | if (is_addr_unspecified(&hdr->saddr)) { | 496 | if (is_addr_unspecified(&hdr->saddr)) { |
501 | pr_debug("(%s): source address is unspecified, setting SAC\n", | 497 | pr_debug("source address is unspecified, setting SAC\n"); |
502 | __func__); | ||
503 | iphc1 |= LOWPAN_IPHC_SAC; | 498 | iphc1 |= LOWPAN_IPHC_SAC; |
504 | /* TODO: context lookup */ | 499 | /* TODO: context lookup */ |
505 | } else if (is_addr_link_local(&hdr->saddr)) { | 500 | } else if (is_addr_link_local(&hdr->saddr)) { |
506 | pr_debug("(%s): source address is link-local\n", __func__); | 501 | pr_debug("source address is link-local\n"); |
507 | iphc1 |= lowpan_compress_addr_64(&hc06_ptr, | 502 | iphc1 |= lowpan_compress_addr_64(&hc06_ptr, |
508 | LOWPAN_IPHC_SAM_BIT, &hdr->saddr, saddr); | 503 | LOWPAN_IPHC_SAM_BIT, &hdr->saddr, saddr); |
509 | } else { | 504 | } else { |
510 | pr_debug("(%s): send the full source address\n", __func__); | 505 | pr_debug("send the full source address\n"); |
511 | memcpy(hc06_ptr, &hdr->saddr.s6_addr16[0], 16); | 506 | memcpy(hc06_ptr, &hdr->saddr.s6_addr16[0], 16); |
512 | hc06_ptr += 16; | 507 | hc06_ptr += 16; |
513 | } | 508 | } |
514 | 509 | ||
515 | /* destination address compression */ | 510 | /* destination address compression */ |
516 | if (is_addr_mcast(&hdr->daddr)) { | 511 | if (is_addr_mcast(&hdr->daddr)) { |
517 | pr_debug("(%s): destination address is multicast", __func__); | 512 | pr_debug("destination address is multicast: "); |
518 | iphc1 |= LOWPAN_IPHC_M; | 513 | iphc1 |= LOWPAN_IPHC_M; |
519 | if (lowpan_is_mcast_addr_compressable8(&hdr->daddr)) { | 514 | if (lowpan_is_mcast_addr_compressable8(&hdr->daddr)) { |
520 | pr_debug("compressed to 1 octet\n"); | 515 | pr_debug("compressed to 1 octet\n"); |
@@ -543,14 +538,13 @@ static int lowpan_header_create(struct sk_buff *skb, | |||
543 | hc06_ptr += 16; | 538 | hc06_ptr += 16; |
544 | } | 539 | } |
545 | } else { | 540 | } else { |
546 | pr_debug("(%s): destination address is unicast: ", __func__); | ||
547 | /* TODO: context lookup */ | 541 | /* TODO: context lookup */ |
548 | if (is_addr_link_local(&hdr->daddr)) { | 542 | if (is_addr_link_local(&hdr->daddr)) { |
549 | pr_debug("destination address is link-local\n"); | 543 | pr_debug("dest address is unicast and link-local\n"); |
550 | iphc1 |= lowpan_compress_addr_64(&hc06_ptr, | 544 | iphc1 |= lowpan_compress_addr_64(&hc06_ptr, |
551 | LOWPAN_IPHC_DAM_BIT, &hdr->daddr, daddr); | 545 | LOWPAN_IPHC_DAM_BIT, &hdr->daddr, daddr); |
552 | } else { | 546 | } else { |
553 | pr_debug("using full address\n"); | 547 | pr_debug("dest address is unicast: using full one\n"); |
554 | memcpy(hc06_ptr, &hdr->daddr.s6_addr16[0], 16); | 548 | memcpy(hc06_ptr, &hdr->daddr.s6_addr16[0], 16); |
555 | hc06_ptr += 16; | 549 | hc06_ptr += 16; |
556 | } | 550 | } |
@@ -642,8 +636,7 @@ static void lowpan_fragment_timer_expired(unsigned long entry_addr) | |||
642 | { | 636 | { |
643 | struct lowpan_fragment *entry = (struct lowpan_fragment *)entry_addr; | 637 | struct lowpan_fragment *entry = (struct lowpan_fragment *)entry_addr; |
644 | 638 | ||
645 | pr_debug("%s: timer expired for frame with tag %d\n", __func__, | 639 | pr_debug("timer expired for frame with tag %d\n", entry->tag); |
646 | entry->tag); | ||
647 | 640 | ||
648 | spin_lock(&flist_lock); | 641 | spin_lock(&flist_lock); |
649 | list_del(&entry->list); | 642 | list_del(&entry->list); |
@@ -796,12 +789,11 @@ lowpan_process_data(struct sk_buff *skb) | |||
796 | _saddr = mac_cb(skb)->sa.hwaddr; | 789 | _saddr = mac_cb(skb)->sa.hwaddr; |
797 | _daddr = mac_cb(skb)->da.hwaddr; | 790 | _daddr = mac_cb(skb)->da.hwaddr; |
798 | 791 | ||
799 | pr_debug("(%s): iphc0 = %02x, iphc1 = %02x\n", __func__, iphc0, iphc1); | 792 | pr_debug("iphc0 = %02x, iphc1 = %02x\n", iphc0, iphc1); |
800 | 793 | ||
801 | /* another if the CID flag is set */ | 794 | /* another if the CID flag is set */ |
802 | if (iphc1 & LOWPAN_IPHC_CID) { | 795 | if (iphc1 & LOWPAN_IPHC_CID) { |
803 | pr_debug("(%s): CID flag is set, increase header with one\n", | 796 | pr_debug("CID flag is set, increase header with one\n"); |
804 | __func__); | ||
805 | if (lowpan_fetch_skb_u8(skb, &num_context)) | 797 | if (lowpan_fetch_skb_u8(skb, &num_context)) |
806 | goto drop; | 798 | goto drop; |
807 | } | 799 | } |
@@ -866,8 +858,8 @@ lowpan_process_data(struct sk_buff *skb) | |||
866 | if (lowpan_fetch_skb_u8(skb, &(hdr.nexthdr))) | 858 | if (lowpan_fetch_skb_u8(skb, &(hdr.nexthdr))) |
867 | goto drop; | 859 | goto drop; |
868 | 860 | ||
869 | pr_debug("(%s): NH flag is set, next header is carried " | 861 | pr_debug("NH flag is set, next header carried inline: %02x\n", |
870 | "inline: %02x\n", __func__, hdr.nexthdr); | 862 | hdr.nexthdr); |
871 | } | 863 | } |
872 | 864 | ||
873 | /* Hop Limit */ | 865 | /* Hop Limit */ |
@@ -882,7 +874,7 @@ lowpan_process_data(struct sk_buff *skb) | |||
882 | tmp = ((iphc1 & LOWPAN_IPHC_SAM) >> LOWPAN_IPHC_SAM_BIT) & 0x03; | 874 | tmp = ((iphc1 & LOWPAN_IPHC_SAM) >> LOWPAN_IPHC_SAM_BIT) & 0x03; |
883 | 875 | ||
884 | /* Source address uncompression */ | 876 | /* Source address uncompression */ |
885 | pr_debug("(%s): source address stateless compression\n", __func__); | 877 | pr_debug("source address stateless compression\n"); |
886 | err = lowpan_uncompress_addr(skb, &hdr.saddr, lowpan_llprefix, | 878 | err = lowpan_uncompress_addr(skb, &hdr.saddr, lowpan_llprefix, |
887 | lowpan_unc_llconf[tmp], skb->data); | 879 | lowpan_unc_llconf[tmp], skb->data); |
888 | if (err) | 880 | if (err) |
@@ -894,14 +886,12 @@ lowpan_process_data(struct sk_buff *skb) | |||
894 | /* check for Multicast Compression */ | 886 | /* check for Multicast Compression */ |
895 | if (iphc1 & LOWPAN_IPHC_M) { | 887 | if (iphc1 & LOWPAN_IPHC_M) { |
896 | if (iphc1 & LOWPAN_IPHC_DAC) { | 888 | if (iphc1 & LOWPAN_IPHC_DAC) { |
897 | pr_debug("(%s): destination address context-based " | 889 | pr_debug("dest: context-based mcast compression\n"); |
898 | "multicast compression\n", __func__); | ||
899 | /* TODO: implement this */ | 890 | /* TODO: implement this */ |
900 | } else { | 891 | } else { |
901 | u8 prefix[] = {0xff, 0x02}; | 892 | u8 prefix[] = {0xff, 0x02}; |
902 | 893 | ||
903 | pr_debug("(%s): destination address non-context-based" | 894 | pr_debug("dest: non context-based mcast compression\n"); |
904 | " multicast compression\n", __func__); | ||
905 | if (0 < tmp && tmp < 3) { | 895 | if (0 < tmp && tmp < 3) { |
906 | if (lowpan_fetch_skb_u8(skb, &prefix[1])) | 896 | if (lowpan_fetch_skb_u8(skb, &prefix[1])) |
907 | goto drop; | 897 | goto drop; |
@@ -913,8 +903,7 @@ lowpan_process_data(struct sk_buff *skb) | |||
913 | goto drop; | 903 | goto drop; |
914 | } | 904 | } |
915 | } else { | 905 | } else { |
916 | pr_debug("(%s): destination address stateless compression\n", | 906 | pr_debug("dest: stateless compression\n"); |
917 | __func__); | ||
918 | err = lowpan_uncompress_addr(skb, &hdr.daddr, lowpan_llprefix, | 907 | err = lowpan_uncompress_addr(skb, &hdr.daddr, lowpan_llprefix, |
919 | lowpan_unc_llconf[tmp], skb->data); | 908 | lowpan_unc_llconf[tmp], skb->data); |
920 | if (err) | 909 | if (err) |
@@ -929,11 +918,11 @@ lowpan_process_data(struct sk_buff *skb) | |||
929 | /* Not fragmented package */ | 918 | /* Not fragmented package */ |
930 | hdr.payload_len = htons(skb->len); | 919 | hdr.payload_len = htons(skb->len); |
931 | 920 | ||
932 | pr_debug("(%s): skb headroom size = %d, data length = %d\n", __func__, | 921 | pr_debug("skb headroom size = %d, data length = %d\n", |
933 | skb_headroom(skb), skb->len); | 922 | skb_headroom(skb), skb->len); |
934 | 923 | ||
935 | pr_debug("(%s): IPv6 header dump:\n\tversion = %d\n\tlength = %d\n\t" | 924 | pr_debug("IPv6 header dump:\n\tversion = %d\n\tlength = %d\n\t" |
936 | "nexthdr = 0x%02x\n\thop_lim = %d\n", __func__, hdr.version, | 925 | "nexthdr = 0x%02x\n\thop_lim = %d\n", hdr.version, |
937 | ntohs(hdr.payload_len), hdr.nexthdr, hdr.hop_limit); | 926 | ntohs(hdr.payload_len), hdr.nexthdr, hdr.hop_limit); |
938 | 927 | ||
939 | lowpan_raw_dump_table(__func__, "raw header dump", (u8 *)&hdr, | 928 | lowpan_raw_dump_table(__func__, "raw header dump", (u8 *)&hdr, |
@@ -1035,11 +1024,11 @@ static netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1035 | { | 1024 | { |
1036 | int err = -1; | 1025 | int err = -1; |
1037 | 1026 | ||
1038 | pr_debug("(%s): package xmit\n", __func__); | 1027 | pr_debug("package xmit\n"); |
1039 | 1028 | ||
1040 | skb->dev = lowpan_dev_info(dev)->real_dev; | 1029 | skb->dev = lowpan_dev_info(dev)->real_dev; |
1041 | if (skb->dev == NULL) { | 1030 | if (skb->dev == NULL) { |
1042 | pr_debug("(%s) ERROR: no real wpan device found\n", __func__); | 1031 | pr_debug("ERROR: no real wpan device found\n"); |
1043 | goto error; | 1032 | goto error; |
1044 | } | 1033 | } |
1045 | 1034 | ||
@@ -1048,14 +1037,13 @@ static netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1048 | goto out; | 1037 | goto out; |
1049 | } | 1038 | } |
1050 | 1039 | ||
1051 | pr_debug("(%s): frame is too big, fragmentation is needed\n", | 1040 | pr_debug("frame is too big, fragmentation is needed\n"); |
1052 | __func__); | ||
1053 | err = lowpan_skb_fragmentation(skb); | 1041 | err = lowpan_skb_fragmentation(skb); |
1054 | error: | 1042 | error: |
1055 | dev_kfree_skb(skb); | 1043 | dev_kfree_skb(skb); |
1056 | out: | 1044 | out: |
1057 | if (err < 0) | 1045 | if (err < 0) |
1058 | pr_debug("(%s): ERROR: xmit failed\n", __func__); | 1046 | pr_debug("ERROR: xmit failed\n"); |
1059 | 1047 | ||
1060 | return (err < 0 ? NETDEV_TX_BUSY : NETDEV_TX_OK); | 1048 | return (err < 0 ? NETDEV_TX_BUSY : NETDEV_TX_OK); |
1061 | } | 1049 | } |
@@ -1101,8 +1089,6 @@ static struct ieee802154_mlme_ops lowpan_mlme = { | |||
1101 | 1089 | ||
1102 | static void lowpan_setup(struct net_device *dev) | 1090 | static void lowpan_setup(struct net_device *dev) |
1103 | { | 1091 | { |
1104 | pr_debug("(%s)\n", __func__); | ||
1105 | |||
1106 | dev->addr_len = IEEE802154_ADDR_LEN; | 1092 | dev->addr_len = IEEE802154_ADDR_LEN; |
1107 | memset(dev->broadcast, 0xff, IEEE802154_ADDR_LEN); | 1093 | memset(dev->broadcast, 0xff, IEEE802154_ADDR_LEN); |
1108 | dev->type = ARPHRD_IEEE802154; | 1094 | dev->type = ARPHRD_IEEE802154; |
@@ -1122,8 +1108,6 @@ static void lowpan_setup(struct net_device *dev) | |||
1122 | 1108 | ||
1123 | static int lowpan_validate(struct nlattr *tb[], struct nlattr *data[]) | 1109 | static int lowpan_validate(struct nlattr *tb[], struct nlattr *data[]) |
1124 | { | 1110 | { |
1125 | pr_debug("(%s)\n", __func__); | ||
1126 | |||
1127 | if (tb[IFLA_ADDRESS]) { | 1111 | if (tb[IFLA_ADDRESS]) { |
1128 | if (nla_len(tb[IFLA_ADDRESS]) != IEEE802154_ADDR_LEN) | 1112 | if (nla_len(tb[IFLA_ADDRESS]) != IEEE802154_ADDR_LEN) |
1129 | return -EINVAL; | 1113 | return -EINVAL; |
@@ -1164,7 +1148,7 @@ static int lowpan_newlink(struct net *src_net, struct net_device *dev, | |||
1164 | struct net_device *real_dev; | 1148 | struct net_device *real_dev; |
1165 | struct lowpan_dev_record *entry; | 1149 | struct lowpan_dev_record *entry; |
1166 | 1150 | ||
1167 | pr_debug("(%s)\n", __func__); | 1151 | pr_debug("adding new link\n"); |
1168 | 1152 | ||
1169 | if (!tb[IFLA_LINK]) | 1153 | if (!tb[IFLA_LINK]) |
1170 | return -EINVAL; | 1154 | return -EINVAL; |
@@ -1259,8 +1243,6 @@ static int __init lowpan_init_module(void) | |||
1259 | { | 1243 | { |
1260 | int err = 0; | 1244 | int err = 0; |
1261 | 1245 | ||
1262 | pr_debug("(%s)\n", __func__); | ||
1263 | |||
1264 | err = lowpan_netlink_init(); | 1246 | err = lowpan_netlink_init(); |
1265 | if (err < 0) | 1247 | if (err < 0) |
1266 | goto out; | 1248 | goto out; |
@@ -1272,8 +1254,6 @@ out: | |||
1272 | 1254 | ||
1273 | static void __exit lowpan_cleanup_module(void) | 1255 | static void __exit lowpan_cleanup_module(void) |
1274 | { | 1256 | { |
1275 | pr_debug("(%s)\n", __func__); | ||
1276 | |||
1277 | lowpan_netlink_fini(); | 1257 | lowpan_netlink_fini(); |
1278 | 1258 | ||
1279 | dev_remove_pack(&lowpan_packet_type); | 1259 | dev_remove_pack(&lowpan_packet_type); |