2013-08-08 13:09:47

by Yijing Wang

[permalink] [raw]
Subject: [PATCH 10/16] ntb: clean up unnecessary MSI/MSI-X capability find

PCI core will initialize device MSI/MSI-X capability in
pci_msi_init_pci_dev(). So device driver should use
pci_dev->msi_cap/msix_cap to determine whether the device
support MSI/MSI-X instead of using
pci_find_capability(pci_dev, PCI_CAP_ID_MSI/MSIX).
Access to PCIe device config space again will consume more time.

Signed-off-by: Yijing Wang <[email protected]>
Cc: Jon Mason <[email protected]>
Cc: [email protected]
---
drivers/ntb/ntb_hw.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/ntb/ntb_hw.c b/drivers/ntb/ntb_hw.c
index 2dacd19..090d1b2 100644
--- a/drivers/ntb/ntb_hw.c
+++ b/drivers/ntb/ntb_hw.c
@@ -758,16 +758,15 @@ static int ntb_setup_msix(struct ntb_device *ndev)
struct pci_dev *pdev = ndev->pdev;
struct msix_entry *msix;
int msix_entries;
- int rc, i, pos;
+ int rc, i;
u16 val;

- pos = pci_find_capability(pdev, PCI_CAP_ID_MSIX);
- if (!pos) {
+ if (!pdev->msix_cap) {
rc = -EIO;
goto err;
}

- rc = pci_read_config_word(pdev, pos + PCI_MSIX_FLAGS, &val);
+ rc = pci_read_config_word(pdev, pdev->msix_cap + PCI_MSIX_FLAGS, &val);
if (rc)
goto err;

--
1.7.1


2013-08-08 16:42:38

by Jon Mason

[permalink] [raw]
Subject: Re: [PATCH 10/16] ntb: clean up unnecessary MSI/MSI-X capability find

On Thu, Aug 08, 2013 at 09:09:34PM +0800, Yijing Wang wrote:
> PCI core will initialize device MSI/MSI-X capability in
> pci_msi_init_pci_dev(). So device driver should use
> pci_dev->msi_cap/msix_cap to determine whether the device
> support MSI/MSI-X instead of using
> pci_find_capability(pci_dev, PCI_CAP_ID_MSI/MSIX).
> Access to PCIe device config space again will consume more time.
>
> Signed-off-by: Yijing Wang <[email protected]>
> Cc: Jon Mason <[email protected]>

Acked-by: Jon Mason <[email protected]>

> Cc: [email protected]
> ---
> drivers/ntb/ntb_hw.c | 7 +++----
> 1 files changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/ntb/ntb_hw.c b/drivers/ntb/ntb_hw.c
> index 2dacd19..090d1b2 100644
> --- a/drivers/ntb/ntb_hw.c
> +++ b/drivers/ntb/ntb_hw.c
> @@ -758,16 +758,15 @@ static int ntb_setup_msix(struct ntb_device *ndev)
> struct pci_dev *pdev = ndev->pdev;
> struct msix_entry *msix;
> int msix_entries;
> - int rc, i, pos;
> + int rc, i;
> u16 val;
>
> - pos = pci_find_capability(pdev, PCI_CAP_ID_MSIX);
> - if (!pos) {
> + if (!pdev->msix_cap) {
> rc = -EIO;
> goto err;
> }
>
> - rc = pci_read_config_word(pdev, pos + PCI_MSIX_FLAGS, &val);
> + rc = pci_read_config_word(pdev, pdev->msix_cap + PCI_MSIX_FLAGS, &val);
> if (rc)
> goto err;
>
> --
> 1.7.1
>
>