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 <stefan@osg.samsung.com> Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
742c3afe53
commit
f801cf4024
1 changed files with 2 additions and 1 deletions
|
@ -18,7 +18,6 @@
|
||||||
static int lowpan_give_skb_to_device(struct sk_buff *skb,
|
static int lowpan_give_skb_to_device(struct sk_buff *skb,
|
||||||
struct net_device *wdev)
|
struct net_device *wdev)
|
||||||
{
|
{
|
||||||
skb->dev = wdev->ieee802154_ptr->lowpan_dev;
|
|
||||||
skb->protocol = htons(ETH_P_IPV6);
|
skb->protocol = htons(ETH_P_IPV6);
|
||||||
skb->pkt_type = PACKET_HOST;
|
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))
|
if (!ldev || !netif_running(ldev))
|
||||||
goto drop;
|
goto drop;
|
||||||
|
|
||||||
|
/* Replacing skb->dev and followed rx handlers will manipulate skb. */
|
||||||
skb = skb_share_check(skb, GFP_ATOMIC);
|
skb = skb_share_check(skb, GFP_ATOMIC);
|
||||||
if (!skb)
|
if (!skb)
|
||||||
goto drop;
|
goto drop;
|
||||||
|
skb->dev = ldev;
|
||||||
|
|
||||||
if (ieee802154_hdr_peek_addrs(skb, &hdr) < 0)
|
if (ieee802154_hdr_peek_addrs(skb, &hdr) < 0)
|
||||||
goto drop_skb;
|
goto drop_skb;
|
||||||
|
|
Loading…
Reference in a new issue