aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2007-10-19 18:59:14 -0400
committerJames Bottomley <jejb@mulgrave.localdomain>2007-10-23 15:53:41 -0400
commita3a63d55a4eec418d845a91222ac53443f62717b (patch)
treeb80569373633397c4bd0c9cc30f68b3062afbbff /drivers/scsi
parent6557f3a06a5eb73b34d01b23523a513f2c52cadb (diff)
[SCSI] qla2xxx: Defer explicit interrupt-polling processing to init-time scenarios.
As the intermixing may cause issues where HCCR bits could be cleared inappropriately during MSI/MSI-X interrupt handling. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/qla2xxx/qla_iocb.c2
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index 7f6a89bd94f3..024c662ec34d 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -525,7 +525,7 @@ qla2x00_req_pkt(scsi_qla_host_t *ha)
525 525
526 /* Check for pending interrupts. */ 526 /* Check for pending interrupts. */
527 /* During init we issue marker directly */ 527 /* During init we issue marker directly */
528 if (!ha->marker_needed) 528 if (!ha->marker_needed && !ha->flags.init_done)
529 qla2x00_poll(ha); 529 qla2x00_poll(ha);
530 530
531 spin_lock_irq(&ha->hardware_lock); 531 spin_lock_irq(&ha->hardware_lock);
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index c53ec67c47f4..ccd662a6f5dc 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -252,7 +252,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *pvha, mbx_cmd_t *mcp)
252 /* Clean up */ 252 /* Clean up */
253 ha->mcp = NULL; 253 ha->mcp = NULL;
254 254
255 if (!abort_active) { 255 if (abort_active || !io_lock_on) {
256 DEBUG11(printk("%s(%ld): checking for additional resp " 256 DEBUG11(printk("%s(%ld): checking for additional resp "
257 "interrupt.\n", __func__, ha->host_no)); 257 "interrupt.\n", __func__, ha->host_no));
258 258