diff options
author | Alexander Aring <alex.aring@gmail.com> | 2014-10-27 16:13:38 (GMT) |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2014-10-27 17:07:45 (GMT) |
commit | 9cf215d0733256687796ef1161b7b358be1b0602 (patch) | |
tree | 8d0637932c1aa4d89296d69a0ce2ff49ad870119 | |
parent | c9ca6401405ea0c197ab7c8bcab2b82b26678145 (diff) | |
download | linux-9cf215d0733256687796ef1161b7b358be1b0602.tar.xz |
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>
-rw-r--r-- | net/mac802154/rx.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/mac802154/rx.c b/net/mac802154/rx.c index f7f09b4..c299980 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, int hlen; struct ieee802154_mac_cb *cb = mac_cb_init(skb); + skb_reset_mac_header(skb); + hlen = ieee802154_hdr_pull(skb, hdr); if (hlen < 0) return -EINVAL; @@ -227,6 +229,7 @@ mac802154_monitors_rx(struct ieee802154_local *local, struct sk_buff *skb) u16 crc = crc_ccitt(0, skb->data, skb->len); u8 *data; + skb_reset_mac_header(skb); skb->ip_summed = CHECKSUM_UNNECESSARY; skb->pkt_type = PACKET_OTHERHOST; skb->protocol = htons(ETH_P_IEEE802154); @@ -255,8 +258,6 @@ void ieee802154_rx(struct ieee802154_hw *hw, struct sk_buff *skb) WARN_ON_ONCE(softirq_count() == 0); - skb_reset_mac_header(skb); - if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) { u16 crc; |