[SCSI] qla2xxx: Fix a bug that clears the interrupt status register for 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>
This commit is contained in:
Anirban Chakraborty 2009-08-04 16:12:13 -07:00 коммит произвёл James Bottomley
Родитель 80de7efa6d
Коммит eb94114bfd
1 изменённых файлов: 4 добавлений и 2 удалений

Просмотреть файл

@ -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;