On Aug 4, 2009, at 2:02 PM, James Bottomley wrote:
On Fri, 2009-07-31 at 15:09 -0700, giridhar.malavali@xxxxxxxxxx wrote:
From: Anirban Chakraborty <anirban.chakraborty@xxxxxxxxxx>
The interrupt handler clears the interrupt status register for
response updates in the
base queue while working in the multique mode. This could lead to
missing interrupt for
async events, mail box completions etc. as these are also handled
in the base queue.
The fix ensures that the interrupt bit is not cleared for response
updates in the ISR
when the driver is working in multiqueue mode.
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@xxxxxxxxxx>
Signed-off-by: Giridhar Malavali <giridhar.malavali@xxxxxxxxxx>
---
drivers/scsi/qla2xxx/qla_isr.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/
qla_isr.c
index 40014f3..175b20b 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -1769,7 +1769,8 @@ qla24xx_msix_rsp_q(int irq, void *dev_id)
vha = qla25xx_get_host(rsp);
qla24xx_process_response_queue(vha, rsp);
- WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT);
+ if (!ha->mqenable)
+ WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT);
spin_unlock_irq(&ha->hardware_lock);
Assuming this is the only thing that clears the interrupt line, isn't
this asking for a re-interrupt in a posted write scenario? Don't you
want to do a read to flush the posted write before enabling
interrupts?
I will add a read to flush the posted write and resend the patch.
Thanks,
Anirban
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html