diff options
author | Anirban Chakraborty <anirban.chakraborty@qlogic.com> | 2009-12-02 13:36:55 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-10 09:54:19 -0500 |
commit | 3155754a6b7985a80c41d84dd06530ff543f52a8 (patch) | |
tree | ba11ce0747dbfad6ecdcb6d42d71ca8675122f63 /drivers/scsi/qla2xxx/qla_init.c | |
parent | c45dd30551c371cb1e7a742136b8b36f6aba63f8 (diff) |
[SCSI] qla2xxx: fix for multiqueue in MISX disabled case
Fix to accommodate a hardware bug in multiqueue mode that does not
work properly when acknowledgement of MSIX Interrupts is disabled.
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_init.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index b74924b279ef..73a793539d45 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -1442,7 +1442,17 @@ qla24xx_config_rings(struct scsi_qla_host *vha) | |||
1442 | icb->firmware_options_2 |= | 1442 | icb->firmware_options_2 |= |
1443 | __constant_cpu_to_le32(BIT_18); | 1443 | __constant_cpu_to_le32(BIT_18); |
1444 | 1444 | ||
1445 | icb->firmware_options_2 &= __constant_cpu_to_le32(~BIT_22); | 1445 | /* Use Disable MSIX Handshake mode for capable adapters */ |
1446 | if (IS_MSIX_NACK_CAPABLE(ha)) { | ||
1447 | icb->firmware_options_2 &= | ||
1448 | __constant_cpu_to_le32(~BIT_22); | ||
1449 | ha->flags.disable_msix_handshake = 1; | ||
1450 | qla_printk(KERN_INFO, ha, | ||
1451 | "MSIX Handshake Disable Mode turned on\n"); | ||
1452 | } else { | ||
1453 | icb->firmware_options_2 |= | ||
1454 | __constant_cpu_to_le32(BIT_22); | ||
1455 | } | ||
1446 | icb->firmware_options_2 |= __constant_cpu_to_le32(BIT_23); | 1456 | icb->firmware_options_2 |= __constant_cpu_to_le32(BIT_23); |
1447 | 1457 | ||
1448 | WRT_REG_DWORD(®->isp25mq.req_q_in, 0); | 1458 | WRT_REG_DWORD(®->isp25mq.req_q_in, 0); |