Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0a1be38 authored by Alexander Gordeev's avatar Alexander Gordeev Committed by David S. Miller
Browse files

vmxnet3: 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() and pci_enable_msix_range()
interfaces.

Signed-off-by: default avatarAlexander Gordeev <agordeev@redhat.com>
Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
Cc: pv-drivers@vmware.com
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b60b869d
Loading
Loading
Loading
Loading
+19 −28
Original line number Diff line number Diff line
@@ -2738,35 +2738,26 @@ vmxnet3_read_mac_addr(struct vmxnet3_adapter *adapter, u8 *mac)
static int
vmxnet3_acquire_msix_vectors(struct vmxnet3_adapter *adapter, int nvec)
{
	do {
		int err = pci_enable_msix(adapter->pdev,
					  adapter->intr.msix_entries, nvec);
		if (!err) {
			return nvec;
		} else if (err < 0) {
			dev_err(&adapter->netdev->dev,
				"Failed to enable MSI-X, error: %d\n", err);
			return err;
		} else if (err < VMXNET3_LINUX_MIN_MSIX_VECT) {
			dev_info(&adapter->pdev->dev,
				 "Number of MSI-X which can be allocated "
				 "is lower than min threshold required.\n");
			return -ENOSPC;
		} else {
			/* If fails to enable required number of MSI-x vectors
			 * try enabling minimum number of vectors required.
			 */
	int ret = pci_enable_msix_range(adapter->pdev,
					adapter->intr.msix_entries, nvec, nvec);

	if (ret == -ENOSPC && nvec > VMXNET3_LINUX_MIN_MSIX_VECT) {
		dev_err(&adapter->netdev->dev,
			"Failed to enable %d MSI-X, trying %d\n",
			nvec, VMXNET3_LINUX_MIN_MSIX_VECT);
			nvec = VMXNET3_LINUX_MIN_MSIX_VECT;

		ret = pci_enable_msix_range(adapter->pdev,
					    adapter->intr.msix_entries,
					    VMXNET3_LINUX_MIN_MSIX_VECT,
					    VMXNET3_LINUX_MIN_MSIX_VECT);
	}
	} while (nvec >= VMXNET3_LINUX_MIN_MSIX_VECT);

	/*
	 * Should never get here
	 */
	return -ENOSPC;
	if (ret < 0) {
		dev_err(&adapter->netdev->dev,
			"Failed to enable MSI-X, error: %d\n", ret);
	}

	return ret;
}