diff options
Diffstat (limited to 'drivers/scsi/megaraid')
-rw-r--r-- | drivers/scsi/megaraid/megaraid_sas_fusion.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index 52f6a158477a..ec2e097f7737 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c | |||
@@ -101,6 +101,10 @@ extern u32 megasas_dbg_lvl; | |||
101 | void | 101 | void |
102 | megasas_enable_intr_fusion(struct megasas_register_set __iomem *regs) | 102 | megasas_enable_intr_fusion(struct megasas_register_set __iomem *regs) |
103 | { | 103 | { |
104 | /* For Thunderbolt/Invader also clear intr on enable */ | ||
105 | writel(~0, ®s->outbound_intr_status); | ||
106 | readl(®s->outbound_intr_status); | ||
107 | |||
104 | writel(~MFI_FUSION_ENABLE_INTERRUPT_MASK, &(regs)->outbound_intr_mask); | 108 | writel(~MFI_FUSION_ENABLE_INTERRUPT_MASK, &(regs)->outbound_intr_mask); |
105 | 109 | ||
106 | /* Dummy readl to force pci flush */ | 110 | /* Dummy readl to force pci flush */ |
@@ -1806,10 +1810,13 @@ irqreturn_t megasas_isr_fusion(int irq, void *devp) | |||
1806 | } | 1810 | } |
1807 | 1811 | ||
1808 | /* If we are resetting, bail */ | 1812 | /* If we are resetting, bail */ |
1809 | if (test_bit(MEGASAS_FUSION_IN_RESET, &instance->reset_flags)) | 1813 | if (test_bit(MEGASAS_FUSION_IN_RESET, &instance->reset_flags)) { |
1814 | instance->instancet->clear_intr(instance->reg_set); | ||
1810 | return IRQ_HANDLED; | 1815 | return IRQ_HANDLED; |
1816 | } | ||
1811 | 1817 | ||
1812 | if (!complete_cmd_fusion(instance)) { | 1818 | if (!complete_cmd_fusion(instance)) { |
1819 | instance->instancet->clear_intr(instance->reg_set); | ||
1813 | /* If we didn't complete any commands, check for FW fault */ | 1820 | /* If we didn't complete any commands, check for FW fault */ |
1814 | fw_state = instance->instancet->read_fw_status_reg( | 1821 | fw_state = instance->instancet->read_fw_status_reg( |
1815 | instance->reg_set) & MFI_STATE_MASK; | 1822 | instance->reg_set) & MFI_STATE_MASK; |