From: brking@us.ibm.com Date: Tue, 3 May 2005 00:50:47 +0000 (-0500) Subject: [SCSI] ipr: Fix ipr PCI hotplug hang with CDROM attach X-Git-Tag: v2.6.13-rc1~90^2~583^2~62^2^2~27^2~20 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5cbf5eaef7e4430f60844748fd33e22a5fb15167;p=linux-2.6 [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 Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index 4ba9e88634..a3d9cf6756 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,