diff options
author | Christof Schmitt <christof.schmitt@de.ibm.com> | 2010-08-30 04:55:09 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-09-09 16:36:44 -0400 |
commit | 91978465b1e5f89025cd43cd2102943160ec6dee (patch) | |
tree | 18408d5465c98abb29924b9dfbfa86a5b9f96b7e /drivers/s390/scsi | |
parent | 634651fab36dc8d7c3b1a1aa14f9ec1e29de9f0f (diff) |
[SCSI] zfcp: Reorder registration of initial SCSI device
Make sure that the rport registration did complete and then register
SCSI device directly. Otherwise the unit_enqueue would race with the
call to zfcp_scsi_queue_unit_register.
Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r-- | drivers/s390/scsi/zfcp_aux.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c index 96fa1f536394..68df57157d48 100644 --- a/drivers/s390/scsi/zfcp_aux.c +++ b/drivers/s390/scsi/zfcp_aux.c | |||
@@ -73,13 +73,14 @@ static void __init zfcp_init_device_configure(char *busid, u64 wwpn, u64 lun) | |||
73 | if (!port) | 73 | if (!port) |
74 | goto out_port; | 74 | goto out_port; |
75 | 75 | ||
76 | flush_work(&port->rport_work); | ||
76 | unit = zfcp_unit_enqueue(port, lun); | 77 | unit = zfcp_unit_enqueue(port, lun); |
77 | if (IS_ERR(unit)) | 78 | if (IS_ERR(unit)) |
78 | goto out_unit; | 79 | goto out_unit; |
79 | 80 | ||
80 | zfcp_erp_unit_reopen(unit, 0, "auidc_1", NULL); | 81 | zfcp_erp_unit_reopen(unit, 0, "auidc_1", NULL); |
81 | zfcp_erp_wait(adapter); | 82 | zfcp_erp_wait(adapter); |
82 | flush_work(&unit->scsi_work); | 83 | zfcp_scsi_scan(unit); |
83 | 84 | ||
84 | out_unit: | 85 | out_unit: |
85 | put_device(&port->dev); | 86 | put_device(&port->dev); |