From 02d534bd4820a5541e91e6ef190d75bba15007e4 Mon Sep 17 00:00:00 2001 From: "John W. Linville" Date: Tue, 13 Jul 2010 15:31:51 -0400 Subject: [PATCH] --- yaml --- r: 203563 b: refs/heads/master c: 815868e7b5c207ba42d5b317ccc51f8112732268 h: refs/heads/master i: 203561: 91c6bcde619be6beaea22dcc2ecdf48e3580745c 203559: 68830d8f0c360b00a4f5e558d075c32e7137d5f9 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/ath/ath9k/hif_usb.c | 8 ++++++-- trunk/drivers/net/wireless/iwlwifi/iwl-sta.h | 11 +++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 4bfcb3a75860..fdd17c12d753 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 084cb0fe773dc3dbe2bb08039dbd0e9e93d103ce +refs/heads/master: 815868e7b5c207ba42d5b317ccc51f8112732268 diff --git a/trunk/drivers/net/wireless/ath/ath9k/hif_usb.c b/trunk/drivers/net/wireless/ath/ath9k/hif_usb.c index ad9134bddd1e..61c1bee3f26a 100644 --- a/trunk/drivers/net/wireless/ath/ath9k/hif_usb.c +++ b/trunk/drivers/net/wireless/ath/ath9k/hif_usb.c @@ -745,13 +745,17 @@ static int ath9k_hif_usb_alloc_urbs(struct hif_device_usb *hif_dev) /* RX */ if (ath9k_hif_usb_alloc_rx_urbs(hif_dev) < 0) - goto err; + goto err_rx; /* Register Read */ if (ath9k_hif_usb_alloc_reg_in_urb(hif_dev) < 0) - goto err; + goto err_reg; return 0; +err_reg: + ath9k_hif_usb_dealloc_rx_urbs(hif_dev); +err_rx: + ath9k_hif_usb_dealloc_tx_urbs(hif_dev); err: return -ENOMEM; } diff --git a/trunk/drivers/net/wireless/iwlwifi/iwl-sta.h b/trunk/drivers/net/wireless/iwlwifi/iwl-sta.h index ba95b1a590a5..d38a350ba0bd 100644 --- a/trunk/drivers/net/wireless/iwlwifi/iwl-sta.h +++ b/trunk/drivers/net/wireless/iwlwifi/iwl-sta.h @@ -98,6 +98,17 @@ static inline void iwl_clear_driver_stations(struct iwl_priv *priv) spin_lock_irqsave(&priv->sta_lock, flags); memset(priv->stations, 0, sizeof(priv->stations)); priv->num_stations = 0; + + /* + * Remove all key information that is not stored as part of station + * information since mac80211 may not have had a + * chance to remove all the keys. When device is reconfigured by + * mac80211 after an error all keys will be reconfigured. + */ + priv->ucode_key_table = 0; + priv->key_mapping_key = 0; + memset(priv->wep_keys, 0, sizeof(priv->wep_keys)); + spin_unlock_irqrestore(&priv->sta_lock, flags); }