hosts.c fixes for "no error" reported after error scenarios
PATCH 1/1 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
-- james s
Signed-off-by James Smart <[email protected]>
---
hosts.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-)
drivers/scsi/hosts.c +11 -5
@@ -218,18 +218,24 @@ int scsi_add_host(struct Scsi_Host *shosget_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);