linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] megaraid_sas : Fix bug in handling return value of pci_enable_msix_range()
@ 2014-11-03 12:44 Jiang Liu
  2014-11-04 10:36 ` Sumit Saxena
  2014-11-06 16:51 ` Christoph Hellwig
  0 siblings, 2 replies; 3+ messages in thread
From: Jiang Liu @ 2014-11-03 12:44 UTC (permalink / raw)
  To: Neela Syam Kolli, James E.J. Bottomley
  Cc: Jiang Liu, Alexander Gordeev, linux-pci, linux-scsi, linux-kernel

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()"

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Alexander Gordeev <agordeev@redhat.com>
Cc: "Bjorn Helgaas <bhelgaas@google.com>"
Cc: linux-pci@vger.kernel.org
Cc: <stable@vger.kernel.org> # 3.17
---
 drivers/scsi/megaraid/megaraid_sas_base.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index f6a69a3b1b3f..5640ad1c8214 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -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;
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* RE: [PATCH] megaraid_sas : Fix bug in handling return value of pci_enable_msix_range()
  2014-11-03 12:44 [PATCH] megaraid_sas : Fix bug in handling return value of pci_enable_msix_range() Jiang Liu
@ 2014-11-04 10:36 ` Sumit Saxena
  2014-11-06 16:51 ` Christoph Hellwig
  1 sibling, 0 replies; 3+ messages in thread
From: Sumit Saxena @ 2014-11-04 10:36 UTC (permalink / raw)
  To: Jiang Liu, Neela Syam Kolli, James E.J. Bottomley
  Cc: Alexander Gordeev, linux-pci, linux-scsi, linux-kernel

>-----Original Message-----
>From: Jiang Liu [mailto:jiang.liu@linux.intel.com]
>Sent: Monday, November 03, 2014 6:14 PM
>To: Neela Syam Kolli; James E.J. Bottomley
>Cc: Jiang Liu; Alexander Gordeev; linux-pci@vger.kernel.org; linux-
>scsi@vger.kernel.org; linux-kernel@vger.kernel.org
>Subject: [PATCH] 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()"
>
>Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
>Cc: Alexander Gordeev <agordeev@redhat.com>
>Cc: "Bjorn Helgaas <bhelgaas@google.com>"
>Cc: linux-pci@vger.kernel.org
>Cc: <stable@vger.kernel.org> # 3.17
>---
> drivers/scsi/megaraid/megaraid_sas_base.c |    2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c
>b/drivers/scsi/megaraid/megaraid_sas_base.c
>index f6a69a3b1b3f..5640ad1c8214 100644
>--- a/drivers/scsi/megaraid/megaraid_sas_base.c
>+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
>@@ -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;

Acked-by: Sumit Saxena <sumit.saxena@avagotech.com>

>--
>1.7.10.4

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] megaraid_sas : Fix bug in handling return value of pci_enable_msix_range()
  2014-11-03 12:44 [PATCH] megaraid_sas : Fix bug in handling return value of pci_enable_msix_range() Jiang Liu
  2014-11-04 10:36 ` Sumit Saxena
@ 2014-11-06 16:51 ` Christoph Hellwig
  1 sibling, 0 replies; 3+ messages in thread
From: Christoph Hellwig @ 2014-11-06 16:51 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Neela Syam Kolli, James E.J. Bottomley, Alexander Gordeev,
	linux-pci, linux-scsi, linux-kernel

Thanks,

applied to the drivers-for-3.18 branch.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-11-06 16:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-03 12:44 [PATCH] megaraid_sas : Fix bug in handling return value of pci_enable_msix_range() Jiang Liu
2014-11-04 10:36 ` Sumit Saxena
2014-11-06 16:51 ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).