diff options
author | Eliad Peller | 2013-12-09 13:15:02 +0200 |
---|---|---|
committer | Emmanuel Grumbach | 2013-12-17 19:39:50 +0200 |
commit | 8c678ed4665d9c6452279b770eb43feed32ca3e8 (patch) | |
tree | 08ba60aeec22e60c159773763f2b9b84b142caf6 /drivers/net/wireless/iwlwifi/mvm | |
parent | 03b67e982c1738625e23fee2cc602b84ed67e222 (diff) |
iwlwifi: mvm: check iwl_nvm_init return value
iwl_nvm_init() return value wasn't checked in some
path, which resulted in the following panic (if
there was some issue with the nvm):
Unable to handle kernel NULL pointer dereference at virtual address 00000004
pgd = d0460000
[00000004] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT SMP
Modules linked in: iwlmvm(+) iwlwifi mac80211 cfg80211 compat [last unloaded: compat]
PC is at iwl_mvm_mac_setup_register+0x12c/0x460 [iwlmvm]
LR is at 0x2710
pc : [<bf50dd4c>] lr : [<00002710>] psr: 20800013
sp : d00cfe18 ip : 0000081e fp : d006b908
r10: d0711408 r9 : bf532e64 r8 : d006b5bc
r7 : d01af000 r6 : bf39cefc r5 : d006ab00 r4 : d006b5a4
r3 : 00000001 r2 : 00000000 r1 : d006a120 r0 : d006b860
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/ops.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c b/drivers/net/wireless/iwlwifi/mvm/ops.c index ef3fdcf48831..a362430477a0 100644 --- a/drivers/net/wireless/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/iwlwifi/mvm/ops.c @@ -427,7 +427,9 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, * there is no need to unnecessarily power up the NIC at driver load */ if (iwlwifi_mod_params.nvm_file) { - iwl_nvm_init(mvm); + err = iwl_nvm_init(mvm); + if (err) + goto out_free; } else { err = iwl_trans_start_hw(mvm->trans); if (err) |