From: Alexander Aring Date: Wed, 2 Sep 2015 12:21:24 +0000 (+0200) Subject: ieee802154: 6lowpan: earlier skb->dev switch X-Git-Tag: KARO-TX6UL-2015-11-03~90^2~277^2~30 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=f801cf40243d8f81ac05aa7466d9d8b1e676ee7c;p=karo-tx-linux.git ieee802154: 6lowpan: earlier skb->dev switch We should change the skb->dev pointer earlier to the lowpan interface Sometimes we call iphc_decompress which also use some netdev printout functionality. This patch will change that the correct interface will be displayed in this case, which should be the lowpan interface. Reviewed-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann --- diff --git a/net/ieee802154/6lowpan/rx.c b/net/ieee802154/6lowpan/rx.c index 74d8fec51a0c..f9cb70b6749f 100644 --- a/net/ieee802154/6lowpan/rx.c +++ b/net/ieee802154/6lowpan/rx.c @@ -18,7 +18,6 @@ static int lowpan_give_skb_to_device(struct sk_buff *skb, struct net_device *wdev) { - skb->dev = wdev->ieee802154_ptr->lowpan_dev; skb->protocol = htons(ETH_P_IPV6); skb->pkt_type = PACKET_HOST; @@ -71,9 +70,11 @@ static int lowpan_rcv(struct sk_buff *skb, struct net_device *wdev, if (!ldev || !netif_running(ldev)) goto drop; + /* Replacing skb->dev and followed rx handlers will manipulate skb. */ skb = skb_share_check(skb, GFP_ATOMIC); if (!skb) goto drop; + skb->dev = ldev; if (ieee802154_hdr_peek_addrs(skb, &hdr) < 0) goto drop_skb;