From: Alexander Aring Date: Mon, 27 Oct 2014 16:13:35 +0000 (+0100) Subject: mac802154: rx: move skb->protocol setting X-Git-Tag: firefly_0821_release~176^2~2717^2~28^2~129^2~53 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=702dcf994a0f0c467aae4b65885833a114126387;p=firefly-linux-kernel-4.4.55.git mac802154: rx: move skb->protocol setting This patch moves the skb->protocol setting to the position when it's needed. It's only needed when frame parsing was successful. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann --- diff --git a/net/mac802154/rx.c b/net/mac802154/rx.c index 246a60e8f76a..c4066b5006f1 100644 --- a/net/mac802154/rx.c +++ b/net/mac802154/rx.c @@ -31,6 +31,8 @@ static int mac802154_process_data(struct net_device *dev, struct sk_buff *skb) { + skb->protocol = htons(ETH_P_IEEE802154); + return netif_receive_skb(skb); } @@ -224,6 +226,8 @@ mac802154_monitors_rx(struct ieee802154_local *local, struct sk_buff *skb) u16 crc = crc_ccitt(0, skb->data, skb->len); u8 *data; + skb->protocol = htons(ETH_P_IEEE802154); + rcu_read_lock(); list_for_each_entry_rcu(sdata, &local->interfaces, list) { if (sdata->type != IEEE802154_DEV_MONITOR || @@ -248,7 +252,6 @@ void ieee802154_rx(struct ieee802154_hw *hw, struct sk_buff *skb) WARN_ON_ONCE(softirq_count() == 0); - skb->protocol = htons(ETH_P_IEEE802154); skb_reset_mac_header(skb); if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) {