iwlwifi: use request_module instead of _nowait
Since request_module_nowait() can't be backported use request_module() instead -- we don't need the asynchronous behaviour of request_module_nowait() here since we're running in the firmware request work struct. Tested-by: Donald H Fry <donald.h.fry@intel.com> Reviewed-by: Donald H Fry <donald.h.fry@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
3c70d08795
commit
d4b1048322
1 changed files with 10 additions and 1 deletions
|
@ -778,6 +778,7 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context)
|
||||||
const unsigned int api_min = drv->cfg->ucode_api_min;
|
const unsigned int api_min = drv->cfg->ucode_api_min;
|
||||||
u32 api_ver;
|
u32 api_ver;
|
||||||
int i;
|
int i;
|
||||||
|
bool load_module = false;
|
||||||
|
|
||||||
fw->ucode_capa.max_probe_length = 200;
|
fw->ucode_capa.max_probe_length = 200;
|
||||||
fw->ucode_capa.standard_phy_calibration_size =
|
fw->ucode_capa.standard_phy_calibration_size =
|
||||||
|
@ -913,7 +914,7 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context)
|
||||||
if (!drv->op_mode)
|
if (!drv->op_mode)
|
||||||
goto out_unbind;
|
goto out_unbind;
|
||||||
} else {
|
} else {
|
||||||
request_module_nowait("%s", op->name);
|
load_module = true;
|
||||||
}
|
}
|
||||||
mutex_unlock(&iwlwifi_opmode_table_mtx);
|
mutex_unlock(&iwlwifi_opmode_table_mtx);
|
||||||
|
|
||||||
|
@ -923,6 +924,14 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context)
|
||||||
* are doing the start() above.
|
* are doing the start() above.
|
||||||
*/
|
*/
|
||||||
complete(&drv->request_firmware_complete);
|
complete(&drv->request_firmware_complete);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Load the module last so we don't block anything
|
||||||
|
* else from proceeding if the module fails to load
|
||||||
|
* or hangs loading.
|
||||||
|
*/
|
||||||
|
if (load_module)
|
||||||
|
request_module("%s", op->name);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
try_again:
|
try_again:
|
||||||
|
|
Loading…
Add table
Reference in a new issue