Skip to content

Commit

Permalink
wifi: mac80211_hwsim: refactor RX a bit
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Johannes Berg committed Sep 3, 2022
1 parent b2c4aa3 commit b1622ad
Showing 1 changed file with 15 additions and 11 deletions.
26 changes: 15 additions & 11 deletions drivers/net/wireless/mac80211_hwsim.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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);

Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit b1622ad

Please sign in to comment.