From: Johannes Berg Date: Wed, 13 Jun 2012 07:01:22 +0000 (+0200) Subject: Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=627ae3ddd6f929b4496502318a8896729fc37839;p=~shefty%2Frdma-dev.git Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next --- 627ae3ddd6f929b4496502318a8896729fc37839 diff --cc drivers/net/wireless/iwlwifi/iwl-drv.c index 67c9668d2e3,49df0e9d5c5..80898bb808b --- a/drivers/net/wireless/iwlwifi/iwl-drv.c +++ b/drivers/net/wireless/iwlwifi/iwl-drv.c @@@ -899,9 -897,7 +899,8 @@@ static void iwl_ucode_callback(const st /* We have our copies now, allow OS release its copies */ release_firmware(ucode_raw); - complete(&drv->request_firmware_complete); + mutex_lock(&iwlwifi_opmode_table_mtx); op = &iwlwifi_opmode_table[DVM_OP_MODE]; /* add this device to the list of devices using this op_mode */ @@@ -913,8 -912,13 +915,14 @@@ } else { request_module_nowait("%s", op->name); } + mutex_unlock(&iwlwifi_opmode_table_mtx); + /* + * Complete the firmware request last so that + * a driver unbind (stop) doesn't run while we + * are doing the start() above. + */ + complete(&drv->request_firmware_complete); return; try_again: