فهرست منبع

[SCSI] qla4xxx: Proper detection of firmware abort error code for ISP82xx

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Vikas Chaudhary 13 سال پیش
والد
کامیت
46801ba698
3فایلهای تغییر یافته به همراه2 افزوده شده و 3 حذف شده
  1. 0 2
      drivers/scsi/qla4xxx/ql4_def.h
  2. 1 0
      drivers/scsi/qla4xxx/ql4_nx.h
  3. 1 1
      drivers/scsi/qla4xxx/ql4_os.c

+ 0 - 2
drivers/scsi/qla4xxx/ql4_def.h

@@ -150,8 +150,6 @@
 #define QL4_SESS_RECOVERY_TMO		120	/* iSCSI session */
 #define QL4_SESS_RECOVERY_TMO		120	/* iSCSI session */
 						/* recovery timeout */
 						/* recovery timeout */
 
 
-#define MSB(x) ((uint8_t)((uint16_t)(x) >> 8))
-#define LSW(x) ((uint16_t)(x))
 #define LSDW(x) ((u32)((u64)(x)))
 #define LSDW(x) ((u32)((u64)(x)))
 #define MSDW(x) ((u32)((((u64)(x)) >> 16) >> 16))
 #define MSDW(x) ((u32)((((u64)(x)) >> 16) >> 16))
 
 

+ 1 - 0
drivers/scsi/qla4xxx/ql4_nx.h

@@ -623,6 +623,7 @@ struct crb_addr_pair {
 
 
 #define ADDR_ERROR	((unsigned long) 0xffffffff)
 #define ADDR_ERROR	((unsigned long) 0xffffffff)
 #define MAX_CTL_CHECK	1000
 #define MAX_CTL_CHECK	1000
+#define QLA82XX_FWERROR_CODE(code)	((code >> 8) & 0x1fffff)
 
 
 /***************************************************************************
 /***************************************************************************
  *		PCI related defines.
  *		PCI related defines.

+ 1 - 1
drivers/scsi/qla4xxx/ql4_os.c

@@ -2165,7 +2165,7 @@ void qla4_8xxx_watchdog(struct scsi_qla_host *ha)
 				halt_status = qla4_8xxx_rd_32(ha,
 				halt_status = qla4_8xxx_rd_32(ha,
 						QLA82XX_PEG_HALT_STATUS1);
 						QLA82XX_PEG_HALT_STATUS1);
 
 
-				if (LSW(MSB(halt_status)) == 0x67)
+				if (QLA82XX_FWERROR_CODE(halt_status) == 0x67)
 					ql4_printk(KERN_ERR, ha, "%s:"
 					ql4_printk(KERN_ERR, ha, "%s:"
 						   " Firmware aborted with"
 						   " Firmware aborted with"
 						   " error code 0x00006700."
 						   " error code 0x00006700."