iwlwifi: fix possible read attempt on ucode that is not available
This fixes a NULL pointer dereference that can occur when the ucode is not loaded at the time __iwl_up is called. The problem was reported at http://kerneloops.org/raw.php?rawid=2765&msgid= Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
1e34a11d55
commit
a781cf94e6
2 changed files with 10 additions and 0 deletions
|
@ -6342,6 +6342,11 @@ static int __iwl_up(struct iwl_priv *priv)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!priv->ucode_data_backup.v_addr || !priv->ucode_data.v_addr) {
|
||||||
|
IWL_ERROR("ucode not available for device bringup\n");
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
|
||||||
iwl_write32(priv, CSR_INT, 0xFFFFFFFF);
|
iwl_write32(priv, CSR_INT, 0xFFFFFFFF);
|
||||||
|
|
||||||
rc = iwl_hw_nic_init(priv);
|
rc = iwl_hw_nic_init(priv);
|
||||||
|
|
|
@ -6698,6 +6698,11 @@ static int __iwl_up(struct iwl_priv *priv)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!priv->ucode_data_backup.v_addr || !priv->ucode_data.v_addr) {
|
||||||
|
IWL_ERROR("ucode not available for device bringup\n");
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
|
||||||
iwl_write32(priv, CSR_INT, 0xFFFFFFFF);
|
iwl_write32(priv, CSR_INT, 0xFFFFFFFF);
|
||||||
|
|
||||||
rc = iwl_hw_nic_init(priv);
|
rc = iwl_hw_nic_init(priv);
|
||||||
|
|
Loading…
Add table
Reference in a new issue