aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpt2sas_scsih.c
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2009-08-07 10:03:17 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-08-13 17:25:31 -0400
commit15052c9e85bf0cdadcb69eb89623bf12bad8b4f8 (patch)
tree439a830a40807909ccddc5ed764eb31c70c28ac2 /drivers/scsi/mpt2sas/mpt2sas_scsih.c
parent3493e84de60590d3012139187f631f2dfbf0887f (diff)
[SCSI] mpt2sas: Introduced check for enclosure_handle to avoid crash
Kernel panic is seen because of enclosure_handle received from FW is zero. Check is introduced before calling mpt2sas_config_get_enclosure_pg0. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_scsih.c')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
index 2a01a5f2a84d..b1326bf78c9a 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -3663,12 +3663,11 @@ _scsih_add_device(struct MPT2SAS_ADAPTER *ioc, u16 handle, u8 phy_num, u8 is_pd)
3663 sas_device->hidden_raid_component = is_pd; 3663 sas_device->hidden_raid_component = is_pd;
3664 3664
3665 /* get enclosure_logical_id */ 3665 /* get enclosure_logical_id */
3666 if (!(mpt2sas_config_get_enclosure_pg0(ioc, &mpi_reply, &enclosure_pg0, 3666 if (sas_device->enclosure_handle && !(mpt2sas_config_get_enclosure_pg0(
3667 MPI2_SAS_ENCLOS_PGAD_FORM_HANDLE, 3667 ioc, &mpi_reply, &enclosure_pg0, MPI2_SAS_ENCLOS_PGAD_FORM_HANDLE,
3668 sas_device->enclosure_handle))) { 3668 sas_device->enclosure_handle)))
3669 sas_device->enclosure_logical_id = 3669 sas_device->enclosure_logical_id =
3670 le64_to_cpu(enclosure_pg0.EnclosureLogicalID); 3670 le64_to_cpu(enclosure_pg0.EnclosureLogicalID);
3671 }
3672 3671
3673 /* get device name */ 3672 /* get device name */
3674 sas_device->device_name = le64_to_cpu(sas_device_pg0.DeviceName); 3673 sas_device->device_name = le64_to_cpu(sas_device_pg0.DeviceName);