We don't need to check if the wpan interface is running because the
lowpan_rcv is the packet layer receive handler for the wpan interface.
Instead doing a check if wpan interface is running we should check if
the lowpan interface is running before starting 6lowpan adaptation layer.
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>
struct packet_type *pt, struct net_device *orig_wdev)
{
struct ieee802154_hdr hdr;
+ struct net_device *ldev;
int ret;
- if (wdev->type != ARPHRD_IEEE802154 ||
- !wdev->ieee802154_ptr->lowpan_dev)
+ if (wdev->type != ARPHRD_IEEE802154)
+ goto drop;
+
+ ldev = wdev->ieee802154_ptr->lowpan_dev;
+ if (!ldev || !netif_running(ldev))
goto drop;
skb = skb_share_check(skb, GFP_ATOMIC);
if (!skb)
goto drop;
- if (!netif_running(wdev))
- goto drop_skb;
-
if (skb->pkt_type == PACKET_OTHERHOST)
goto drop_skb;