From d1a55d0ebf87f9f4179b6ceffbb5121840268326 Mon Sep 17 00:00:00 2001 From: Nilesh Javali Date: Wed, 11 Jan 2012 02:44:17 -0800 Subject: [PATCH] --- yaml --- r: 286365 b: refs/heads/master c: 527c8b2e962d21baa38a96b22e1bf50a47fdf4fb h: refs/heads/master i: 286363: 80efdafd3a2088c081573652d843b4a6d90f61a3 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/qla4xxx/ql4_def.h | 2 ++ trunk/drivers/scsi/qla4xxx/ql4_os.c | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 5c0219058b32..b67e12219564 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e6bd0ebd4a8ba9118e970c0214e912e35895c92b +refs/heads/master: 527c8b2e962d21baa38a96b22e1bf50a47fdf4fb diff --git a/trunk/drivers/scsi/qla4xxx/ql4_def.h b/trunk/drivers/scsi/qla4xxx/ql4_def.h index ec48dc30b9a2..bfe68545203f 100644 --- a/trunk/drivers/scsi/qla4xxx/ql4_def.h +++ b/trunk/drivers/scsi/qla4xxx/ql4_def.h @@ -150,6 +150,8 @@ #define QL4_SESS_RECOVERY_TMO 120 /* iSCSI session */ /* recovery timeout */ +#define MSB(x) ((uint8_t)((uint16_t)(x) >> 8)) +#define LSW(x) ((uint16_t)(x)) #define LSDW(x) ((u32)((u64)(x))) #define MSDW(x) ((u32)((((u64)(x)) >> 16) >> 16)) diff --git a/trunk/drivers/scsi/qla4xxx/ql4_os.c b/trunk/drivers/scsi/qla4xxx/ql4_os.c index e2ef7762dc24..b75590af8ed3 100644 --- a/trunk/drivers/scsi/qla4xxx/ql4_os.c +++ b/trunk/drivers/scsi/qla4xxx/ql4_os.c @@ -2112,6 +2112,13 @@ void qla4_8xxx_watchdog(struct scsi_qla_host *ha) halt_status = qla4_8xxx_rd_32(ha, QLA82XX_PEG_HALT_STATUS1); + if (LSW(MSB(halt_status)) == 0x67) + ql4_printk(KERN_ERR, ha, "%s:" + " Firmware aborted with" + " error code 0x00006700." + " Device is being reset\n", + __func__); + /* Since we cannot change dev_state in interrupt * context, set appropriate DPC flag then wakeup * DPC */