diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2006-12-13 22:20:31 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-01-03 17:58:05 -0500 |
commit | 07f31805e1fa98f802f60433cdd1c0461120ef0e (patch) | |
tree | 60a28ecb301dcc208d7c4986488f88db3dd75a22 /drivers/scsi/qla2xxx/qla_isr.c | |
parent | 0c8c39af1699227e5a5d13e54a71f93347fe4f61 (diff) |
[SCSI] qla2xxx: Perform a fw-dump when an ISP23xx RISC-paused state is detected.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 79115c1f2494..6a741e313107 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -134,11 +134,11 @@ qla2300_intr_handler(int irq, void *dev_id) | |||
134 | if (stat & HSR_RISC_PAUSED) { | 134 | if (stat & HSR_RISC_PAUSED) { |
135 | hccr = RD_REG_WORD(®->hccr); | 135 | hccr = RD_REG_WORD(®->hccr); |
136 | if (hccr & (BIT_15 | BIT_13 | BIT_11 | BIT_8)) | 136 | if (hccr & (BIT_15 | BIT_13 | BIT_11 | BIT_8)) |
137 | qla_printk(KERN_INFO, ha, | 137 | qla_printk(KERN_INFO, ha, "Parity error -- " |
138 | "Parity error -- HCCR=%x.\n", hccr); | 138 | "HCCR=%x, Dumping firmware!\n", hccr); |
139 | else | 139 | else |
140 | qla_printk(KERN_INFO, ha, | 140 | qla_printk(KERN_INFO, ha, "RISC paused -- " |
141 | "RISC paused -- HCCR=%x.\n", hccr); | 141 | "HCCR=%x, Dumping firmware!\n", hccr); |
142 | 142 | ||
143 | /* | 143 | /* |
144 | * Issue a "HARD" reset in order for the RISC | 144 | * Issue a "HARD" reset in order for the RISC |
@@ -147,6 +147,8 @@ qla2300_intr_handler(int irq, void *dev_id) | |||
147 | */ | 147 | */ |
148 | WRT_REG_WORD(®->hccr, HCCR_RESET_RISC); | 148 | WRT_REG_WORD(®->hccr, HCCR_RESET_RISC); |
149 | RD_REG_WORD(®->hccr); | 149 | RD_REG_WORD(®->hccr); |
150 | |||
151 | ha->isp_ops.fw_dump(ha, 1); | ||
150 | set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); | 152 | set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); |
151 | break; | 153 | break; |
152 | } else if ((stat & HSR_RISC_INT) == 0) | 154 | } else if ((stat & HSR_RISC_INT) == 0) |