diff options
author | Brian King <brking@linux.vnet.ibm.com> | 2009-10-19 16:07:48 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-04 13:00:19 -0500 |
commit | 7043110550f19c1556ad18dc4d63b1c9eaf9e4fd (patch) | |
tree | 62de06f36959a80c9943d10c10e9e59ce42a7bf8 /drivers/scsi/ibmvscsi/ibmvfc.c | |
parent | 230934a6fe2f44d14ef840639f010c9cf4da098f (diff) |
[SCSI] ibmvfc: Fix locking in ibmvfc_remove
Need to grab the host lock around the call to ibmvfc_link_down.
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/ibmvscsi/ibmvfc.c')
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvfc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index c35d8054dbbb..d37230faf086 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c | |||
@@ -4420,7 +4420,11 @@ static int ibmvfc_remove(struct vio_dev *vdev) | |||
4420 | 4420 | ||
4421 | ENTER; | 4421 | ENTER; |
4422 | ibmvfc_remove_trace_file(&vhost->host->shost_dev.kobj, &ibmvfc_trace_attr); | 4422 | ibmvfc_remove_trace_file(&vhost->host->shost_dev.kobj, &ibmvfc_trace_attr); |
4423 | |||
4424 | spin_lock_irqsave(vhost->host->host_lock, flags); | ||
4423 | ibmvfc_link_down(vhost, IBMVFC_HOST_OFFLINE); | 4425 | ibmvfc_link_down(vhost, IBMVFC_HOST_OFFLINE); |
4426 | spin_unlock_irqrestore(vhost->host->host_lock, flags); | ||
4427 | |||
4424 | ibmvfc_wait_while_resetting(vhost); | 4428 | ibmvfc_wait_while_resetting(vhost); |
4425 | ibmvfc_release_crq_queue(vhost); | 4429 | ibmvfc_release_crq_queue(vhost); |
4426 | kthread_stop(vhost->work_thread); | 4430 | kthread_stop(vhost->work_thread); |