diff options
author | Dan Williams <dan.j.williams@intel.com> | 2012-03-02 05:06:24 +0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2012-05-17 23:27:12 +0400 |
commit | 2396a2650a5a39634e3ad6b29e1104944e5ab88f (patch) | |
tree | a5f1e724f1a3eec60da92aef018c6c7840f95bcc /drivers/scsi/isci/host.h | |
parent | 50a92d93148ec073efd2456b007e04ecae452086 (diff) | |
download | linux-2396a2650a5a39634e3ad6b29e1104944e5ab88f.tar.xz |
isci: fix interrupt disable
There is a (dubious?) lost irq workaround in sci_controller_isr() that
effectively nullifies attempts to disable interrupts. Until the
workaround can be re-evaluated add some infrastructure to prevent the
interrupt handler from inadvertantly re-enabling interrupts.
The failure mode was interrupts continuing to run after the driver had
been removed and its iomappings torn down.
Reported-by: Jacek Danecki <jacek.danecki@intel.com>
Tested-by: Jacek Danecki <jacek.danecki@intel.com>
[richard: clear remaining interrupts at the end of reset]
Acked-by: Richard Boyd <richard.g.boyd@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/host.h')
-rw-r--r-- | drivers/scsi/isci/host.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/isci/host.h b/drivers/scsi/isci/host.h index 9dc910b9d921..9701c1d673ba 100644 --- a/drivers/scsi/isci/host.h +++ b/drivers/scsi/isci/host.h @@ -200,6 +200,7 @@ struct isci_host { struct pci_dev *pdev; #define IHOST_START_PENDING 0 #define IHOST_STOP_PENDING 1 + #define IHOST_IRQ_ENABLED 2 unsigned long flags; wait_queue_head_t eventq; struct Scsi_Host *shost; |