Skip to contentSkip to conversation

megaraid_sas : Fix bug in handling return value of pci_enable_msix_range()

PATCH Applied Jiang Liu 3 participants 3 messages Nov 3, 2014 – Nov 6, 2014

Subsystems (3)
lore
Share & tools
lore

Jiang Liu

author
#0 lore raw

PATCH 1/1 megaraid_sas : Fix bug in handling return value of pci_enable_msix_range()

Function pci_enable_msix_range() may return negative values for error conditions. So it's a bug by checking (pci_enable_msix_range() != 0) for success and causes failure to megaraid driver when MSI is disabled.

[   16.487267] megaraid_sas 0000:02:00.0: Controller type: iMR
[   16.487275] genirq: Flags mismatch irq 0. 00000000 (megasas) vs. 00015a00 (tii
mer)
[   16.487347] megasas: Failed to register IRQ for vector 0.
Fixes 8ae80ed1734b "megaraid: Use pci_enable_msix_range() instead of pci_enable_msix()"
Cc Alexander Gordeev <[email protected]>
Cc "Bjorn Helgaas <[email protected]>"
Cc <[email protected]> # 3.17
---
 drivers/scsi/megaraid/megaraid_sas_base.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/scsi/megaraid/megaraid_sas_base.c +1 -1
index f6a69a3b1b3f..5640ad1c8214 100644
@@ -4453,7 +4453,7 @@ static int megasas_init_fw(struct megasas_instance *instance)
 			instance->msixentry[i].entry = i;
 		i = pci_enable_msix_range(instance->pdev, instance->msixentry,
 					  1, instance->msix_vectors);
-		if (i)
+		if (i > 0)
 			instance->msix_vectors = i;
 		else
 			instance->msix_vectors = 0;
Signature · 1 line
1.7.10.4
Acked-by on v1 1/1
#1 lore raw
Quoted 9 lines

-----Original Message-----
From: Jiang Liu [mailto:[email protected]]
Sent: Monday, November 03, 2014 6:14 PM
To: Neela Syam Kolli; James E.J. Bottomley
Cc: Jiang Liu; Alexander Gordeev; [email protected]; linux- [email protected]; [email protected]
Subject: [PATCH] megaraid_sas : Fix bug in handling return value of pci_enable_msix_range()

Quoted 5 lines

Function pci_enable_msix_range() may return negative values for error conditions. So it's a bug by checking (pci_enable_msix_range() != 0) for success and causes failure to megaraid driver when MSI is disabled.

[   16.487267] megaraid_sas 0000:02:00.0: Controller type: iMR
[   16.487275] genirq: Flags mismatch irq 0. 00000000 (megasas) vs.

00015a00 (tii

Quoted 29 lines

mer)

[   16.487347] megasas: Failed to register IRQ for vector 0.
Fixes 8ae80ed1734b "megaraid: Use pci_enable_msix_range() instead of

pci_enable_msix()"

Cc Alexander Gordeev <[email protected]>
Cc "Bjorn Helgaas <[email protected]>"
Cc <[email protected]> # 3.17

---
drivers/scsi/megaraid/megaraid_sas_base.c | 2 +-

1 file changed, 1 insertion(+), 1 deletion(-)
drivers/scsi/megaraid/megaraid_sas_base.c +1 -1
index f6a69a3b1b3f..5640ad1c8214 100644
@@ -4453,7 +4453,7 @@ static int megasas_init_fw(struct megasas_instance
 *instance)
 			instance->msixentry[i].entry = i;
 		i = pci_enable_msix_range(instance->pdev, instance-
 >msixentry,
 					  1, instance->msix_vectors);
-		if (i)
+		if (i > 0)
 			instance->msix_vectors = i;
Quoted 2 lines
		else
			instance->msix_vectors = 0;
Quoted 2 lines

--
1.7.10.4