2014-02-26 09:02:10

by Alexander Gordeev

[permalink] [raw]
Subject: [PATCH v2 0/2] block: Use pci_enable_msix_exact() instead of pci_enable_msix()

Changes since v1:
- cciss: patch #1: a weird 'goto' removed;
- cciss: patch #2: pci_enable_msix_exact() used, not pci_enable_msix_range();
- rsxx: patch dropped - no need to change anything;

As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() or pci_enable_msi_exact()
and pci_enable_msix_range() or pci_enable_msix_exact()
interfaces.

This change updates 'cciss' only, but there is also 'nvme' update
pending - I am waiting for Intel guys to clarify if they want to
route it thru their tree. If not, I will post the 'nvme' patch as
a follow-up to this series.

Thanks!

Cc: Jens Axboe <[email protected]>
Cc: Mike Miller <[email protected]>
Cc: [email protected]
Cc: [email protected]

Alexander Gordeev (2):
cciss: Fallback to MSI rather than to INTx if MSI-X failed
cciss: Use pci_enable_msix_exact() instead of pci_enable_msix()

drivers/block/cciss.c | 8 +-------
1 files changed, 1 insertions(+), 7 deletions(-)

--
1.7.7.6


2014-02-26 09:01:05

by Alexander Gordeev

[permalink] [raw]
Subject: [PATCH v2 1/2] cciss: Fallback to MSI rather than to INTx if MSI-X failed

Currently the driver falls back to INTx mode when MSI-X
initialization failed. This is a suboptimal behaviour
for chips that also support MSI. This update changes that
behaviour and falls back to MSI mode in case MSI-X mode
initialization failed.

Signed-off-by: Alexander Gordeev <[email protected]>
Cc: Mike Miller <[email protected]>
Cc: [email protected]
Cc: Jens Axboe <[email protected]>
Cc: [email protected]
---
drivers/block/cciss.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 036e8ab..73894ca 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -4092,11 +4092,9 @@ static void cciss_interrupt_mode(ctlr_info_t *h)
if (err > 0) {
dev_warn(&h->pdev->dev,
"only %d MSI-X vectors available\n", err);
- goto default_int_mode;
} else {
dev_warn(&h->pdev->dev,
"MSI-X init failed %d\n", err);
- goto default_int_mode;
}
}
if (pci_find_capability(h->pdev, PCI_CAP_ID_MSI)) {
--
1.7.7.6

2014-02-26 09:41:20

by Alexander Gordeev

[permalink] [raw]
Subject: [PATCH v2 2/2] cciss: Use pci_enable_msix_exact() instead of pci_enable_msix()

As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() or pci_enable_msi_exact()
and pci_enable_msix_range() or pci_enable_msix_exact()
interfaces.

Signed-off-by: Alexander Gordeev <[email protected]>
Cc: Mike Miller <[email protected]>
Cc: [email protected]
Cc: Jens Axboe <[email protected]>
Cc: [email protected]
---
drivers/block/cciss.c | 6 +-----
1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 73894ca..4595c22 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -4080,7 +4080,7 @@ static void cciss_interrupt_mode(ctlr_info_t *h)
goto default_int_mode;

if (pci_find_capability(h->pdev, PCI_CAP_ID_MSIX)) {
- err = pci_enable_msix(h->pdev, cciss_msix_entries, 4);
+ err = pci_enable_msix_exact(h->pdev, cciss_msix_entries, 4);
if (!err) {
h->intr[0] = cciss_msix_entries[0].vector;
h->intr[1] = cciss_msix_entries[1].vector;
@@ -4088,10 +4088,6 @@ static void cciss_interrupt_mode(ctlr_info_t *h)
h->intr[3] = cciss_msix_entries[3].vector;
h->msix_vector = 1;
return;
- }
- if (err > 0) {
- dev_warn(&h->pdev->dev,
- "only %d MSI-X vectors available\n", err);
} else {
dev_warn(&h->pdev->dev,
"MSI-X init failed %d\n", err);
--
1.7.7.6