| From 09646a37476f05c06ba02594afdec879582e675f Mon Sep 17 00:00:00 2001 |
| From: Sawan Chandak <sawan.chandak@cavium.com> |
| Date: Fri, 31 Mar 2017 14:37:03 -0700 |
| Subject: [PATCH] scsi: qla2xxx: Add fix to read correct register value for |
| ISP82xx. |
| |
| commit bf6061b17a8d47ef0d9344d3ef576a4ff0edf793 upstream. |
| |
| Add fix to read correct register value for ISP82xx, during check for |
| register disconnect.ISP82xx has different base register. |
| |
| Fixes: a465537ad1a4 ("qla2xxx: Disable the adapter and skip error recovery in case of register disconnect") |
| Signed-off-by: Sawan Chandak <sawan.chandak@cavium.com> |
| Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com> |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c |
| index afa6a856cce5..8a1f5799dd99 100644 |
| --- a/drivers/scsi/qla2xxx/qla_os.c |
| +++ b/drivers/scsi/qla2xxx/qla_os.c |
| @@ -963,8 +963,13 @@ static inline |
| uint32_t qla2x00_isp_reg_stat(struct qla_hw_data *ha) |
| { |
| struct device_reg_24xx __iomem *reg = &ha->iobase->isp24; |
| + struct device_reg_82xx __iomem *reg82 = &ha->iobase->isp82; |
| |
| - return ((RD_REG_DWORD(®->host_status)) == ISP_REG_DISCONNECT); |
| + if (IS_P3P_TYPE(ha)) |
| + return ((RD_REG_DWORD(®82->host_int)) == ISP_REG_DISCONNECT); |
| + else |
| + return ((RD_REG_DWORD(®->host_status)) == |
| + ISP_REG_DISCONNECT); |
| } |
| |
| /************************************************************************** |
| -- |
| 2.12.0 |
| |