lpfc: Use pci_enable_msix_range() 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 <agordeev@redhat.com> Reviewed-by: James Smart <james.smart@emulex.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Родитель
a7901acc4a
Коммит
4f871e1b27
|
@ -8203,9 +8203,9 @@ lpfc_sli4_pci_mem_unset(struct lpfc_hba *phba)
|
|||
* @phba: pointer to lpfc hba data structure.
|
||||
*
|
||||
* This routine is invoked to enable the MSI-X interrupt vectors to device
|
||||
* with SLI-3 interface specs. The kernel function pci_enable_msix() is
|
||||
* called to enable the MSI-X vectors. Note that pci_enable_msix(), once
|
||||
* invoked, enables either all or nothing, depending on the current
|
||||
* with SLI-3 interface specs. The kernel function pci_enable_msix_exact()
|
||||
* is called to enable the MSI-X vectors. Note that pci_enable_msix_exact(),
|
||||
* once invoked, enables either all or nothing, depending on the current
|
||||
* availability of PCI vector resources. The device driver is responsible
|
||||
* for calling the individual request_irq() to register each MSI-X vector
|
||||
* with a interrupt handler, which is done in this function. Note that
|
||||
|
@ -8229,8 +8229,8 @@ lpfc_sli_enable_msix(struct lpfc_hba *phba)
|
|||
phba->msix_entries[i].entry = i;
|
||||
|
||||
/* Configure MSI-X capability structure */
|
||||
rc = pci_enable_msix(phba->pcidev, phba->msix_entries,
|
||||
ARRAY_SIZE(phba->msix_entries));
|
||||
rc = pci_enable_msix_exact(phba->pcidev, phba->msix_entries,
|
||||
LPFC_MSIX_VECTORS);
|
||||
if (rc) {
|
||||
lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
|
||||
"0420 PCI enable MSI-X failed (%d)\n", rc);
|
||||
|
@ -8767,16 +8767,14 @@ out:
|
|||
* @phba: pointer to lpfc hba data structure.
|
||||
*
|
||||
* This routine is invoked to enable the MSI-X interrupt vectors to device
|
||||
* with SLI-4 interface spec. The kernel function pci_enable_msix() is called
|
||||
* to enable the MSI-X vectors. Note that pci_enable_msix(), once invoked,
|
||||
* enables either all or nothing, depending on the current availability of
|
||||
* PCI vector resources. The device driver is responsible for calling the
|
||||
* individual request_irq() to register each MSI-X vector with a interrupt
|
||||
* handler, which is done in this function. Note that later when device is
|
||||
* unloading, the driver should always call free_irq() on all MSI-X vectors
|
||||
* it has done request_irq() on before calling pci_disable_msix(). Failure
|
||||
* to do so results in a BUG_ON() and a device will be left with MSI-X
|
||||
* enabled and leaks its vectors.
|
||||
* with SLI-4 interface spec. The kernel function pci_enable_msix_range()
|
||||
* is called to enable the MSI-X vectors. The device driver is responsible
|
||||
* for calling the individual request_irq() to register each MSI-X vector
|
||||
* with a interrupt handler, which is done in this function. Note that
|
||||
* later when device is unloading, the driver should always call free_irq()
|
||||
* on all MSI-X vectors it has done request_irq() on before calling
|
||||
* pci_disable_msix(). Failure to do so results in a BUG_ON() and a device
|
||||
* will be left with MSI-X enabled and leaks its vectors.
|
||||
*
|
||||
* Return codes
|
||||
* 0 - successful
|
||||
|
@ -8797,17 +8795,14 @@ lpfc_sli4_enable_msix(struct lpfc_hba *phba)
|
|||
phba->sli4_hba.msix_entries[index].entry = index;
|
||||
vectors++;
|
||||
}
|
||||
enable_msix_vectors:
|
||||
rc = pci_enable_msix(phba->pcidev, phba->sli4_hba.msix_entries,
|
||||
vectors);
|
||||
if (rc > 1) {
|
||||
vectors = rc;
|
||||
goto enable_msix_vectors;
|
||||
} else if (rc) {
|
||||
rc = pci_enable_msix_range(phba->pcidev, phba->sli4_hba.msix_entries,
|
||||
2, vectors);
|
||||
if (rc < 0) {
|
||||
lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
|
||||
"0484 PCI enable MSI-X failed (%d)\n", rc);
|
||||
goto vec_fail_out;
|
||||
}
|
||||
vectors = rc;
|
||||
|
||||
/* Log MSI-X vector assignment */
|
||||
for (index = 0; index < vectors; index++)
|
||||
|
|
Загрузка…
Ссылка в новой задаче