Skip to content

Commit d13333e

Browse files
SaraSharon1gregkh
authored andcommitted
mac80211: pass block ack session timeout to to driver
commit 50ea05efaf3bed7dd34bcc2635a8b3f53bd0ccc1 upstream. Currently mac80211 does not inform the driver of the session block ack timeout when starting a rx aggregation session. Drivers that manage the reorder buffer need to know this parameter. Seeing that there are now too many arguments for the drv_ampdu_action() function, wrap them inside a structure. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 0fe94dd commit d13333e

27 files changed

Lines changed: 202 additions & 139 deletions

File tree

drivers/net/wireless/ath/ath10k/mac.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6351,12 +6351,13 @@ static u64 ath10k_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
63516351

63526352
static int ath10k_ampdu_action(struct ieee80211_hw *hw,
63536353
struct ieee80211_vif *vif,
6354-
enum ieee80211_ampdu_mlme_action action,
6355-
struct ieee80211_sta *sta, u16 tid, u16 *ssn,
6356-
u8 buf_size, bool amsdu)
6354+
struct ieee80211_ampdu_params *params)
63576355
{
63586356
struct ath10k *ar = hw->priv;
63596357
struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif);
6358+
struct ieee80211_sta *sta = params->sta;
6359+
enum ieee80211_ampdu_mlme_action action = params->action;
6360+
u16 tid = params->tid;
63606361

63616362
ath10k_dbg(ar, ATH10K_DBG_MAC, "mac ampdu vdev_id %i sta %pM tid %hu action %d\n",
63626363
arvif->vdev_id, sta->addr, tid, action);

