aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristof Schmitt <christof.schmitt@de.ibm.com>2010-08-30 04:55:09 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-09-09 16:36:44 -0400
commit91978465b1e5f89025cd43cd2102943160ec6dee (patch)
tree18408d5465c98abb29924b9dfbfa86a5b9f96b7e
parent634651fab36dc8d7c3b1a1aa14f9ec1e29de9f0f (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>
-rw-r--r--drivers/s390/scsi/zfcp_aux.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index 96fa1f53639..68df57157d4 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
84out_unit: 85out_unit:
85 put_device(&port->dev); 86 put_device(&port->dev);