Patch "mac80211: pass block ack session timeout to to driver" has been added to the 4.4-stable tree
Subsystems (13)
This is a note to let you know that I've just added the patch titled
mac80211: pass block ack session timeout to to driver
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mac80211-pass-block-ack-session-timeout-to-to-driver.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
50ea05efaf3bed7dd34bcc2635a8b3f53bd0ccc1Mon Sep 17 00:00:00 2001
From: Sara Sharon <[email protected]>
Date: Wed, 30 Dec 2015 16:06:04 +0200
Subject: mac80211: pass block ack session timeout to to driver
From: Sara Sharon <[email protected]>
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.
--- drivers/net/wireless/ath/ath10k/mac.c | 7 +- drivers/net/wireless/ath/ath9k/htc_drv_main.c | 7 +- drivers/net/wireless/ath/ath9k/main.c | 8 +- drivers/net/wireless/ath/carl9170/main.c | 8 +- drivers/net/wireless/ath/wcn36xx/main.c | 8 +- drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c | 8 +- drivers/net/wireless/cw1200/sta.c | 4 - drivers/net/wireless/cw1200/sta.h | 4 - drivers/net/wireless/iwlegacy/4965-mac.c | 8 +- drivers/net/wireless/iwlegacy/4965.h | 4 - drivers/net/wireless/iwlwifi/dvm/mac80211.c | 9 ++- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 9 ++- drivers/net/wireless/mac80211_hwsim.c | 8 +- drivers/net/wireless/mediatek/mt7601u/main.c | 8 +- drivers/net/wireless/mwl8k.c | 10 ++- drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 6 +- drivers/net/wireless/realtek/rtlwifi/core.c | 8 +- drivers/net/wireless/rsi/rsi_91x_mac80211.c | 19 ++---- drivers/net/wireless/rt2x00/rt2800lib.c | 7 +- drivers/net/wireless/rt2x00/rt2800lib.h | 4 - drivers/net/wireless/ti/wlcore/main.c | 8 +- include/net/mac80211.h | 44 ++++++++++---- net/mac80211/agg-rx.c | 25 +++++++- net/mac80211/agg-tx.c | 53 +++++++++++------- net/mac80211/driver-ops.c | 10 +-- net/mac80211/driver-ops.h | 4 - net/mac80211/trace.h | 43 +++++++------- 27 files changed, 202 insertions(+), 139 deletions(-)
drivers/net/wireless/ath/ath10k/mac.c +4 -3
@@ -6351,12 +6351,13 @@ static u64 ath10k_get_tsf(struct ieee802static int ath10k_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct ath10k *ar = hw->priv;struct ath10k_vif *arvif =ath10k_vif_to_arvif (vif); +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid;ath10k_dbg (ar,ATH10K_DBG_MAC ,"mac ampdu vdev_id %i sta %pM tid %hu action %d\n" , arvif->vdev_id, sta->addr, tid, action);
drivers/net/wireless/ath/ath9k/htc_drv_main.c +4 -3
@@ -1657,13 +1657,14 @@ static void ath9k_htc_reset_tsf(struct istatic int ath9k_htc_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta, -u16 tid,u16 *ssn,u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct ath9k_htc_priv *priv = hw->priv;struct ath9k_htc_sta *ista;int ret =0 ; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid;mutex_lock (&priv->mutex);ath9k_htc_ps_wakeup (priv);
drivers/net/wireless/ath/ath9k/main.c +5 -3
@@ -1855,14 +1855,16 @@ static void ath9k_reset_tsf(struct ieee8static int ath9k_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta, -u16 tid,u16 *ssn,u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct ath_softc *sc = hw->priv;struct ath_common *common =ath9k_hw_common (sc->sc_ah);bool flush = false;int ret =0 ; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn;mutex_lock (&sc->mutex);
drivers/net/wireless/ath/carl9170/main.c +5 -3
@@ -1413,10 +1413,12 @@ static void carl9170_ampdu_work(struct wstatic int carl9170_op_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta, -u16 tid,u16 *ssn,u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) { +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn;struct ar9170 *ar = hw->priv;struct carl9170_sta_info *sta_info = (void *) sta->drv_priv;struct carl9170_sta_tid *tid_info;
drivers/net/wireless/ath/wcn36xx/main.c +5 -3
@@ -857,12 +857,14 @@ static int wcn36xx_resume(struct ieee802static int wcn36xx_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct wcn36xx *wcn = hw->priv;struct wcn36xx_sta *sta_priv =NULL ; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn;wcn36xx_dbg (WCN36XX_DBG_MAC ,"mac ampdu action action %d tid %d\n" , action, tid);
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c +5 -3
@@ -818,13 +818,15 @@ brcms_ops_sta_add(struct ieee80211_hw *hstatic int brcms_ops_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct brcms_info *wl = hw->priv;struct scb *scb = &wl->wlc->pri_scb;int status; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u8 buf_size = params->buf_size;if (WARN_ON (scb->magic !=SCB_MAGIC ))return -EIDRM ;
drivers/net/wireless/cw1200/sta.c +1 -3
@@ -2135,9 +2135,7 @@ void cw1200_mcast_timeout(unsigned longint cw1200_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {/* Aggregation is implemented fully in firmware, * including block ack negotiation. Do not allow
drivers/net/wireless/cw1200/sta.h +1 -3
@@ -109,9 +109,7 @@ void cw1200_bss_info_changed(struct ieee u32 changed);int cw1200_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu); +struct ieee80211_ampdu_params *params);void cw1200_suspend_resume (struct cw1200_common *priv,struct wsm_suspend_resume *arg);
drivers/net/wireless/iwlegacy/4965-mac.c +5 -3
@@ -5982,12 +5982,14 @@ il4965_mac_set_key(struct ieee80211_hw *int il4965_mac_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 * ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct il_priv *il = hw->priv;int ret = -EINVAL ; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn;D_HT ("A-MPDU action on addr %pM tid %d\n" , sta->addr, tid);
drivers/net/wireless/iwlegacy/4965.h +1 -3
@@ -182,9 +182,7 @@ void il4965_mac_update_tkip_key(struct i struct ieee80211_sta *sta, u32 iv32, u16 *phase1key);int il4965_mac_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 * ssn, -u8 buf_size,bool amsdu); +struct ieee80211_ampdu_params *params);int il4965_mac_sta_add (struct ieee80211_hw *hw,struct ieee80211_vif *vif,struct ieee80211_sta *sta);void
drivers/net/wireless/iwlwifi/dvm/mac80211.c +6 -3
@@ -729,12 +729,15 @@ static inline bool iwl_enable_tx_ampdu(cstatic int iwlagn_mac_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct iwl_priv *priv =IWL_MAC80211_GET_DVM (hw);int ret = -EINVAL ; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn; +u8 buf_size = params->buf_size;struct iwl_station_priv *sta_priv = (void *) sta->drv_priv; IWL_DEBUG_HT(priv, "A-MPDU action on addr %pM tid %d\n",
drivers/net/wireless/iwlwifi/mvm/mac80211.c +6 -3
@@ -826,13 +826,16 @@ iwl_mvm_ampdu_check_trigger(struct iwl_mstatic int iwl_mvm_mac_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid, -u16 *ssn,u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct iwl_mvm *mvm =IWL_MAC80211_GET_MVM (hw);int ret;bool tx_agg_ref = false; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn; +u8 buf_size = params->buf_size;IWL_DEBUG_HT (mvm,"A-MPDU action on addr %pM tid %d: action %d\n" , sta->addr, tid, action);
drivers/net/wireless/mac80211_hwsim.c +5 -3
@@ -1817,10 +1817,12 @@ static int mac80211_hwsim_testmode_cmd(sstatic int mac80211_hwsim_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) { +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +switch (action) {case IEEE80211_AMPDU_TX_START :ieee80211_start_tx_ba_cb_irqsafe (vif, sta->addr, tid);
drivers/net/wireless/mediatek/mt7601u/main.c +5 -3
@@ -334,11 +334,13 @@ static int mt7601u_set_rts_threshold(strstatic int mt76_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn,u8 buf_size, -bool amsdu) +struct ieee80211_ampdu_params *params) {struct mt7601u_dev *dev = hw->priv; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn;struct mt76_sta *msta = (struct mt76_sta *) sta->drv_priv;WARN_ON (msta->wcid.idx >GROUP_WCID (0 ));
drivers/net/wireless/mwl8k.c +6 -4
@@ -5421,11 +5421,13 @@ static int mwl8k_get_survey(struct ieee8static int mwl8k_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) { - +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn; +u8 buf_size = params->buf_size;int i, rc =0 ;struct mwl8k_priv *priv = hw->priv;struct mwl8k_ampdu_stream *stream;
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c +3 -3
@@ -5375,13 +5375,13 @@ static int rtl8xxxu_set_key(struct ieee8static int rtl8xxxu_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn,u8 buf_size, -bool amsdu) +struct ieee80211_ampdu_params *params) {struct rtl8xxxu_priv *priv = hw->priv;struct device *dev = &priv->udev->dev;u8 ampdu_factor, ampdu_density; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action;switch (action) {case IEEE80211_AMPDU_TX_START :
drivers/net/wireless/realtek/rtlwifi/core.c +5 -3
@@ -1369,11 +1369,13 @@ static void rtl_op_sta_notify(struct ieestatic int rtl_op_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct rtl_priv *rtlpriv =rtl_priv (hw); +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn;switch (action) {case IEEE80211_AMPDU_TX_START :
drivers/net/wireless/rsi/rsi_91x_mac80211.c +7 -12
@@ -659,29 +659,24 @@ static int rsi_mac80211_set_key(struct i* informs the f/w regarding this. * @hw: Pointer to the ieee80211_hw structure. * @vif: Pointer to the ieee80211_vif structure. -* @action: ieee80211_ampdu_mlme_action enum. -* @sta: Pointer to the ieee80211_sta structure. -* @tid: Traffic identifier. -* @ssn: Pointer to ssn value. -* @buf_size: Buffer size (for kernel version > 2.6.38). -* @amsdu: is AMSDU in AMPDU allowed +* @params: Pointer to A-MPDU action parameters * * Return: status: 0 on success, negative error code on failure. */ static int rsi_mac80211_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta, -unsigned short tid, -unsigned short *ssn, -unsigned char buf_size, -bool amsdu) +struct ieee80211_ampdu_params *params) {int status = -EOPNOTSUPP ;struct rsi_hw *adapter = hw->priv;struct rsi_common *common = adapter->priv;u16 seq_no =0 ;u8 ii =0 ; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn; +u8 buf_size = params->buf_size;for (ii =0 ; ii <RSI_MAX_VIFS ; ii++) {if (vif == adapter->vifs[ii])
drivers/net/wireless/rt2x00/rt2800lib.c +4 -3
@@ -7935,10 +7935,11 @@ u64 rt2800_get_tsf(struct ieee80211_hw *EXPORT_SYMBOL_GPL (rt2800_get_tsf);int rt2800_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) { +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid;struct rt2x00_sta *sta_priv = (struct rt2x00_sta *)sta->drv_priv;int ret =0 ;
drivers/net/wireless/rt2x00/rt2800lib.h +1 -3
@@ -218,9 +218,7 @@ int rt2800_conf_tx(struct ieee80211_hw * const struct ieee80211_tx_queue_params *params);u64 rt2800_get_tsf (struct ieee80211_hw *hw,struct ieee80211_vif *vif);int rt2800_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu); +struct ieee80211_ampdu_params *params);int rt2800_get_survey (struct ieee80211_hw *hw,int idx,struct survey_info *survey);void rt2800_disable_wpdma (struct rt2x00_dev *rt2x00dev);
drivers/net/wireless/ti/wlcore/main.c +5 -3
@@ -5261,14 +5261,16 @@ out:static int wl1271_op_ampdu_action (struct ieee80211_hw *hw,struct ieee80211_vif *vif, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid,u16 *ssn, -u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {struct wl1271 *wl = hw->priv;struct wl12xx_vif *wlvif =wl12xx_vif_to_data (vif);int ret;u8 hlid, *ba_bitmap; +struct ieee80211_sta *sta = params->sta; +enum ieee80211_ampdu_mlme_action action = params->action; +u16 tid = params->tid; +u16 *ssn = ¶ms->ssn;wl1271_debug (DEBUG_MAC80211 ,"mac80211 ampdu action %d tid %d" , action, tid);
include/net/mac80211.h +30 -14
69 lines not on this page · raw message
net/mac80211/agg-rx.c +21 -4
@@ -7,6 +7,7 @@* Copyright 2006-2007 Jiri Benc <[email protected]> * Copyright 2007, Michael Wu <[email protected]> * Copyright 2007-2010, Intel Corporation +* Copyright(c) 2015 Intel Deutschland GmbH * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as
@@ -61,6 +62,14 @@ void ___ieee80211_stop_rx_ba_session(str {struct ieee80211_local *local = sta->local;struct tid_ampdu_rx *tid_rx; +struct ieee80211_ampdu_params params = { + .sta = &sta->sta, + .action =IEEE80211_AMPDU_RX_STOP , + .tid = tid, + .amsdu = false, + .timeout =0 , + .ssn =0 , + };lockdep_assert_held (&sta->ampdu_mlme.mtx);
@@ -78,8 +87,7 @@ void ___ieee80211_stop_rx_ba_session(str initiator ==WLAN_BACK_RECIPIENT ?"recipient" :"inititator" , (int)reason); -if (drv_ampdu_action (local, sta->sdata,IEEE80211_AMPDU_RX_STOP , - &sta->sta, tid,NULL ,0 , false)) +if (drv_ampdu_action (local, sta->sdata, ¶ms))sdata_info (sta->sdata,"HW problem - can not stop rx aggregation for %pM tid %d\n" , sta->sta.addr, tid);
@@ -237,6 +245,15 @@ void __ieee80211_start_rx_ba_session(str {struct ieee80211_local *local = sta->sdata->local;struct tid_ampdu_rx *tid_agg_rx; +struct ieee80211_ampdu_params params = { + .sta = &sta->sta, + .action =IEEE80211_AMPDU_RX_START , + .tid = tid, + .amsdu = false, + .timeout = timeout, + .ssn = start_seq_num, + }; +int i, ret = -EOPNOTSUPP ;u16 status =WLAN_STATUS_REQUEST_DECLINED ;
@@ -275,6 +292,7 @@ void __ieee80211_start_rx_ba_session(str/* make sure the size doesn't exceed the maximum supported by the hw */ if (buf_size > local->hw.max_rx_aggregation_subframes) buf_size = local->hw.max_rx_aggregation_subframes; + params.buf_size = buf_size;/* examine state machine */ mutex_lock (&sta->ampdu_mlme.mtx);
@@ -322,8 +340,7 @@ void __ieee80211_start_rx_ba_session(strfor (i =0 ; i < buf_size; i++)__skb_queue_head_init (&tid_agg_rx->reorder_buf[i]); - ret =drv_ampdu_action (local, sta->sdata,IEEE80211_AMPDU_RX_START , - &sta->sta, tid, &start_seq_num, buf_size, false); + ret =drv_ampdu_action (local, sta->sdata, ¶ms);ht_dbg (sta->sdata,"Rx A-MPDU request on %pM tid %d result %d\n" , sta->sta.addr, tid, ret);if (ret) {
net/mac80211/agg-tx.c +35 -18
117 lines not on this page · raw message
net/mac80211/driver-ops.c +3 -7
@@ -284,9 +284,7 @@ int drv_switch_vif_chanctx(struct ieee80int drv_ampdu_action (struct ieee80211_local *local,struct ieee80211_sub_if_data *sdata, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid, -u16 *ssn,u8 buf_size,bool amsdu) +struct ieee80211_ampdu_params *params) {int ret = -EOPNOTSUPP ;
@@ -296,12 +294,10 @@ int drv_ampdu_action(struct ieee80211_loif (!check_sdata_in_driver (sdata))return -EIO ; -trace_drv_ampdu_action (local, sdata, action, sta, tid, - ssn, buf_size, amsdu); +trace_drv_ampdu_action (local, sdata, params);if (local->ops->ampdu_action) - ret = local->ops->ampdu_action (&local->hw, &sdata->vif, action, - sta, tid, ssn, buf_size, amsdu); + ret = local->ops->ampdu_action (&local->hw, &sdata->vif, params);trace_drv_return_int (local, ret);
net/mac80211/driver-ops.h +1 -3
@@ -585,9 +585,7 @@ static inline int drv_tx_last_beacon(strint drv_ampdu_action (struct ieee80211_local *local,struct ieee80211_sub_if_data *sdata, -enum ieee80211_ampdu_mlme_action action, -struct ieee80211_sta *sta,u16 tid, -u16 *ssn,u8 buf_size,bool amsdu); +struct ieee80211_ampdu_params *params);static inline int drv_get_survey (struct ieee80211_local *local,int idx,struct survey_info *survey)
net/mac80211/trace.h +23 -20
68 lines not on this page · raw message
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/mac80211-pass-block-ack-session-timeout-to-to-driver.patch