megaraid_sas: disable interrupt_mask before enabling hardware interrupts
authorSumit.Saxena@avagotech.com <Sumit.Saxena@avagotech.com>
Mon, 5 Jan 2015 14:36:13 +0000 (20:06 +0530)
committerChristoph Hellwig <hch@lst.de>
Fri, 9 Jan 2015 14:44:35 +0000 (15:44 +0100)
Update driver "mask_interrupts" before enable/disable hardware interrupt
in order to avoid missing interrupts because of "mask_interrupts" still
set to 1 and hardware interrupts are enabled.

Cc: <stable@vger.kernel.org>
Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com>
Signed-off-by: Chaitra Basappa <chaitra.basappa@avagotech.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/megaraid/megaraid_sas_fusion.c

index 7b23d34..075c99e 100644 (file)
@@ -102,6 +102,8 @@ megasas_enable_intr_fusion(struct megasas_instance *instance)
 {
        struct megasas_register_set __iomem *regs;
        regs = instance->reg_set;
+
+       instance->mask_interrupts = 0;
        /* For Thunderbolt/Invader also clear intr on enable */
        writel(~0, &regs->outbound_intr_status);
        readl(&regs->outbound_intr_status);
@@ -110,7 +112,6 @@ megasas_enable_intr_fusion(struct megasas_instance *instance)
 
        /* Dummy readl to force pci flush */
        readl(&regs->outbound_intr_mask);
-       instance->mask_interrupts = 0;
 }
 
 /**