vmxnet3: remove power of 2 limitation on the queues
With version 6, vmxnet3 relaxes the restriction on queues to be power of two. This is helpful in cases (Edge VM) where vcpus are less than 8 and device requires more than 4 queues. Signed-off-by: Ronak Doshi <doshir@vmware.com> Acked-by: Guolin Yang <gyang@vmware.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
39f9895a00
Коммит
15ccf2f4b0
|
@ -3399,7 +3399,6 @@ vmxnet3_probe_device(struct pci_dev *pdev,
|
|||
else
|
||||
#endif
|
||||
num_rx_queues = 1;
|
||||
num_rx_queues = rounddown_pow_of_two(num_rx_queues);
|
||||
|
||||
if (enable_mq)
|
||||
num_tx_queues = min(VMXNET3_DEVICE_MAX_TX_QUEUES,
|
||||
|
@ -3407,7 +3406,6 @@ vmxnet3_probe_device(struct pci_dev *pdev,
|
|||
else
|
||||
num_tx_queues = 1;
|
||||
|
||||
num_tx_queues = rounddown_pow_of_two(num_tx_queues);
|
||||
netdev = alloc_etherdev_mq(sizeof(struct vmxnet3_adapter),
|
||||
max(num_tx_queues, num_rx_queues));
|
||||
if (!netdev)
|
||||
|
@ -3525,6 +3523,8 @@ vmxnet3_probe_device(struct pci_dev *pdev,
|
|||
}
|
||||
} else {
|
||||
adapter->queuesExtEnabled = false;
|
||||
num_rx_queues = rounddown_pow_of_two(num_rx_queues);
|
||||
num_tx_queues = rounddown_pow_of_two(num_tx_queues);
|
||||
adapter->num_rx_queues = min(num_rx_queues,
|
||||
VMXNET3_DEVICE_DEFAULT_RX_QUEUES);
|
||||
adapter->num_tx_queues = min(num_tx_queues,
|
||||
|
@ -3705,7 +3705,9 @@ vmxnet3_remove_device(struct pci_dev *pdev)
|
|||
else
|
||||
#endif
|
||||
num_rx_queues = 1;
|
||||
num_rx_queues = rounddown_pow_of_two(num_rx_queues);
|
||||
if (!VMXNET3_VERSION_GE_6(adapter)) {
|
||||
num_rx_queues = rounddown_pow_of_two(num_rx_queues);
|
||||
}
|
||||
if (VMXNET3_VERSION_GE_6(adapter)) {
|
||||
spin_lock_irqsave(&adapter->cmd_lock, flags);
|
||||
VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD,
|
||||
|
|
Загрузка…
Ссылка в новой задаче