mirror of
https://github.com/torvalds/linux.git
synced 2024-11-19 02:21:47 +00:00
[SCSI] megaraid_sas: check return value for megasas_get_pd_list()
When megasas_get_pd_list() fails we cannot detect any drives, so we should be checking the return value accordingly. [jejb: checkpatch fix] Signed-off-by: Hannes Reinecke <hare@suse.de> Acked-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
2f8bdfa84a
commit
58968fc8fb
@ -3763,7 +3763,10 @@ static int megasas_init_fw(struct megasas_instance *instance)
|
||||
|
||||
memset(instance->pd_list, 0 ,
|
||||
(MEGASAS_MAX_PD * sizeof(struct megasas_pd_list)));
|
||||
megasas_get_pd_list(instance);
|
||||
if (megasas_get_pd_list(instance) < 0) {
|
||||
printk(KERN_ERR "megasas: failed to get PD list\n");
|
||||
goto fail_init_adapter;
|
||||
}
|
||||
|
||||
memset(instance->ld_ids, 0xff, MEGASAS_MAX_LD_IDS);
|
||||
if (megasas_ld_list_query(instance,
|
||||
@ -5592,22 +5595,23 @@ megasas_aen_polling(struct work_struct *work)
|
||||
|
||||
if (doscan) {
|
||||
printk(KERN_INFO "scanning ...\n");
|
||||
megasas_get_pd_list(instance);
|
||||
for (i = 0; i < MEGASAS_MAX_PD_CHANNELS; i++) {
|
||||
for (j = 0; j < MEGASAS_MAX_DEV_PER_CHANNEL; j++) {
|
||||
pd_index = i*MEGASAS_MAX_DEV_PER_CHANNEL + j;
|
||||
sdev1 = scsi_device_lookup(host, i, j, 0);
|
||||
if (instance->pd_list[pd_index].driveState ==
|
||||
MR_PD_STATE_SYSTEM) {
|
||||
if (!sdev1) {
|
||||
scsi_add_device(host, i, j, 0);
|
||||
}
|
||||
if (sdev1)
|
||||
scsi_device_put(sdev1);
|
||||
} else {
|
||||
if (sdev1) {
|
||||
scsi_remove_device(sdev1);
|
||||
scsi_device_put(sdev1);
|
||||
if (megasas_get_pd_list(instance) == 0) {
|
||||
for (i = 0; i < MEGASAS_MAX_PD_CHANNELS; i++) {
|
||||
for (j = 0; j < MEGASAS_MAX_DEV_PER_CHANNEL; j++) {
|
||||
pd_index = i*MEGASAS_MAX_DEV_PER_CHANNEL + j;
|
||||
sdev1 = scsi_device_lookup(host, i, j, 0);
|
||||
if (instance->pd_list[pd_index].driveState ==
|
||||
MR_PD_STATE_SYSTEM) {
|
||||
if (!sdev1) {
|
||||
scsi_add_device(host, i, j, 0);
|
||||
}
|
||||
if (sdev1)
|
||||
scsi_device_put(sdev1);
|
||||
} else {
|
||||
if (sdev1) {
|
||||
scsi_remove_device(sdev1);
|
||||
scsi_device_put(sdev1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user