|
@@ -1203,18 +1203,6 @@ static inline void ahci_gtf_filter_workaround(struct ata_host *host)
|
|
|
{}
|
|
|
#endif
|
|
|
|
|
|
-static struct msi_desc *msix_get_desc(struct pci_dev *dev, u16 entry)
|
|
|
-{
|
|
|
- struct msi_desc *desc;
|
|
|
-
|
|
|
- list_for_each_entry(desc, &dev->msi_list, list) {
|
|
|
- if (desc->msi_attrib.entry_nr == entry)
|
|
|
- return desc;
|
|
|
- }
|
|
|
-
|
|
|
- return NULL;
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* ahci_init_msix() only implements single MSI-X support, not multiple
|
|
|
* MSI-X per-port interrupts. This is needed for host controllers that only
|
|
@@ -1223,7 +1211,6 @@ static struct msi_desc *msix_get_desc(struct pci_dev *dev, u16 entry)
|
|
|
static int ahci_init_msix(struct pci_dev *pdev, unsigned int n_ports,
|
|
|
struct ahci_host_priv *hpriv)
|
|
|
{
|
|
|
- struct msi_desc *desc;
|
|
|
int rc, nvec;
|
|
|
struct msix_entry entry = {};
|
|
|
|
|
@@ -1248,13 +1235,7 @@ static int ahci_init_msix(struct pci_dev *pdev, unsigned int n_ports,
|
|
|
if (rc < 0)
|
|
|
goto fail;
|
|
|
|
|
|
- desc = msix_get_desc(pdev, 0); /* first entry */
|
|
|
- if (!desc) {
|
|
|
- rc = -EINVAL;
|
|
|
- goto fail;
|
|
|
- }
|
|
|
-
|
|
|
- hpriv->irq = desc->irq;
|
|
|
+ hpriv->irq = entry.vector;
|
|
|
|
|
|
return 1;
|
|
|
fail:
|