diff options
| author | Meelis Roos <mroos@linux.ee> | 2018-03-08 08:44:07 -0500 |
|---|---|---|
| committer | Martin K. Petersen <martin.petersen@oracle.com> | 2018-03-21 18:59:31 -0400 |
| commit | f7e59e994fc69ace89f828686d82d528529ea025 (patch) | |
| tree | 3e414b28e23a1d0160bd1b8079b3cd576815177c /drivers/scsi | |
| parent | 89d0c804392bb962553f23dc4c119d11b6bd1675 (diff) | |
scsi: qla2xxx: fix error message on <qla2400
This patch fixes IO traps caught by hardware when mailbox command fails
on qla2200. The error handler assumes newer firmware that is available
on 2400 and newer HBA-s.
This causes ugly crashes on sparc64.
Fix it with separate debug prints on different firmware generations like
most other places do.
[mkp: updated based on feedback from Himanshu]
Signed-off-by: Meelis Roos <mroos@linux.ee>
Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi')
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_dbg.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 18 |
2 files changed, 14 insertions, 6 deletions
diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c index 3e9dc54b89a3..d52ee990707d 100644 --- a/drivers/scsi/qla2xxx/qla_dbg.c +++ b/drivers/scsi/qla2xxx/qla_dbg.c | |||
| @@ -14,7 +14,7 @@ | |||
| 14 | * | Module Init and Probe | 0x0193 | 0x0146 | | 14 | * | Module Init and Probe | 0x0193 | 0x0146 | |
| 15 | * | | | 0x015b-0x0160 | | 15 | * | | | 0x015b-0x0160 | |
| 16 | * | | | 0x016e | | 16 | * | | | 0x016e | |
| 17 | * | Mailbox commands | 0x1205 | 0x11a2-0x11ff | | 17 | * | Mailbox commands | 0x1206 | 0x11a2-0x11ff | |
| 18 | * | Device Discovery | 0x2134 | 0x210e-0x2116 | | 18 | * | Device Discovery | 0x2134 | 0x210e-0x2116 | |
| 19 | * | | | 0x211a | | 19 | * | | | 0x211a | |
| 20 | * | | | 0x211c-0x2128 | | 20 | * | | | 0x211c-0x2128 | |
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 7397aeddd96c..9a97f2ceffba 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
| @@ -503,11 +503,19 @@ mbx_done: | |||
| 503 | } | 503 | } |
| 504 | pr_warn(" cmd=%x ****\n", command); | 504 | pr_warn(" cmd=%x ****\n", command); |
| 505 | } | 505 | } |
| 506 | ql_dbg(ql_dbg_mbx, vha, 0x1198, | 506 | if (IS_FWI2_CAPABLE(ha) && !(IS_P3P_TYPE(ha))) { |
| 507 | "host_status=%#x intr_ctrl=%#x intr_status=%#x\n", | 507 | ql_dbg(ql_dbg_mbx, vha, 0x1198, |
| 508 | RD_REG_DWORD(®->isp24.host_status), | 508 | "host_status=%#x intr_ctrl=%#x intr_status=%#x\n", |
| 509 | RD_REG_DWORD(®->isp24.ictrl), | 509 | RD_REG_DWORD(®->isp24.host_status), |
| 510 | RD_REG_DWORD(®->isp24.istatus)); | 510 | RD_REG_DWORD(®->isp24.ictrl), |
| 511 | RD_REG_DWORD(®->isp24.istatus)); | ||
| 512 | } else { | ||
| 513 | ql_dbg(ql_dbg_mbx, vha, 0x1206, | ||
| 514 | "ctrl_status=%#x ictrl=%#x istatus=%#x\n", | ||
| 515 | RD_REG_WORD(®->isp.ctrl_status), | ||
| 516 | RD_REG_WORD(®->isp.ictrl), | ||
| 517 | RD_REG_WORD(®->isp.istatus)); | ||
| 518 | } | ||
| 511 | } else { | 519 | } else { |
| 512 | ql_dbg(ql_dbg_mbx, base_vha, 0x1021, "Done %s.\n", __func__); | 520 | ql_dbg(ql_dbg_mbx, base_vha, 0x1021, "Done %s.\n", __func__); |
| 513 | } | 521 | } |
