aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorbrking@us.ibm.com <brking@us.ibm.com>2005-05-02 20:50:47 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2005-05-20 13:53:48 -0400
commit5cbf5eaef7e4430f60844748fd33e22a5fb15167 (patch)
treeb19ccfeff04a36519871fde63c41803d78be6b37 /drivers/scsi
parent380c3877ae5de888cfb7a59990b9aee5a415295f (diff)
[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')
-rw-r--r--drivers/scsi/ipr.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 4ba9e886346d..a3d9cf675681 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -5886,6 +5886,7 @@ static void __ipr_remove(struct pci_dev *pdev)
5886 5886
5887 spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); 5887 spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags);
5888 wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload); 5888 wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload);
5889 flush_scheduled_work();
5889 spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); 5890 spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags);
5890 5891
5891 spin_lock(&ipr_driver_lock); 5892 spin_lock(&ipr_driver_lock);
@@ -5916,8 +5917,6 @@ static void ipr_remove(struct pci_dev *pdev)
5916 5917
5917 ENTER; 5918 ENTER;
5918 5919
5919 ioa_cfg->allow_cmds = 0;
5920 flush_scheduled_work();
5921 ipr_remove_trace_file(&ioa_cfg->host->shost_classdev.kobj, 5920 ipr_remove_trace_file(&ioa_cfg->host->shost_classdev.kobj,
5922 &ipr_trace_attr); 5921 &ipr_trace_attr);
5923 ipr_remove_dump_file(&ioa_cfg->host->shost_classdev.kobj, 5922 ipr_remove_dump_file(&ioa_cfg->host->shost_classdev.kobj,