forked from Minki/linux
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>
This commit is contained in:
parent
c9ca640140
commit
9cf215d073
@ -138,6 +138,8 @@ static int mac802154_parse_frame_start(struct sk_buff *skb,
|
|||||||
int hlen;
|
int hlen;
|
||||||
struct ieee802154_mac_cb *cb = mac_cb_init(skb);
|
struct ieee802154_mac_cb *cb = mac_cb_init(skb);
|
||||||
|
|
||||||
|
skb_reset_mac_header(skb);
|
||||||
|
|
||||||
hlen = ieee802154_hdr_pull(skb, hdr);
|
hlen = ieee802154_hdr_pull(skb, hdr);
|
||||||
if (hlen < 0)
|
if (hlen < 0)
|
||||||
return -EINVAL;
|
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);
|
u16 crc = crc_ccitt(0, skb->data, skb->len);
|
||||||
u8 *data;
|
u8 *data;
|
||||||
|
|
||||||
|
skb_reset_mac_header(skb);
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
skb->pkt_type = PACKET_OTHERHOST;
|
skb->pkt_type = PACKET_OTHERHOST;
|
||||||
skb->protocol = htons(ETH_P_IEEE802154);
|
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);
|
WARN_ON_ONCE(softirq_count() == 0);
|
||||||
|
|
||||||
skb_reset_mac_header(skb);
|
|
||||||
|
|
||||||
if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) {
|
if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) {
|
||||||
u16 crc;
|
u16 crc;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user