summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSarang Radke <sarang.radke@qlogic.com>2011-03-23 08:07:33 -0700
committerJames Bottomley <James.Bottomley@suse.de>2011-03-23 12:53:09 -0500
commit5fa8b573134108a333a317378998a9f1299c4dd6 (patch)
tree70925c9a578c65753e1cfdcee2aa058b2f5f97ca
parent3dea642afd9187728d119fce5c82a7ed9faa9b6a (diff)
downloadlinux-5fa8b573134108a333a317378998a9f1299c4dd6.tar.bz2
[SCSI] qla4xxx: Use polling mode for disable interrupt mailbox completion
Disable Interrupt MBX completion will disable the interrupt on successful completion. Fixed the bug where driver was waiting for Interrupt to come in for its completion. Now driver will poll for disable interrupt MBX completion. Signed-off-by: Sarang Radke <sarang.radke@qlogic.com> Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com> Reviewed-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
-rw-r--r--drivers/scsi/qla4xxx/ql4_nx.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_nx.c b/drivers/scsi/qla4xxx/ql4_nx.c
index 3d5ef2df4134..35381cb0936e 100644
--- a/drivers/scsi/qla4xxx/ql4_nx.c
+++ b/drivers/scsi/qla4xxx/ql4_nx.c
@@ -2304,14 +2304,13 @@ qla4_8xxx_enable_intrs(struct scsi_qla_host *ha)
void
qla4_8xxx_disable_intrs(struct scsi_qla_host *ha)
{
- if (test_bit(AF_INTERRUPTS_ON, &ha->flags))
+ if (test_and_clear_bit(AF_INTERRUPTS_ON, &ha->flags))
qla4_8xxx_mbx_intr_disable(ha);
spin_lock_irq(&ha->hardware_lock);
/* BIT 10 - set */
qla4_8xxx_wr_32(ha, ha->nx_legacy_intr.tgt_mask_reg, 0x0400);
spin_unlock_irq(&ha->hardware_lock);
- clear_bit(AF_INTERRUPTS_ON, &ha->flags);
}
struct ql4_init_msix_entry {