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,
        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)
                }
        } 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,
        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,