This patch moves some trivial checks at first before calling skb_share_check which could do some memcpy if the buffer is shared. Signed-off-by: Alexander Aring <alex.aring@xxxxxxxxx> --- net/ieee802154/6lowpan/rx.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/net/ieee802154/6lowpan/rx.c b/net/ieee802154/6lowpan/rx.c index 7b6b038..11a5629 100644 --- a/net/ieee802154/6lowpan/rx.c +++ b/net/ieee802154/6lowpan/rx.c @@ -62,16 +62,14 @@ static int lowpan_rcv(struct sk_buff *skb, struct net_device *wdev, struct ieee802154_hdr hdr; int ret; + if (skb->pkt_type == PACKET_OTHERHOST || + wdev->type != ARPHRD_IEEE802154) + goto drop; + skb = skb_share_check(skb, GFP_ATOMIC); if (!skb) goto drop; - if (skb->pkt_type == PACKET_OTHERHOST) - goto drop_skb; - - if (wdev->type != ARPHRD_IEEE802154) - goto drop_skb; - if (ieee802154_hdr_peek_addrs(skb, &hdr) < 0) goto drop_skb; -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html