mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 08:34:20 +08:00
[SCSI] hosts.c: fixes for "no error" reported after error scenarios
This patch corrects some cases in scsi_add_host() that fail, but the "error" return code was not reset after a prior use which set it to a non-error value. Patch cut against scsi-rc-fixes-2.6 Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
0feed274d2
commit
77cca462c6
@ -218,18 +218,24 @@ int scsi_add_host(struct Scsi_Host *shost, struct device *dev)
|
||||
|
||||
get_device(&shost->shost_gendev);
|
||||
|
||||
if (shost->transportt->host_size &&
|
||||
(shost->shost_data = kzalloc(shost->transportt->host_size,
|
||||
GFP_KERNEL)) == NULL)
|
||||
goto out_del_classdev;
|
||||
if (shost->transportt->host_size) {
|
||||
shost->shost_data = kzalloc(shost->transportt->host_size,
|
||||
GFP_KERNEL);
|
||||
if (shost->shost_data == NULL) {
|
||||
error = -ENOMEM;
|
||||
goto out_del_classdev;
|
||||
}
|
||||
}
|
||||
|
||||
if (shost->transportt->create_work_queue) {
|
||||
snprintf(shost->work_q_name, KOBJ_NAME_LEN, "scsi_wq_%d",
|
||||
shost->host_no);
|
||||
shost->work_q = create_singlethread_workqueue(
|
||||
shost->work_q_name);
|
||||
if (!shost->work_q)
|
||||
if (!shost->work_q) {
|
||||
error = -EINVAL;
|
||||
goto out_free_shost_data;
|
||||
}
|
||||
}
|
||||
|
||||
error = scsi_sysfs_add_host(shost);
|
||||
|
Loading…
Reference in New Issue
Block a user