diff options
author | brking@us.ibm.com <brking@us.ibm.com> | 2005-05-02 19:50:47 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-05-20 12:53:48 -0500 |
commit | 5cbf5eaef7e4430f60844748fd33e22a5fb15167 (patch) | |
tree | b19ccfeff04a36519871fde63c41803d78be6b37 /drivers/scsi/ipr.c | |
parent | 380c3877ae5de888cfb7a59990b9aee5a415295f (diff) | |
download | kernel_samsung_smdk4412-5cbf5eaef7e4430f60844748fd33e22a5fb15167.zip kernel_samsung_smdk4412-5cbf5eaef7e4430f60844748fd33e22a5fb15167.tar.gz kernel_samsung_smdk4412-5cbf5eaef7e4430f60844748fd33e22a5fb15167.tar.bz2 |
[SCSI] ipr: Fix ipr PCI hotplug hang with CDROM attach
Currently, during PCI hotplug remove, if the upper layer
drivers of the attached devices send commands down as part
of the remove action, like a CDROM, the hotplug action
will hang forever due to the ipr driver returning
SCSI_MLQUEUE_HOST_BUSY. Patch fixes this.
Signed-off-by: Brian King <brking@us.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/ipr.c')
-rw-r--r-- | drivers/scsi/ipr.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index 4ba9e88..a3d9cf6 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c @@ -5886,6 +5886,7 @@ static void __ipr_remove(struct pci_dev *pdev) spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload); + flush_scheduled_work(); spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); spin_lock(&ipr_driver_lock); @@ -5916,8 +5917,6 @@ static void ipr_remove(struct pci_dev *pdev) ENTER; - ioa_cfg->allow_cmds = 0; - flush_scheduled_work(); ipr_remove_trace_file(&ioa_cfg->host->shost_classdev.kobj, &ipr_trace_attr); ipr_remove_dump_file(&ioa_cfg->host->shost_classdev.kobj, |