* pull request: iwlwifi 2014-02-27
@ 2014-02-27 6:53 Emmanuel Grumbach
2014-02-27 7:01 ` Emmanuel Grumbach
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Emmanuel Grumbach @ 2014-02-27 6:53 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ilw
[-- Attachment #1: Type: text/plain, Size: 1146 bytes --]
Hi John,
I have two fixes for 3.14.
Johannes fixes a long standing bug in the AMPDU status reporting.
Max fixes the listen time which was way too long and causes trouble to several APs.
Please pull - thanks
emmanuel
The following changes since commit ec6f678c74dbdb06a6a775bbb00f1d26c17c404b:
iwlwifi: dvm: clear IWL_STA_UCODE_INPROGRESS when assoc fails (2014-02-20 19:16:27 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git master
for you to fetch changes up to d8105a24fce48b7b016e868923000871f4196e63:
iwlwifi: mvm: fix TX status for aggregated packets (2014-02-27 08:50:32 +0200)
----------------------------------------------------------------
Johannes Berg (1):
iwlwifi: mvm: fix TX status for aggregated packets
Max Stepanov (1):
iwlmvm: change of listen interval from 70 to 10
drivers/net/wireless/iwlwifi/dvm/tx.c | 14 +++++++++-----
drivers/net/wireless/iwlwifi/mvm/mvm.h | 2 +-
drivers/net/wireless/iwlwifi/mvm/tx.c | 18 +++++++++---------
3 files changed, 19 insertions(+), 15 deletions(-)
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: pull request: iwlwifi 2014-02-27 2014-02-27 6:53 pull request: iwlwifi 2014-02-27 Emmanuel Grumbach @ 2014-02-27 7:01 ` Emmanuel Grumbach 2014-02-27 8:30 ` Emmanuel Grumbach 2014-02-27 7:03 ` [PATCH 1/2] iwlwifi: mvm: change of listen interval from 70 to 10 Emmanuel Grumbach ` (2 subsequent siblings) 3 siblings, 1 reply; 6+ messages in thread From: Emmanuel Grumbach @ 2014-02-27 7:01 UTC (permalink / raw) To: linville; +Cc: linux-wireless [-- Attachment #1: Type: text/plain, Size: 830 bytes --] On 02/27/2014 08:53 AM, Emmanuel Grumbach wrote: > Hi John, > > I have two fixes for 3.14. > Johannes fixes a long standing bug in the AMPDU status reporting. > Max fixes the listen time which was way too long and causes trouble to several APs. > > Please pull - thanks > > emmanuel > > The following changes since commit ec6f678c74dbdb06a6a775bbb00f1d26c17c404b: > > iwlwifi: dvm: clear IWL_STA_UCODE_INPROGRESS when assoc fails (2014-02-20 19:16:27 +0200) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git master > > for you to fetch changes up to d8105a24fce48b7b016e868923000871f4196e63: > Made a minor change in the commit message of one of the patches - new HEAD:082e29cb547474aa19c028d75d81bc5d873774f4. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 901 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: pull request: iwlwifi 2014-02-27 2014-02-27 7:01 ` Emmanuel Grumbach @ 2014-02-27 8:30 ` Emmanuel Grumbach 0 siblings, 0 replies; 6+ messages in thread From: Emmanuel Grumbach @ 2014-02-27 8:30 UTC (permalink / raw) To: linville; +Cc: linux-wireless [-- Attachment #1: Type: text/plain, Size: 981 bytes --] On 02/27/2014 09:01 AM, Emmanuel Grumbach wrote: > > > On 02/27/2014 08:53 AM, Emmanuel Grumbach wrote: >> Hi John, >> >> I have two fixes for 3.14. >> Johannes fixes a long standing bug in the AMPDU status reporting. >> Max fixes the listen time which was way too long and causes trouble to several APs. >> >> Please pull - thanks >> >> emmanuel >> >> The following changes since commit ec6f678c74dbdb06a6a775bbb00f1d26c17c404b: >> >> iwlwifi: dvm: clear IWL_STA_UCODE_INPROGRESS when assoc fails (2014-02-20 19:16:27 +0200) >> >> are available in the git repository at: >> >> git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git master >> >> for you to fetch changes up to d8105a24fce48b7b016e868923000871f4196e63: >> > > Made a minor change in the commit message of one of the patches - new HEAD:082e29cb547474aa19c028d75d81bc5d873774f4. > > yet another one - new HEAD: 143582c6847cb285b361804c613127c25de60ca4 [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 901 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] iwlwifi: mvm: change of listen interval from 70 to 10 2014-02-27 6:53 pull request: iwlwifi 2014-02-27 Emmanuel Grumbach 2014-02-27 7:01 ` Emmanuel Grumbach @ 2014-02-27 7:03 ` Emmanuel Grumbach 2014-02-27 7:03 ` [PATCH 2/2] iwlwifi: mvm: fix TX status for aggregated packets Emmanuel Grumbach 2014-02-28 18:42 ` pull request: iwlwifi 2014-02-27 John W. Linville 3 siblings, 0 replies; 6+ messages in thread From: Emmanuel Grumbach @ 2014-02-27 7:03 UTC (permalink / raw) To: linux-wireless; +Cc: Max Stepanov, stable, Emmanuel Grumbach From: Max Stepanov <Max.Stepanov@intel.com> Some APs reject STA association request if a listen interval value exceeds a threshold of 10. Thus, for example, Cisco APs may deny STA associations returning status code 12 (Association denied due to reason outside the scope of 802.11 standard) in the association response frame. Fixing the issue by setting the default IWL_CONN_MAX_LISTEN_INTERVAL value from 70 to 10. Cc: <stable@vger.kernel.org> [3.10+] Signed-off-by: Max Stepanov <Max.Stepanov@intel.com> Reviewed-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> --- drivers/net/wireless/iwlwifi/mvm/mvm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h index e4ead86..2b0ba1f 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h @@ -152,7 +152,7 @@ enum iwl_power_scheme { IWL_POWER_SCHEME_LP }; -#define IWL_CONN_MAX_LISTEN_INTERVAL 70 +#define IWL_CONN_MAX_LISTEN_INTERVAL 10 #define IWL_UAPSD_AC_INFO (IEEE80211_WMM_IE_STA_QOSINFO_AC_VO |\ IEEE80211_WMM_IE_STA_QOSINFO_AC_VI |\ IEEE80211_WMM_IE_STA_QOSINFO_AC_BK |\ -- 1.8.3.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] iwlwifi: mvm: fix TX status for aggregated packets 2014-02-27 6:53 pull request: iwlwifi 2014-02-27 Emmanuel Grumbach 2014-02-27 7:01 ` Emmanuel Grumbach 2014-02-27 7:03 ` [PATCH 1/2] iwlwifi: mvm: change of listen interval from 70 to 10 Emmanuel Grumbach @ 2014-02-27 7:03 ` Emmanuel Grumbach 2014-02-28 18:42 ` pull request: iwlwifi 2014-02-27 John W. Linville 3 siblings, 0 replies; 6+ messages in thread From: Emmanuel Grumbach @ 2014-02-27 7:03 UTC (permalink / raw) To: linux-wireless; +Cc: Johannes Berg, stable, Emmanuel Grumbach From: Johannes Berg <johannes.berg@intel.com> Only the first packet is currently handled correctly, but then all others are assumed to have failed which is problematic. Fix this, marking them all successful instead (since if they're not then the firmware will have transmitted them as single frames.) This fixes the lost packet reporting. Also do a tiny variable scoping cleanup. Cc: <stable@vger.kernel.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com> [Add the dvm part] Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> --- drivers/net/wireless/iwlwifi/dvm/tx.c | 14 +++++++++----- drivers/net/wireless/iwlwifi/mvm/tx.c | 18 +++++++++--------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/drivers/net/wireless/iwlwifi/dvm/tx.c b/drivers/net/wireless/iwlwifi/dvm/tx.c index a6839df..398dd096 100644 --- a/drivers/net/wireless/iwlwifi/dvm/tx.c +++ b/drivers/net/wireless/iwlwifi/dvm/tx.c @@ -1291,8 +1291,6 @@ int iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv, struct iwl_compressed_ba_resp *ba_resp = (void *)pkt->data; struct iwl_ht_agg *agg; struct sk_buff_head reclaimed_skbs; - struct ieee80211_tx_info *info; - struct ieee80211_hdr *hdr; struct sk_buff *skb; int sta_id; int tid; @@ -1379,22 +1377,28 @@ int iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv, freed = 0; skb_queue_walk(&reclaimed_skbs, skb) { - hdr = (struct ieee80211_hdr *)skb->data; + struct ieee80211_hdr *hdr = (void *)skb->data; + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); if (ieee80211_is_data_qos(hdr->frame_control)) freed++; else WARN_ON_ONCE(1); - info = IEEE80211_SKB_CB(skb); iwl_trans_free_tx_cmd(priv->trans, info->driver_data[1]); + memset(&info->status, 0, sizeof(info->status)); + /* Packet was transmitted successfully, failures come as single + * frames because before failing a frame the firmware transmits + * it without aggregation at least once. + */ + info->flags |= IEEE80211_TX_STAT_ACK; + if (freed == 1) { /* this is the first skb we deliver in this batch */ /* put the rate scaling data there */ info = IEEE80211_SKB_CB(skb); memset(&info->status, 0, sizeof(info->status)); - info->flags |= IEEE80211_TX_STAT_ACK; info->flags |= IEEE80211_TX_STAT_AMPDU; info->status.ampdu_ack_len = ba_resp->txed_2_done; info->status.ampdu_len = ba_resp->txed; diff --git a/drivers/net/wireless/iwlwifi/mvm/tx.c b/drivers/net/wireless/iwlwifi/mvm/tx.c index 4df12fa..76ee486 100644 --- a/drivers/net/wireless/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/iwlwifi/mvm/tx.c @@ -822,16 +822,12 @@ int iwl_mvm_rx_ba_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb, struct iwl_mvm_ba_notif *ba_notif = (void *)pkt->data; struct sk_buff_head reclaimed_skbs; struct iwl_mvm_tid_data *tid_data; - struct ieee80211_tx_info *info; struct ieee80211_sta *sta; struct iwl_mvm_sta *mvmsta; - struct ieee80211_hdr *hdr; struct sk_buff *skb; int sta_id, tid, freed; - /* "flow" corresponds to Tx queue */ u16 scd_flow = le16_to_cpu(ba_notif->scd_flow); - /* "ssn" is start of block-ack Tx window, corresponds to index * (in Tx queue's circular buffer) of first TFD/frame in window */ u16 ba_resp_scd_ssn = le16_to_cpu(ba_notif->scd_ssn); @@ -888,22 +884,26 @@ int iwl_mvm_rx_ba_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb, freed = 0; skb_queue_walk(&reclaimed_skbs, skb) { - hdr = (struct ieee80211_hdr *)skb->data; + struct ieee80211_hdr *hdr = (void *)skb->data; + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); if (ieee80211_is_data_qos(hdr->frame_control)) freed++; else WARN_ON_ONCE(1); - info = IEEE80211_SKB_CB(skb); iwl_trans_free_tx_cmd(mvm->trans, info->driver_data[1]); + memset(&info->status, 0, sizeof(info->status)); + /* Packet was transmitted successfully, failures come as single + * frames because before failing a frame the firmware transmits + * it without aggregation at least once. + */ + info->flags |= IEEE80211_TX_STAT_ACK; + if (freed == 1) { /* this is the first skb we deliver in this batch */ /* put the rate scaling data there */ - info = IEEE80211_SKB_CB(skb); - memset(&info->status, 0, sizeof(info->status)); - info->flags |= IEEE80211_TX_STAT_ACK; info->flags |= IEEE80211_TX_STAT_AMPDU; info->status.ampdu_ack_len = ba_notif->txed_2_done; info->status.ampdu_len = ba_notif->txed; -- 1.8.3.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: pull request: iwlwifi 2014-02-27 2014-02-27 6:53 pull request: iwlwifi 2014-02-27 Emmanuel Grumbach ` (2 preceding siblings ...) 2014-02-27 7:03 ` [PATCH 2/2] iwlwifi: mvm: fix TX status for aggregated packets Emmanuel Grumbach @ 2014-02-28 18:42 ` John W. Linville 3 siblings, 0 replies; 6+ messages in thread From: John W. Linville @ 2014-02-28 18:42 UTC (permalink / raw) To: Emmanuel Grumbach; +Cc: linux-wireless, ilw On Thu, Feb 27, 2014 at 08:53:30AM +0200, Emmanuel Grumbach wrote: > Hi John, > > I have two fixes for 3.14. > Johannes fixes a long standing bug in the AMPDU status reporting. > Max fixes the listen time which was way too long and causes trouble to several APs. > > Please pull - thanks > > emmanuel > > The following changes since commit ec6f678c74dbdb06a6a775bbb00f1d26c17c404b: > > iwlwifi: dvm: clear IWL_STA_UCODE_INPROGRESS when assoc fails (2014-02-20 19:16:27 +0200) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git master > > for you to fetch changes up to d8105a24fce48b7b016e868923000871f4196e63: > > iwlwifi: mvm: fix TX status for aggregated packets (2014-02-27 08:50:32 +0200) Pulling now... -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-02-28 18:45 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-02-27 6:53 pull request: iwlwifi 2014-02-27 Emmanuel Grumbach 2014-02-27 7:01 ` Emmanuel Grumbach 2014-02-27 8:30 ` Emmanuel Grumbach 2014-02-27 7:03 ` [PATCH 1/2] iwlwifi: mvm: change of listen interval from 70 to 10 Emmanuel Grumbach 2014-02-27 7:03 ` [PATCH 2/2] iwlwifi: mvm: fix TX status for aggregated packets Emmanuel Grumbach 2014-02-28 18:42 ` pull request: iwlwifi 2014-02-27 John W. Linville
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).