mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-23 15:11:16 +00:00
mac80211: add a function for running rx without passing skbs to the stack
This can be used to run mac80211 rx processing on a batch of frames in NAPI poll before passing them to the network stack in a large batch. This can improve icache footprint, or it can be used to pass frames via netif_receive_skb_list. Signed-off-by: Felix Fietkau <nbd@nbd.name> Link: https://lore.kernel.org/r/20200726110611.46886-1-nbd@nbd.name Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
cb17ed29a7
commit
c5d1686b31
3 changed files with 64 additions and 23 deletions
|
@ -4360,6 +4360,31 @@ void ieee80211_free_hw(struct ieee80211_hw *hw);
|
|||
*/
|
||||
void ieee80211_restart_hw(struct ieee80211_hw *hw);
|
||||
|
||||
/**
|
||||
* ieee80211_rx_list - receive frame and store processed skbs in a list
|
||||
*
|
||||
* Use this function to hand received frames to mac80211. The receive
|
||||
* buffer in @skb must start with an IEEE 802.11 header. In case of a
|
||||
* paged @skb is used, the driver is recommended to put the ieee80211
|
||||
* header of the frame on the linear part of the @skb to avoid memory
|
||||
* allocation and/or memcpy by the stack.
|
||||
*
|
||||
* This function may not be called in IRQ context. Calls to this function
|
||||
* for a single hardware must be synchronized against each other. Calls to
|
||||
* this function, ieee80211_rx_ni() and ieee80211_rx_irqsafe() may not be
|
||||
* mixed for a single hardware. Must not run concurrently with
|
||||
* ieee80211_tx_status() or ieee80211_tx_status_ni().
|
||||
*
|
||||
* This function must be called with BHs disabled and RCU read lock
|
||||
*
|
||||
* @hw: the hardware this frame came in on
|
||||
* @sta: the station the frame was received from, or %NULL
|
||||
* @skb: the buffer to receive, owned by mac80211 after this call
|
||||
* @list: the destination list
|
||||
*/
|
||||
void ieee80211_rx_list(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
|
||||
struct sk_buff *skb, struct list_head *list);
|
||||
|
||||
/**
|
||||
* ieee80211_rx_napi - receive frame from NAPI context
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue