Loading include/net/mac80211.h +4 −3 Original line number Original line Diff line number Diff line Loading @@ -3762,11 +3762,12 @@ void ieee80211_restart_hw(struct ieee80211_hw *hw); * This function must be called with BHs disabled. * This function must be called with BHs disabled. * * * @hw: the hardware this frame came in on * @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 * @skb: the buffer to receive, owned by mac80211 after this call * @napi: the NAPI context * @napi: the NAPI context */ */ void ieee80211_rx_napi(struct ieee80211_hw *hw, struct sk_buff *skb, void ieee80211_rx_napi(struct ieee80211_hw *hw, struct ieee80211_sta *sta, struct napi_struct *napi); struct sk_buff *skb, struct napi_struct *napi); /** /** * ieee80211_rx - receive frame * ieee80211_rx - receive frame Loading @@ -3790,7 +3791,7 @@ void ieee80211_rx_napi(struct ieee80211_hw *hw, struct sk_buff *skb, */ */ static inline void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) static inline void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) { { ieee80211_rx_napi(hw, skb, NULL); ieee80211_rx_napi(hw, NULL, skb, NULL); } } /** /** Loading net/mac80211/rx.c +13 −5 Original line number Original line Diff line number Diff line Loading @@ -3454,6 +3454,7 @@ static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx, * be called with rcu_read_lock protection. * be called with rcu_read_lock protection. */ */ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta, struct sk_buff *skb, struct sk_buff *skb, struct napi_struct *napi) struct napi_struct *napi) { { Loading @@ -3463,7 +3464,6 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, __le16 fc; __le16 fc; struct ieee80211_rx_data rx; struct ieee80211_rx_data rx; struct ieee80211_sub_if_data *prev; struct ieee80211_sub_if_data *prev; struct sta_info *sta, *prev_sta; struct rhash_head *tmp; struct rhash_head *tmp; int err = 0; int err = 0; Loading Loading @@ -3499,7 +3499,14 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, ieee80211_is_beacon(hdr->frame_control))) ieee80211_is_beacon(hdr->frame_control))) ieee80211_scan_rx(local, skb); ieee80211_scan_rx(local, skb); if (ieee80211_is_data(fc)) { if (pubsta) { rx.sta = container_of(pubsta, struct sta_info, sta); rx.sdata = rx.sta->sdata; if (ieee80211_prepare_and_rx_handle(&rx, skb, true)) return; goto out; } else if (ieee80211_is_data(fc)) { struct sta_info *sta, *prev_sta; const struct bucket_table *tbl; const struct bucket_table *tbl; prev_sta = NULL; prev_sta = NULL; Loading Loading @@ -3573,8 +3580,8 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, * This is the receive path handler. It is called by a low level driver when an * This is the receive path handler. It is called by a low level driver when an * 802.11 MPDU is received from the hardware. * 802.11 MPDU is received from the hardware. */ */ void ieee80211_rx_napi(struct ieee80211_hw *hw, struct sk_buff *skb, void ieee80211_rx_napi(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta, struct napi_struct *napi) struct sk_buff *skb, struct napi_struct *napi) { { struct ieee80211_local *local = hw_to_local(hw); struct ieee80211_local *local = hw_to_local(hw); struct ieee80211_rate *rate = NULL; struct ieee80211_rate *rate = NULL; Loading Loading @@ -3673,7 +3680,8 @@ void ieee80211_rx_napi(struct ieee80211_hw *hw, struct sk_buff *skb, ieee80211_tpt_led_trig_rx(local, ieee80211_tpt_led_trig_rx(local, ((struct ieee80211_hdr *)skb->data)->frame_control, ((struct ieee80211_hdr *)skb->data)->frame_control, skb->len); skb->len); __ieee80211_rx_handle_packet(hw, skb, napi); __ieee80211_rx_handle_packet(hw, pubsta, skb, napi); rcu_read_unlock(); rcu_read_unlock(); Loading Loading
include/net/mac80211.h +4 −3 Original line number Original line Diff line number Diff line Loading @@ -3762,11 +3762,12 @@ void ieee80211_restart_hw(struct ieee80211_hw *hw); * This function must be called with BHs disabled. * This function must be called with BHs disabled. * * * @hw: the hardware this frame came in on * @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 * @skb: the buffer to receive, owned by mac80211 after this call * @napi: the NAPI context * @napi: the NAPI context */ */ void ieee80211_rx_napi(struct ieee80211_hw *hw, struct sk_buff *skb, void ieee80211_rx_napi(struct ieee80211_hw *hw, struct ieee80211_sta *sta, struct napi_struct *napi); struct sk_buff *skb, struct napi_struct *napi); /** /** * ieee80211_rx - receive frame * ieee80211_rx - receive frame Loading @@ -3790,7 +3791,7 @@ void ieee80211_rx_napi(struct ieee80211_hw *hw, struct sk_buff *skb, */ */ static inline void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) static inline void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) { { ieee80211_rx_napi(hw, skb, NULL); ieee80211_rx_napi(hw, NULL, skb, NULL); } } /** /** Loading
net/mac80211/rx.c +13 −5 Original line number Original line Diff line number Diff line Loading @@ -3454,6 +3454,7 @@ static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx, * be called with rcu_read_lock protection. * be called with rcu_read_lock protection. */ */ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta, struct sk_buff *skb, struct sk_buff *skb, struct napi_struct *napi) struct napi_struct *napi) { { Loading @@ -3463,7 +3464,6 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, __le16 fc; __le16 fc; struct ieee80211_rx_data rx; struct ieee80211_rx_data rx; struct ieee80211_sub_if_data *prev; struct ieee80211_sub_if_data *prev; struct sta_info *sta, *prev_sta; struct rhash_head *tmp; struct rhash_head *tmp; int err = 0; int err = 0; Loading Loading @@ -3499,7 +3499,14 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, ieee80211_is_beacon(hdr->frame_control))) ieee80211_is_beacon(hdr->frame_control))) ieee80211_scan_rx(local, skb); ieee80211_scan_rx(local, skb); if (ieee80211_is_data(fc)) { if (pubsta) { rx.sta = container_of(pubsta, struct sta_info, sta); rx.sdata = rx.sta->sdata; if (ieee80211_prepare_and_rx_handle(&rx, skb, true)) return; goto out; } else if (ieee80211_is_data(fc)) { struct sta_info *sta, *prev_sta; const struct bucket_table *tbl; const struct bucket_table *tbl; prev_sta = NULL; prev_sta = NULL; Loading Loading @@ -3573,8 +3580,8 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, * This is the receive path handler. It is called by a low level driver when an * This is the receive path handler. It is called by a low level driver when an * 802.11 MPDU is received from the hardware. * 802.11 MPDU is received from the hardware. */ */ void ieee80211_rx_napi(struct ieee80211_hw *hw, struct sk_buff *skb, void ieee80211_rx_napi(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta, struct napi_struct *napi) struct sk_buff *skb, struct napi_struct *napi) { { struct ieee80211_local *local = hw_to_local(hw); struct ieee80211_local *local = hw_to_local(hw); struct ieee80211_rate *rate = NULL; struct ieee80211_rate *rate = NULL; Loading Loading @@ -3673,7 +3680,8 @@ void ieee80211_rx_napi(struct ieee80211_hw *hw, struct sk_buff *skb, ieee80211_tpt_led_trig_rx(local, ieee80211_tpt_led_trig_rx(local, ((struct ieee80211_hdr *)skb->data)->frame_control, ((struct ieee80211_hdr *)skb->data)->frame_control, skb->len); skb->len); __ieee80211_rx_handle_packet(hw, skb, napi); __ieee80211_rx_handle_packet(hw, pubsta, skb, napi); rcu_read_unlock(); rcu_read_unlock(); Loading