]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Jun 2014 20:35:46 +0000 (13:35 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Jun 2014 20:35:46 +0000 (13:35 -0700)
added patches:
iwlwifi-mvm-delay-enabling-smart-fifo-until-after-beacon-rx.patch

queue-3.14/iwlwifi-mvm-delay-enabling-smart-fifo-until-after-beacon-rx.patch [new file with mode: 0644]
queue-3.14/series

diff --git a/queue-3.14/iwlwifi-mvm-delay-enabling-smart-fifo-until-after-beacon-rx.patch b/queue-3.14/iwlwifi-mvm-delay-enabling-smart-fifo-until-after-beacon-rx.patch
new file mode 100644 (file)
index 0000000..c19adbc
--- /dev/null
@@ -0,0 +1,51 @@
+From 0229cdafb6f67064a217591d48b0f6abf14e8385 Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Wed, 19 Mar 2014 18:36:39 +0100
+Subject: iwlwifi: mvm: delay enabling smart FIFO until after beacon RX
+
+From: Johannes Berg <johannes.berg@intel.com>
+
+commit 0229cdafb6f67064a217591d48b0f6abf14e8385 upstream.
+
+If we have no beacon data before association, delay smart FIFO
+enablement until after we have this data.
+
+Not doing so can cause association failures in extremely silent
+environments (usually only a shielded box/room) as beacon RX is
+not sent to the host immediately, and then the association time
+event ends without the host receiving any beacon even though it
+was on the air - it's just stuck on the FIFO.
+
+Fixes: 1f3b0ff8ecce ("iwlwifi: mvm: Add Smart FIFO support")
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+
+---
+ drivers/net/wireless/iwlwifi/mvm/mac80211.c |    1 +
+ drivers/net/wireless/iwlwifi/mvm/sf.c       |    3 ++-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
++++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+@@ -971,6 +971,7 @@ static void iwl_mvm_bss_info_changed_sta
+                */
+               iwl_mvm_remove_time_event(mvm, mvmvif,
+                                         &mvmvif->time_event_data);
++              iwl_mvm_sf_update(mvm, vif, false);
+       } else if (changes & (BSS_CHANGED_PS | BSS_CHANGED_P2P_PS |
+                             BSS_CHANGED_QOS)) {
+               ret = iwl_mvm_power_update_mode(mvm, vif);
+--- a/drivers/net/wireless/iwlwifi/mvm/sf.c
++++ b/drivers/net/wireless/iwlwifi/mvm/sf.c
+@@ -274,7 +274,8 @@ int iwl_mvm_sf_update(struct iwl_mvm *mv
+                               return -EINVAL;
+                       if (changed_vif->type != NL80211_IFTYPE_STATION) {
+                               new_state = SF_UNINIT;
+-                      } else if (changed_vif->bss_conf.assoc) {
++                      } else if (changed_vif->bss_conf.assoc &&
++                                 changed_vif->bss_conf.dtim_period) {
+                               mvmvif = iwl_mvm_vif_from_mac80211(changed_vif);
+                               sta_id = mvmvif->ap_sta_id;
+                               new_state = SF_FULL_ON;
index 337f8d3ac6f8801f7bd87fd85de3a55e837d4f9f..b897068f1929e89d7d77191448ee50b8057ac68f 100644 (file)
@@ -39,3 +39,4 @@ drivers-rtc-rtc-hym8563.c-set-uie_unsupported.patch
 x86-mm-hugetlb-add-missing-tlb-page-invalidation-for-hugetlb_cow.patch
 arm64-fix-pud_huge-for-2-level-pagetables.patch
 hwpoison-hugetlb-lock_page-unlock_page-does-not-match-for-handling-a-free-hugepage.patch
+iwlwifi-mvm-delay-enabling-smart-fifo-until-after-beacon-rx.patch