]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/6lowpan/iphc.c
Merge tag 'linux-can-next-for-4.4-20150921' of git://git.kernel.org/pub/scm/linux...
[karo-tx-linux.git] / net / 6lowpan / iphc.c
index 1e0071fdcf72a036d6697f2e453ba303b69abbe0..78c8a495b57174565aaeda4e6a626b16bb82c240 100644 (file)
@@ -366,7 +366,18 @@ lowpan_header_decompress(struct sk_buff *skb, struct net_device *dev,
                        return err;
        }
 
-       hdr.payload_len = htons(skb->len);
+       switch (lowpan_priv(dev)->lltype) {
+       case LOWPAN_LLTYPE_IEEE802154:
+               if (lowpan_802154_cb(skb)->d_size)
+                       hdr.payload_len = htons(lowpan_802154_cb(skb)->d_size -
+                                               sizeof(struct ipv6hdr));
+               else
+                       hdr.payload_len = htons(skb->len);
+               break;
+       default:
+               hdr.payload_len = htons(skb->len);
+               break;
+       }
 
        pr_debug("skb headroom size = %d, data length = %d\n",
                 skb_headroom(skb), skb->len);