| From 8af8e1c22f9994bb1849c01d66c24fe23f9bc9a0 Mon Sep 17 00:00:00 2001 |
| From: Dave Carroll <david.carroll@microsemi.com> |
| Date: Thu, 9 Feb 2017 11:04:47 -0700 |
| Subject: scsi: aacraid: Fix INTx/MSI-x issue with older controllers |
| |
| From: Dave Carroll <david.carroll@microsemi.com> |
| |
| commit 8af8e1c22f9994bb1849c01d66c24fe23f9bc9a0 upstream. |
| |
| 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 |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/scsi/aacraid/comminit.c | 8 ++++++-- |
| 1 file changed, 6 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/scsi/aacraid/comminit.c |
| +++ b/drivers/scsi/aacraid/comminit.c |
| @@ -50,9 +50,13 @@ struct aac_common aac_config = { |
| |
| static inline int aac_is_msix_mode(struct aac_dev *dev) |
| { |
| - u32 status; |
| + u32 status = 0; |
| |
| - status = src_readl(dev, MUnit.OMR); |
| + if (dev->pdev->device == PMC_DEVICE_S6 || |
| + dev->pdev->device == PMC_DEVICE_S7 || |
| + dev->pdev->device == PMC_DEVICE_S8) { |
| + status = src_readl(dev, MUnit.OMR); |
| + } |
| return (status & AAC_INT_MODE_MSIX); |
| } |
| |