mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 13:44:15 +08:00
wifi: mac80211_hwsim: refactor RX a bit
Refactor some common RX functionality between the netlink and non-netlink paths, adding the special hwsim TLV (if compiled) also in the netlink path. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
b2c4aa35eb
commit
b1622adaa5
@ -1561,6 +1561,19 @@ static void mac80211_hwsim_add_vendor_rtap(struct sk_buff *skb)
|
||||
#endif
|
||||
}
|
||||
|
||||
static void mac80211_hwsim_rx(struct mac80211_hwsim_data *data,
|
||||
struct ieee80211_rx_status *rx_status,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
memcpy(IEEE80211_SKB_RXCB(skb), rx_status, sizeof(*rx_status));
|
||||
|
||||
mac80211_hwsim_add_vendor_rtap(skb);
|
||||
|
||||
data->rx_pkts++;
|
||||
data->rx_bytes += skb->len;
|
||||
ieee80211_rx_irqsafe(data->hw, skb);
|
||||
}
|
||||
|
||||
static bool mac80211_hwsim_tx_frame_no_nl(struct ieee80211_hw *hw,
|
||||
struct sk_buff *skb,
|
||||
struct ieee80211_channel *chan)
|
||||
@ -1688,13 +1701,7 @@ static bool mac80211_hwsim_tx_frame_no_nl(struct ieee80211_hw *hw,
|
||||
|
||||
rx_status.mactime = now + data2->tsf_offset;
|
||||
|
||||
memcpy(IEEE80211_SKB_RXCB(nskb), &rx_status, sizeof(rx_status));
|
||||
|
||||
mac80211_hwsim_add_vendor_rtap(nskb);
|
||||
|
||||
data2->rx_pkts++;
|
||||
data2->rx_bytes += nskb->len;
|
||||
ieee80211_rx_irqsafe(data2->hw, nskb);
|
||||
mac80211_hwsim_rx(data2, &rx_status, nskb);
|
||||
}
|
||||
spin_unlock(&hwsim_radio_lock);
|
||||
|
||||
@ -4907,10 +4914,7 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,
|
||||
ieee80211_is_probe_resp(hdr->frame_control))
|
||||
rx_status.boottime_ns = ktime_get_boottime_ns();
|
||||
|
||||
memcpy(IEEE80211_SKB_RXCB(skb), &rx_status, sizeof(rx_status));
|
||||
data2->rx_pkts++;
|
||||
data2->rx_bytes += skb->len;
|
||||
ieee80211_rx_irqsafe(data2->hw, skb);
|
||||
mac80211_hwsim_rx(data2, &rx_status, skb);
|
||||
|
||||
return 0;
|
||||
err:
|
||||
|
Loading…
Reference in New Issue
Block a user