aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac802154
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2014-10-27 12:13:38 -0400
committerMarcel Holtmann <marcel@holtmann.org>2014-10-27 13:07:45 -0400
commit9cf215d0733256687796ef1161b7b358be1b0602 (patch)
tree8d0637932c1aa4d89296d69a0ce2ff49ad870119 /net/mac802154
parentc9ca6401405ea0c197ab7c8bcab2b82b26678145 (diff)
mac802154: rx: move skb_reset_mac_header
This patch moves the skb_reset_mac_header call before frame parsing while wpan rx and before monitor deliver functionality. 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, 3 insertions, 2 deletions
diff --git a/net/mac802154/rx.c b/net/mac802154/rx.c
index f7f09b46faa4..c2999804126a 100644
--- a/net/mac802154/rx.c
+++ b/net/mac802154/rx.c
@@ -138,6 +138,8 @@ static int mac802154_parse_frame_start(struct sk_buff *skb,
138 int hlen; 138 int hlen;
139 struct ieee802154_mac_cb *cb = mac_cb_init(skb); 139 struct ieee802154_mac_cb *cb = mac_cb_init(skb);
140 140
141 skb_reset_mac_header(skb);
142
141 hlen = ieee802154_hdr_pull(skb, hdr); 143 hlen = ieee802154_hdr_pull(skb, hdr);
142 if (hlen < 0) 144 if (hlen < 0)
143 return -EINVAL; 145 return -EINVAL;
@@ -227,6 +229,7 @@ mac802154_monitors_rx(struct ieee802154_local *local, struct sk_buff *skb)
227 u16 crc = crc_ccitt(0, skb->data, skb->len); 229 u16 crc = crc_ccitt(0, skb->data, skb->len);
228 u8 *data; 230 u8 *data;
229 231
232 skb_reset_mac_header(skb);
230 skb->ip_summed = CHECKSUM_UNNECESSARY; 233 skb->ip_summed = CHECKSUM_UNNECESSARY;
231 skb->pkt_type = PACKET_OTHERHOST; 234 skb->pkt_type = PACKET_OTHERHOST;
232 skb->protocol = htons(ETH_P_IEEE802154); 235 skb->protocol = htons(ETH_P_IEEE802154);
@@ -255,8 +258,6 @@ void ieee802154_rx(struct ieee802154_hw *hw, struct sk_buff *skb)
255 258
256 WARN_ON_ONCE(softirq_count() == 0); 259 WARN_ON_ONCE(softirq_count() == 0);
257 260
258 skb_reset_mac_header(skb);
259
260 if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) { 261 if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) {
261 u16 crc; 262 u16 crc;
262 263