diff options
Diffstat (limited to 'drivers/scsi/ibmvscsi/ibmvstgt.c')
| -rw-r--r-- | drivers/scsi/ibmvscsi/ibmvstgt.c | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvstgt.c b/drivers/scsi/ibmvscsi/ibmvstgt.c index 2a5b29d1217..e2dd6a45924 100644 --- a/drivers/scsi/ibmvscsi/ibmvstgt.c +++ b/drivers/scsi/ibmvscsi/ibmvstgt.c @@ -864,21 +864,23 @@ static int ibmvstgt_probe(struct vio_dev *dev, const struct vio_device_id *id)  	INIT_WORK(&vport->crq_work, handle_crq); -	err = crq_queue_create(&vport->crq_queue, target); +	err = scsi_add_host(shost, target->dev);  	if (err)  		goto free_srp_target; -	err = scsi_add_host(shost, target->dev); +	err = scsi_tgt_alloc_queue(shost);  	if (err) -		goto destroy_queue; +		goto remove_host; -	err = scsi_tgt_alloc_queue(shost); +	err = crq_queue_create(&vport->crq_queue, target);  	if (err) -		goto destroy_queue; +		goto free_queue;  	return 0; -destroy_queue: -	crq_queue_destroy(target); +free_queue: +	scsi_tgt_free_queue(shost); +remove_host: +	scsi_remove_host(shost);  free_srp_target:  	srp_target_free(target);  put_host:  |