This appears to have been fixed upstream by:

commit 964d2777438bf7687324243d38ade538d9bbfe3c
Author: John W. Linville <linvi...@tuxdriver.com>
Date:   Thu Oct 30 14:12:21 2008 -0400

    iwlagn: avoid sleep in softirq context

Adjusted for the lenny kernel, the fix would be:

--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -6791,7 +6791,11 @@ static void iwl4965_mac_update_tkip_key(struct 
ieee80211_hw *hw,
                return;
        }
 
-       iwl4965_scan_cancel_timeout(priv, 100);
+       if (iwl4965_scan_cancel(priv)) {
+               /* cancel scan failed, just live w/ bad key and rely
+                  briefly on SW decryption */
+               return;
+       }
 
        key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK);
        key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
--- END ---

Ben.

-- 
Ben Hutchings
Logic doesn't apply to the real world. - Marvin Minsky

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to