John, This patch did not make it to Linus's repo. Could you please consider it for 2.6.31? We would like to have this patch in 2.6.31 because it fixes a regression that is tracked in http://bugzilla.kernel.org/show_bug.cgi?id=13742 Thank you Reinette On Fri, 2009-07-17 at 09:30 -0700, Chatre, Reinette wrote: > From: Reinette Chatre <reinette.chatre@xxxxxxxxx> > > Do all key clearing except sending sommands to device when rfkill > enabled. When rfkill enabled the interface is brought down and will > be brought back up correctly after rfkill is enabled again. > > Same change is not needed for iwl3945 as it ignores return code when > sending key clearing command to device. > > This fixes http://bugzilla.kernel.org/show_bug.cgi?id=13742 > > Signed-off-by: Reinette Chatre <reinette.chatre@xxxxxxxxx> > Tested-by: Frans Pop <elendil@xxxxxxxxx> > --- > drivers/net/wireless/iwlwifi/iwl-sta.c | 12 ++++++++++++ > 1 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c > index 2addf73..ffd5c61 100644 > --- a/drivers/net/wireless/iwlwifi/iwl-sta.c > +++ b/drivers/net/wireless/iwlwifi/iwl-sta.c > @@ -566,6 +566,8 @@ int iwl_remove_default_wep_key(struct iwl_priv *priv, > unsigned long flags; > > spin_lock_irqsave(&priv->sta_lock, flags); > + IWL_DEBUG_WEP(priv, "Removing default WEP key: idx=%d\n", > + keyconf->keyidx); > > if (!test_and_clear_bit(keyconf->keyidx, &priv->ucode_key_table)) > IWL_ERR(priv, "index %d not used in uCode key table.\n", > @@ -573,6 +575,11 @@ int iwl_remove_default_wep_key(struct iwl_priv *priv, > > priv->default_wep_key--; > memset(&priv->wep_keys[keyconf->keyidx], 0, sizeof(priv->wep_keys[0])); > + if (iwl_is_rfkill(priv)) { > + IWL_DEBUG_WEP(priv, "Not sending REPLY_WEPKEY command due to RFKILL.\n"); > + spin_unlock_irqrestore(&priv->sta_lock, flags); > + return 0; > + } > ret = iwl_send_static_wepkey_cmd(priv, 1); > IWL_DEBUG_WEP(priv, "Remove default WEP key: idx=%d ret=%d\n", > keyconf->keyidx, ret); > @@ -853,6 +860,11 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv, > priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; > priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; > > + if (iwl_is_rfkill(priv)) { > + IWL_DEBUG_WEP(priv, "Not sending REPLY_ADD_STA command because RFKILL enabled. \n"); > + spin_unlock_irqrestore(&priv->sta_lock, flags); > + return 0; > + } > ret = iwl_send_add_sta(priv, &priv->stations[sta_id].sta, CMD_ASYNC); > spin_unlock_irqrestore(&priv->sta_lock, flags); > return ret; -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html