From: Alexander Aring Date: Wed, 2 Sep 2015 12:21:23 +0000 (+0200) Subject: ieee802154: 6lowpan: trivial checks at first X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=742c3afe53c5d16fa62632c34f8e2273766d3052;p=openwrt%2Fstaging%2Fblogic.git ieee802154: 6lowpan: trivial checks at first This patch moves some trivial checks at first before calling skb_share_check which could do some memcpy if the buffer is shared. 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 4ddf69445032..74d8fec51a0c 100644 --- a/net/ieee802154/6lowpan/rx.c +++ b/net/ieee802154/6lowpan/rx.c @@ -63,7 +63,8 @@ static int lowpan_rcv(struct sk_buff *skb, struct net_device *wdev, struct net_device *ldev; int ret; - if (wdev->type != ARPHRD_IEEE802154) + if (wdev->type != ARPHRD_IEEE802154 || + skb->pkt_type == PACKET_OTHERHOST) goto drop; ldev = wdev->ieee802154_ptr->lowpan_dev; @@ -74,9 +75,6 @@ static int lowpan_rcv(struct sk_buff *skb, struct net_device *wdev, if (!skb) goto drop; - if (skb->pkt_type == PACKET_OTHERHOST) - goto drop_skb; - if (ieee802154_hdr_peek_addrs(skb, &hdr) < 0) goto drop_skb;