drivers/net/wireless/ath/ath9k/htc_drv_main.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1657,13 +1657,14 @@ static void ath9k_htc_reset_tsf(struct ieee80211_hw *hw,
16571657

16581658
static int ath9k_htc_ampdu_action(struct ieee80211_hw *hw,
16591659
struct ieee80211_vif *vif,
1660-
enum ieee80211_ampdu_mlme_action action,
1661-
struct ieee80211_sta *sta,
1662-
u16 tid, u16 *ssn, u8 buf_size, bool amsdu)
1660+
struct ieee80211_ampdu_params *params)
16631661
{
16641662
struct ath9k_htc_priv *priv = hw->priv;
16651663
struct ath9k_htc_sta *ista;
16661664
int ret = 0;
1665+
struct ieee80211_sta *sta = params->sta;
1666+
enum ieee80211_ampdu_mlme_action action = params->action;
1667+
u16 tid = params->tid;
16671668

16681669
mutex_lock(&priv->mutex);
16691670
ath9k_htc_ps_wakeup(priv);

drivers/net/wireless/ath/ath9k/main.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1855,14 +1855,16 @@ static void ath9k_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
18551855

18561856
static int ath9k_ampdu_action(struct ieee80211_hw *hw,
18571857
struct ieee80211_vif *vif,
1858-
enum ieee80211_ampdu_mlme_action action,
1859-
struct ieee80211_sta *sta,
1860-
u16 tid, u16 *ssn, u8 buf_size, bool amsdu)
1858+
struct ieee80211_ampdu_params *params)
18611859
{
18621860
struct ath_softc *sc = hw->priv;
18631861
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
18641862
bool flush = false;
18651863
int ret = 0;
1864+
struct ieee80211_sta *sta = params->sta;
1865+
enum ieee80211_ampdu_mlme_action action = params->action;
1866+
u16 tid = params->tid;
1867+
u16 *ssn = &params->ssn;
18661868

18671869
mutex_lock(&sc->mutex);
18681870

drivers/net/wireless/ath/carl9170/main.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1413,10 +1413,12 @@ static void carl9170_ampdu_work(struct work_struct *work)
14131413

14141414
static int carl9170_op_ampdu_action(struct ieee80211_hw *hw,
14151415
struct ieee80211_vif *vif,
1416-
enum ieee80211_ampdu_mlme_action action,
1417-
struct ieee80211_sta *sta,
1418-
u16 tid, u16 *ssn, u8 buf_size, bool amsdu)
1416+
struct ieee80211_ampdu_params *params)
14191417
{
1418+
struct ieee80211_sta *sta = params->sta;
1419+
enum ieee80211_ampdu_mlme_action action = params->action;
1420+
u16 tid = params->tid;
1421+
u16 *ssn = &params->ssn;
14201422
struct ar9170 *ar = hw->priv;
14211423
struct carl9170_sta_info *sta_info = (void *) sta->drv_priv;
14221424
struct carl9170_sta_tid *tid_info;

drivers/net/wireless/ath/wcn36xx/main.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -857,12 +857,14 @@ static int wcn36xx_resume(struct ieee80211_hw *hw)
857857

858858
static int wcn36xx_ampdu_action(struct ieee80211_hw *hw,
859859
struct ieee80211_vif *vif,
860-
enum ieee80211_ampdu_mlme_action action,
861-
struct ieee80211_sta *sta, u16 tid, u16 *ssn,
862-
u8 buf_size, bool amsdu)
860+
struct ieee80211_ampdu_params *params)
863861
{
864862
struct wcn36xx *wcn = hw->priv;
865863
struct wcn36xx_sta *sta_priv = NULL;
864+
struct ieee80211_sta *sta = params->sta;
865+
enum ieee80211_ampdu_mlme_action action = params->action;
866+
u16 tid = params->tid;
867+
u16 *ssn = &params->ssn;
866868

867869
wcn36xx_dbg(WCN36XX_DBG_MAC, "mac ampdu action action %d tid %d\n",
868870
action, tid);

drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -818,13 +818,15 @@ brcms_ops_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
818818
static int
819819
brcms_ops_ampdu_action(struct ieee80211_hw *hw,
820820
struct ieee80211_vif *vif,
821-
enum ieee80211_ampdu_mlme_action action,
822-
struct ieee80211_sta *sta, u16 tid, u16 *ssn,
823-
u8 buf_size, bool amsdu)
821+
struct ieee80211_ampdu_params *params)
824822
{
825823
struct brcms_info *wl = hw->priv;
826824
struct scb *scb = &wl->wlc->pri_scb;
827825
int status;
826+
struct ieee80211_sta *sta = params->sta;
827+
enum ieee80211_ampdu_mlme_action action = params->action;
828+
u16 tid = params->tid;
829+
u8 buf_size = params->buf_size;
828830

829831
if (WARN_ON(scb->magic != SCB_MAGIC))
830832
return -EIDRM;

drivers/net/wireless/cw1200/sta.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2135,9 +2135,7 @@ void cw1200_mcast_timeout(unsigned long arg)
21352135

21362136
int cw1200_ampdu_action(struct ieee80211_hw *hw,
21372137
struct ieee80211_vif *vif,
2138-
enum ieee80211_ampdu_mlme_action action,
2139-
struct ieee80211_sta *sta, u16 tid, u16 *ssn,
2140-
u8 buf_size, bool amsdu)
2138+
struct ieee80211_ampdu_params *params)
21412139
{
21422140
/* Aggregation is implemented fully in firmware,
21432141
* including block ack negotiation. Do not allow

drivers/net/wireless/cw1200/sta.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,7 @@ void cw1200_bss_info_changed(struct ieee80211_hw *dev,
109109
u32 changed);
110110
int cw1200_ampdu_action(struct ieee80211_hw *hw,
111111
struct ieee80211_vif *vif,
112-
enum ieee80211_ampdu_mlme_action action,
113-
struct ieee80211_sta *sta, u16 tid, u16 *ssn,
114-
u8 buf_size, bool amsdu);
112+
struct ieee80211_ampdu_params *params);
115113

116114
void cw1200_suspend_resume(struct cw1200_common *priv,
117115
struct wsm_suspend_resume *arg);

drivers/net/wireless/iwlegacy/4965-mac.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5982,12 +5982,14 @@ il4965_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
59825982

59835983
int
59845984
il4965_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5985-
enum ieee80211_ampdu_mlme_action action,
5986-
struct ieee80211_sta *sta, u16 tid, u16 * ssn,
5987-
u8 buf_size, bool amsdu)
5985+
struct ieee80211_ampdu_params *params)
59885986
{
59895987
struct il_priv *il = hw->priv;
59905988
int ret = -EINVAL;
5989+
struct ieee80211_sta *sta = params->sta;
5990+
enum ieee80211_ampdu_mlme_action action = params->action;
5991+
u16 tid = params->tid;
5992+
u16 *ssn = &params->ssn;
59915993

59925994
D_HT("A-MPDU action on addr %pM tid %d\n", sta->addr, tid);
59935995

drivers/net/wireless/iwlegacy/4965.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,7 @@ void il4965_mac_update_tkip_key(struct ieee80211_hw *hw,
182182
struct ieee80211_sta *sta, u32 iv32,
183183
u16 *phase1key);
184184
int il4965_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
185-
enum ieee80211_ampdu_mlme_action action,
186-
struct ieee80211_sta *sta, u16 tid, u16 * ssn,
187-
u8 buf_size, bool amsdu);
185+
struct ieee80211_ampdu_params *params);
188186
int il4965_mac_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
189187
struct ieee80211_sta *sta);
190188
void

0 commit comments

Comments
 (0)