[SCSI] qla4xxx: do not process interrupt unconditionally
in mailbox command do not process interrupt unconditionally, process interrupt only in polling mode Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by: Ravi Anand <ravi.anand@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
committed by
James Bottomley
parent
6790d4fecf
commit
e6b07df8b0
@@ -81,23 +81,7 @@ int qla4xxx_mailbox_command(struct scsi_qla_host *ha, uint8_t inCount,
|
|||||||
*/
|
*/
|
||||||
spin_lock_irqsave(&ha->hardware_lock, flags);
|
spin_lock_irqsave(&ha->hardware_lock, flags);
|
||||||
|
|
||||||
if (is_qla8022(ha)) {
|
if (!is_qla8022(ha)) {
|
||||||
intr_status = readl(&ha->qla4_8xxx_reg->host_int);
|
|
||||||
if (intr_status & ISRX_82XX_RISC_INT) {
|
|
||||||
/* Service existing interrupt */
|
|
||||||
DEBUG2(printk("scsi%ld: %s: "
|
|
||||||
"servicing existing interrupt\n",
|
|
||||||
ha->host_no, __func__));
|
|
||||||
intr_status = readl(&ha->qla4_8xxx_reg->host_status);
|
|
||||||
ha->isp_ops->interrupt_service_routine(ha, intr_status);
|
|
||||||
clear_bit(AF_MBOX_COMMAND_DONE, &ha->flags);
|
|
||||||
if (test_bit(AF_INTERRUPTS_ON, &ha->flags) &&
|
|
||||||
test_bit(AF_INTx_ENABLED, &ha->flags))
|
|
||||||
qla4_8xxx_wr_32(ha,
|
|
||||||
ha->nx_legacy_intr.tgt_mask_reg,
|
|
||||||
0xfbff);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
intr_status = readl(&ha->reg->ctrl_status);
|
intr_status = readl(&ha->reg->ctrl_status);
|
||||||
if (intr_status & CSR_SCSI_PROCESSOR_INTR) {
|
if (intr_status & CSR_SCSI_PROCESSOR_INTR) {
|
||||||
/* Service existing interrupt */
|
/* Service existing interrupt */
|
||||||
|
Reference in New Issue
Block a user