aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_isr.c
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2009-10-13 18:16:46 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-12-04 13:00:10 -0500
commitbdab23da71c36904693d276c8b28308dc94642aa (patch)
tree46a9d428346cdc70e0a828365757c9795899bde1 /drivers/scsi/qla2xxx/qla_isr.c
parent3420d36cac2f1d28fc99290de12dd66dfaf65d8e (diff)
[SCSI] qla2xxx: Display additional mailbox registers during AEN handling.
The mailbox register values may assist in debugging efforts. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index b20a7169aac2..4d758d29523c 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -313,10 +313,11 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
313 static char *link_speeds[] = { "1", "2", "?", "4", "8", "10" }; 313 static char *link_speeds[] = { "1", "2", "?", "4", "8", "10" };
314 char *link_speed; 314 char *link_speed;
315 uint16_t handle_cnt; 315 uint16_t handle_cnt;
316 uint16_t cnt; 316 uint16_t cnt, mbx;
317 uint32_t handles[5]; 317 uint32_t handles[5];
318 struct qla_hw_data *ha = vha->hw; 318 struct qla_hw_data *ha = vha->hw;
319 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; 319 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
320 struct device_reg_24xx __iomem *reg24 = &ha->iobase->isp24;
320 uint32_t rscn_entry, host_pid; 321 uint32_t rscn_entry, host_pid;
321 uint8_t rscn_queue_index; 322 uint8_t rscn_queue_index;
322 unsigned long flags; 323 unsigned long flags;
@@ -395,9 +396,10 @@ skip_rio:
395 break; 396 break;
396 397
397 case MBA_SYSTEM_ERR: /* System Error */ 398 case MBA_SYSTEM_ERR: /* System Error */
399 mbx = IS_QLA81XX(ha) ? RD_REG_WORD(&reg24->mailbox7) : 0;
398 qla_printk(KERN_INFO, ha, 400 qla_printk(KERN_INFO, ha,
399 "ISP System Error - mbx1=%xh mbx2=%xh mbx3=%xh.\n", 401 "ISP System Error - mbx1=%xh mbx2=%xh mbx3=%xh "
400 mb[1], mb[2], mb[3]); 402 "mbx7=%xh.\n", mb[1], mb[2], mb[3], mbx);
401 403
402 ha->isp_ops->fw_dump(vha, 1); 404 ha->isp_ops->fw_dump(vha, 1);
403 405
@@ -419,9 +421,10 @@ skip_rio:
419 break; 421 break;
420 422
421 case MBA_REQ_TRANSFER_ERR: /* Request Transfer Error */ 423 case MBA_REQ_TRANSFER_ERR: /* Request Transfer Error */
422 DEBUG2(printk("scsi(%ld): ISP Request Transfer Error.\n", 424 DEBUG2(printk("scsi(%ld): ISP Request Transfer Error (%x).\n",
423 vha->host_no)); 425 vha->host_no, mb[1]));
424 qla_printk(KERN_WARNING, ha, "ISP Request Transfer Error.\n"); 426 qla_printk(KERN_WARNING, ha,
427 "ISP Request Transfer Error (%x).\n", mb[1]);
425 428
426 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); 429 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
427 break; 430 break;
@@ -485,10 +488,13 @@ skip_rio:
485 break; 488 break;
486 489
487 case MBA_LOOP_DOWN: /* Loop Down Event */ 490 case MBA_LOOP_DOWN: /* Loop Down Event */
491 mbx = IS_QLA81XX(ha) ? RD_REG_WORD(&reg24->mailbox4) : 0;
488 DEBUG2(printk("scsi(%ld): Asynchronous LOOP DOWN " 492 DEBUG2(printk("scsi(%ld): Asynchronous LOOP DOWN "
489 "(%x %x %x).\n", vha->host_no, mb[1], mb[2], mb[3])); 493 "(%x %x %x %x).\n", vha->host_no, mb[1], mb[2], mb[3],
490 qla_printk(KERN_INFO, ha, "LOOP DOWN detected (%x %x %x).\n", 494 mbx));
491 mb[1], mb[2], mb[3]); 495 qla_printk(KERN_INFO, ha,
496 "LOOP DOWN detected (%x %x %x %x).\n", mb[1], mb[2], mb[3],
497 mbx);
492 498
493 if (atomic_read(&vha->loop_state) != LOOP_DOWN) { 499 if (atomic_read(&vha->loop_state) != LOOP_DOWN) {
494 atomic_set(&vha->loop_state, LOOP_DOWN); 500 atomic_set(&vha->loop_state, LOOP_DOWN);