Commit a97a83a0 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by

[SCSI] fix uninitialized variable error

in __scsi_add_device, sdev may be uninitialised if
scsi_host_scan_allowed() returns false.  Fix by initialising at the
top of the routine.  Also rely on the fact that
scsi_probe_and_add_lun() only actually fills in the sdev pointer if
the SCSI_SCAN_LUN_PRESENT case (so no need to check the return value).
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 1acc0b0b
...@@ -1243,9 +1243,8 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags, ...@@ -1243,9 +1243,8 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel, struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel,
uint id, uint lun, void *hostdata) uint id, uint lun, void *hostdata)
{ {
struct scsi_device *sdev; struct scsi_device *sdev = ERR_PTR(-ENODEV);
struct device *parent = &shost->shost_gendev; struct device *parent = &shost->shost_gendev;
int res;
struct scsi_target *starget; struct scsi_target *starget;
starget = scsi_alloc_target(parent, channel, id); starget = scsi_alloc_target(parent, channel, id);
...@@ -1254,12 +1253,8 @@ struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel, ...@@ -1254,12 +1253,8 @@ struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel,
get_device(&starget->dev); get_device(&starget->dev);
mutex_lock(&shost->scan_mutex); mutex_lock(&shost->scan_mutex);
if (scsi_host_scan_allowed(shost)) { if (scsi_host_scan_allowed(shost))
res = scsi_probe_and_add_lun(starget, lun, NULL, &sdev, 1, scsi_probe_and_add_lun(starget, lun, NULL, &sdev, 1, hostdata);
hostdata);
if (res != SCSI_SCAN_LUN_PRESENT)
sdev = ERR_PTR(-ENODEV);
}
mutex_unlock(&shost->scan_mutex); mutex_unlock(&shost->scan_mutex);
scsi_target_reap(starget); scsi_target_reap(starget);
put_device(&starget->dev); put_device(&starget->dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment