Commit f50cccdd authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Doug Ledford

IB/mthca: switch to pci_alloc_irq_vectors

Trivial switch to the new API for this driver.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 1bb0d7b7
...@@ -851,20 +851,18 @@ static int mthca_setup_hca(struct mthca_dev *dev) ...@@ -851,20 +851,18 @@ static int mthca_setup_hca(struct mthca_dev *dev)
static int mthca_enable_msi_x(struct mthca_dev *mdev) static int mthca_enable_msi_x(struct mthca_dev *mdev)
{ {
struct msix_entry entries[3];
int err; int err;
entries[0].entry = 0; err = pci_alloc_irq_vectors(mdev->pdev, 3, 3, PCI_IRQ_MSIX);
entries[1].entry = 1; if (err < 0)
entries[2].entry = 2;
err = pci_enable_msix_exact(mdev->pdev, entries, ARRAY_SIZE(entries));
if (err)
return err; return err;
mdev->eq_table.eq[MTHCA_EQ_COMP ].msi_x_vector = entries[0].vector; mdev->eq_table.eq[MTHCA_EQ_COMP ].msi_x_vector =
mdev->eq_table.eq[MTHCA_EQ_ASYNC].msi_x_vector = entries[1].vector; pci_irq_vector(mdev->pdev, 0);
mdev->eq_table.eq[MTHCA_EQ_CMD ].msi_x_vector = entries[2].vector; mdev->eq_table.eq[MTHCA_EQ_ASYNC].msi_x_vector =
pci_irq_vector(mdev->pdev, 1);
mdev->eq_table.eq[MTHCA_EQ_CMD ].msi_x_vector =
pci_irq_vector(mdev->pdev, 2);
return 0; return 0;
} }
...@@ -1018,7 +1016,7 @@ static int __mthca_init_one(struct pci_dev *pdev, int hca_type) ...@@ -1018,7 +1016,7 @@ static int __mthca_init_one(struct pci_dev *pdev, int hca_type)
err = mthca_setup_hca(mdev); err = mthca_setup_hca(mdev);
if (err == -EBUSY && (mdev->mthca_flags & MTHCA_FLAG_MSI_X)) { if (err == -EBUSY && (mdev->mthca_flags & MTHCA_FLAG_MSI_X)) {
if (mdev->mthca_flags & MTHCA_FLAG_MSI_X) if (mdev->mthca_flags & MTHCA_FLAG_MSI_X)
pci_disable_msix(pdev); pci_free_irq_vectors(pdev);
mdev->mthca_flags &= ~MTHCA_FLAG_MSI_X; mdev->mthca_flags &= ~MTHCA_FLAG_MSI_X;
err = mthca_setup_hca(mdev); err = mthca_setup_hca(mdev);
...@@ -1062,7 +1060,7 @@ static int __mthca_init_one(struct pci_dev *pdev, int hca_type) ...@@ -1062,7 +1060,7 @@ static int __mthca_init_one(struct pci_dev *pdev, int hca_type)
err_close: err_close:
if (mdev->mthca_flags & MTHCA_FLAG_MSI_X) if (mdev->mthca_flags & MTHCA_FLAG_MSI_X)
pci_disable_msix(pdev); pci_free_irq_vectors(pdev);
mthca_close_hca(mdev); mthca_close_hca(mdev);
...@@ -1113,7 +1111,7 @@ static void __mthca_remove_one(struct pci_dev *pdev) ...@@ -1113,7 +1111,7 @@ static void __mthca_remove_one(struct pci_dev *pdev)
mthca_cmd_cleanup(mdev); mthca_cmd_cleanup(mdev);
if (mdev->mthca_flags & MTHCA_FLAG_MSI_X) if (mdev->mthca_flags & MTHCA_FLAG_MSI_X)
pci_disable_msix(pdev); pci_free_irq_vectors(pdev);
ib_dealloc_device(&mdev->ib_dev); ib_dealloc_device(&mdev->ib_dev);
pci_release_regions(pdev); pci_release_regions(pdev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment