46 lines
1.7 KiB
Diff
46 lines
1.7 KiB
Diff
|
From d6ee27eb13beab94056e0de52d81220058ca2297 Mon Sep 17 00:00:00 2001
|
||
|
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||
|
Date: Wed, 6 Jun 2012 09:13:36 +0200
|
||
|
Subject: [PATCH] iwlwifi: don't mess up the SCD when removing a key
|
||
|
|
||
|
When we remove a key, we put a key index which was supposed
|
||
|
to tell the fw that we are actually removing the key. But
|
||
|
instead the fw took that index as a valid index and messed
|
||
|
up the SRAM of the device.
|
||
|
|
||
|
This memory corruption on the device mangled the data of
|
||
|
the SCD. The impact on the user is that SCD queue 2 got
|
||
|
stuck after having removed keys.
|
||
|
The message is the log that was printed is:
|
||
|
|
||
|
Queue 2 stuck for 10000ms
|
||
|
|
||
|
This doesn't seem to fix the higher queues that get stuck
|
||
|
from time to time.
|
||
|
|
||
|
Cc: stable@vger.kernel.org [2.6.27+]
|
||
|
Reviewed-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
|
||
|
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||
|
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||
|
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||
|
---
|
||
|
drivers/net/wireless/iwlwifi/iwl-agn-sta.c | 2 +-
|
||
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||
|
index aea07aa..eb6a8ea 100644
|
||
|
--- a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||
|
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||
|
@@ -1267,7 +1267,7 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
|
||
|
key_flags |= STA_KEY_MULTICAST_MSK;
|
||
|
|
||
|
sta_cmd.key.key_flags = key_flags;
|
||
|
- sta_cmd.key.key_offset = WEP_INVALID_OFFSET;
|
||
|
+ sta_cmd.key.key_offset = keyconf->hw_key_idx;
|
||
|
sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK;
|
||
|
sta_cmd.mode = STA_CONTROL_MODIFY_MSK;
|
||
|
|
||
|
--
|
||
|
1.7.6.5
|
||
|
|