aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac802154
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2014-10-27 12:13:35 -0400
committerMarcel Holtmann <marcel@holtmann.org>2014-10-27 13:07:43 -0400
commit702dcf994a0f0c467aae4b65885833a114126387 (patch)
tree344d289f803f5013081298063826d170a802528b /net/mac802154
parent469100d6c2ff22cd1f50672ac6d09a1633334489 (diff)
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 <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/mac802154')
-rw-r--r--net/mac802154/rx.c5
1 files changed, 4 insertions, 1 deletions
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 @@
31 31
32static int mac802154_process_data(struct net_device *dev, struct sk_buff *skb) 32static int mac802154_process_data(struct net_device *dev, struct sk_buff *skb)
33{ 33{
34 skb->protocol = htons(ETH_P_IEEE802154);
35
34 return netif_receive_skb(skb); 36 return netif_receive_skb(skb);
35} 37}
36 38
@@ -224,6 +226,8 @@ mac802154_monitors_rx(struct ieee802154_local *local, struct sk_buff *skb)
224 u16 crc = crc_ccitt(0, skb->data, skb->len); 226 u16 crc = crc_ccitt(0, skb->data, skb->len);
225 u8 *data; 227 u8 *data;
226 228
229 skb->protocol = htons(ETH_P_IEEE802154);
230
227 rcu_read_lock(); 231 rcu_read_lock();
228 list_for_each_entry_rcu(sdata, &local->interfaces, list) { 232 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
229 if (sdata->type != IEEE802154_DEV_MONITOR || 233 if (sdata->type != IEEE802154_DEV_MONITOR ||
@@ -248,7 +252,6 @@ void ieee802154_rx(struct ieee802154_hw *hw, struct sk_buff *skb)
248 252
249 WARN_ON_ONCE(softirq_count() == 0); 253 WARN_ON_ONCE(softirq_count() == 0);
250 254
251 skb->protocol = htons(ETH_P_IEEE802154);
252 skb_reset_mac_header(skb); 255 skb_reset_mac_header(skb);
253 256
254 if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) { 257 if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) {