diff options
author | Dave Carroll <david.carroll@microsemi.com> | 2017-02-09 13:04:47 -0500 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2017-02-09 19:28:11 -0500 |
commit | 8af8e1c22f9994bb1849c01d66c24fe23f9bc9a0 (patch) | |
tree | 4cd217a231cfd229e51b23d57c71bb73c9578865 | |
parent | ffdadd68af5a397b8a52289ab39d62e1acb39e63 (diff) |
scsi: aacraid: Fix INTx/MSI-x issue with older controllers
commit 78cbccd3bd68 ("aacraid: Fix for KDUMP driver hang")
caused a problem on older controllers which do not support MSI-x (namely
ASR3405,ASR3805). This patch conditionalizes the previous patch to
controllers which support MSI-x
Cc: <stable@vger.kernel.org> # v4.7+
Fixes: 78cbccd3bd68 ("aacraid: Fix for KDUMP driver hang")
Reported-by: Arkadiusz Miskiewicz <a.miskiewicz@gmail.com>
Signed-off-by: Dave Carroll <david.carroll@microsemi.com>
Reviewed-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r-- | drivers/scsi/aacraid/comminit.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c index 4f56b1003cc7..5b48bedd7c38 100644 --- a/drivers/scsi/aacraid/comminit.c +++ b/drivers/scsi/aacraid/comminit.c | |||
@@ -50,9 +50,13 @@ struct aac_common aac_config = { | |||
50 | 50 | ||
51 | static inline int aac_is_msix_mode(struct aac_dev *dev) | 51 | static inline int aac_is_msix_mode(struct aac_dev *dev) |
52 | { | 52 | { |
53 | u32 status; | 53 | u32 status = 0; |
54 | 54 | ||
55 | status = src_readl(dev, MUnit.OMR); | 55 | if (dev->pdev->device == PMC_DEVICE_S6 || |
56 | dev->pdev->device == PMC_DEVICE_S7 || | ||
57 | dev->pdev->device == PMC_DEVICE_S8) { | ||
58 | status = src_readl(dev, MUnit.OMR); | ||
59 | } | ||
56 | return (status & AAC_INT_MODE_MSIX); | 60 | return (status & AAC_INT_MODE_MSIX); |
57 | } | 61 | } |
58 | 62 | ||