[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#653445: [3.1.1 -> 3.1.5 regression] iwlagn.ko fails to connect to 802.11n access point



tags 653445 + patch moreinfo
quit

Hi Sven,

S. G. wrote:

> since upgrading the kernel from 3.1.1 to 3.1.5 wireless-n connection
> establishment is not completed in a way that results in a usable connection.

Yep, sorry about that.  Please test 3.2-rc7 from experimental, or the
following patch if you prefer[1].

Thanks,
Jonathan

[1] see http://kernel-handbook.alioth.debian.org/ch-common-tasks.html
for instructions on building from source with patches.

commit 02e82f9b799b
Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Date:   Wed Dec 14 08:22:36 2011 -0800

    iwlwifi: allow to switch to HT40 if not associated
    
    commit 78feb35b8161acd95c33a703ed6ab6f554d29387 upstream.
    
    My previous patch
    34a5b4b6af104cf18eb50748509528b9bdbc4036 iwlwifi: do not re-configure
    HT40 after associated
    
    Fix the case of HT40 after association on specified AP, but it break the
    association for some APs and cause not able to establish connection.
    We need to address HT40 before and after addociation.
    
    CC: stable@vger.kernel.org #3.0+
    Reported-by: Andrej Gelenberg <andrej.gelenberg@udo.edu>
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Tested-by: Andrej Gelenberg <andrej.gelenberg@udo.edu>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
index eabbf1a128ea..5493f94d23cc 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
@@ -620,8 +620,8 @@ int iwlagn_mac_config(struct ieee80211_hw *hw, u32 changed)
 			if (ctx->ht.enabled) {
 				/* if HT40 is used, it should not change
 				 * after associated except channel switch */
-				if (iwl_is_associated_ctx(ctx) &&
-				     !ctx->ht.is_40mhz)
+				if (!ctx->ht.is_40mhz ||
+						!iwl_is_associated_ctx(ctx))
 					iwlagn_config_ht40(conf, ctx);
 			} else
 				ctx->ht.is_40mhz = false;



Reply to: