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>hifive-unleashed-5.1
parent
469100d6c2
commit
702dcf994a
|
@ -31,6 +31,8 @@
|
||||||
|
|
||||||
static int mac802154_process_data(struct net_device *dev, struct sk_buff *skb)
|
static int mac802154_process_data(struct net_device *dev, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
|
skb->protocol = htons(ETH_P_IEEE802154);
|
||||||
|
|
||||||
return netif_receive_skb(skb);
|
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);
|
u16 crc = crc_ccitt(0, skb->data, skb->len);
|
||||||
u8 *data;
|
u8 *data;
|
||||||
|
|
||||||
|
skb->protocol = htons(ETH_P_IEEE802154);
|
||||||
|
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
list_for_each_entry_rcu(sdata, &local->interfaces, list) {
|
list_for_each_entry_rcu(sdata, &local->interfaces, list) {
|
||||||
if (sdata->type != IEEE802154_DEV_MONITOR ||
|
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);
|
WARN_ON_ONCE(softirq_count() == 0);
|
||||||
|
|
||||||
skb->protocol = htons(ETH_P_IEEE802154);
|
|
||||||
skb_reset_mac_header(skb);
|
skb_reset_mac_header(skb);
|
||||||
|
|
||||||
if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) {
|
if (!(local->hw.flags & IEEE802154_HW_OMIT_CKSUM)) {
|
||||||
|
|
Loading…
Reference in New Issue