iwmc3200wifi: cache keys when interface is down
When the interface is down and one sets a WEP key from userspace, we should be able to simply cache it. Since that implies setting part of the profile's security settings, we now alloc/free the umac_profile at probe/remove time, and no longer at interface bring up/down time. Simply resetting it during the latter is enough. Signed-off-by: Samuel Ortiz <samuel.ortiz@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
191506ecbc
commit
3549716484
@@ -643,19 +643,10 @@ int __iwm_up(struct iwm_priv *iwm)
|
||||
}
|
||||
}
|
||||
|
||||
iwm->umac_profile = kmalloc(sizeof(struct iwm_umac_profile),
|
||||
GFP_KERNEL);
|
||||
if (!iwm->umac_profile) {
|
||||
IWM_ERR(iwm, "Couldn't alloc memory for profile\n");
|
||||
goto err_fw;
|
||||
}
|
||||
|
||||
iwm_init_default_profile(iwm, iwm->umac_profile);
|
||||
|
||||
ret = iwm_channels_init(iwm);
|
||||
if (ret < 0) {
|
||||
IWM_ERR(iwm, "Couldn't init channels\n");
|
||||
goto err_profile;
|
||||
goto err_fw;
|
||||
}
|
||||
|
||||
/* Set the READY bit to indicate interface is brought up successfully */
|
||||
@@ -663,10 +654,6 @@ int __iwm_up(struct iwm_priv *iwm)
|
||||
|
||||
return 0;
|
||||
|
||||
err_profile:
|
||||
kfree(iwm->umac_profile);
|
||||
iwm->umac_profile = NULL;
|
||||
|
||||
err_fw:
|
||||
iwm_eeprom_exit(iwm);
|
||||
|
||||
@@ -705,10 +692,9 @@ int __iwm_down(struct iwm_priv *iwm)
|
||||
clear_bit(IWM_STATUS_READY, &iwm->status);
|
||||
|
||||
iwm_eeprom_exit(iwm);
|
||||
kfree(iwm->umac_profile);
|
||||
iwm->umac_profile = NULL;
|
||||
iwm_bss_list_clean(iwm);
|
||||
|
||||
iwm_init_default_profile(iwm, iwm->umac_profile);
|
||||
iwm->umac_profile_active = false;
|
||||
iwm->default_key = -1;
|
||||
iwm->core_enabled = 0;
|
||||
|
||||
|
Reference in New Issue
Block a user