Skip to content

Commit

Permalink
[SCSI] qla2xxx: Fix a bug that clears the interrupt status register f…
Browse files Browse the repository at this point in the history
…or the base queue

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@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
  • Loading branch information
Anirban Chakraborty authored and James Bottomley committed Aug 22, 2009
1 parent 80de7ef commit eb94114
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/scsi/qla2xxx/qla_isr.c
Original file line number Diff line number Diff line change
Expand Up @@ -1769,8 +1769,10 @@ qla24xx_msix_rsp_q(int irq, void *dev_id)

vha = qla25xx_get_host(rsp);
qla24xx_process_response_queue(vha, rsp);
WRT_REG_DWORD(&reg->hccr, HCCRX_CLR_RISC_INT);

if (!ha->mqenable) {
WRT_REG_DWORD(&reg->hccr, HCCRX_CLR_RISC_INT);
RD_REG_DWORD_RELAXED(&reg->hccr);
}
spin_unlock_irq(&ha->hardware_lock);

return IRQ_HANDLED;
Expand Down

0 comments on commit eb94114

Please sign in to comment.