提交 d4b10483 编写于 作者: J Johannes Berg

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: NDonald H Fry <donald.h.fry@intel.com>
Reviewed-by: NDonald H Fry <donald.h.fry@intel.com>
Reviewed-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
上级 3c70d087
...@@ -778,6 +778,7 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context) ...@@ -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) ...@@ -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) ...@@ -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:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册