|
@@ -1761,12 +1761,18 @@ static void
|
|
vmxnet3_netpoll(struct net_device *netdev)
|
|
vmxnet3_netpoll(struct net_device *netdev)
|
|
{
|
|
{
|
|
struct vmxnet3_adapter *adapter = netdev_priv(netdev);
|
|
struct vmxnet3_adapter *adapter = netdev_priv(netdev);
|
|
|
|
+ int i;
|
|
|
|
|
|
- if (adapter->intr.mask_mode == VMXNET3_IMM_ACTIVE)
|
|
|
|
- vmxnet3_disable_all_intrs(adapter);
|
|
|
|
-
|
|
|
|
- vmxnet3_do_poll(adapter, adapter->rx_queue[0].rx_ring[0].size);
|
|
|
|
- vmxnet3_enable_all_intrs(adapter);
|
|
|
|
|
|
+ switch (adapter->intr.type) {
|
|
|
|
+ case VMXNET3_IT_MSIX:
|
|
|
|
+ for (i = 0; i < adapter->num_rx_queues; i++)
|
|
|
|
+ vmxnet3_msix_rx(0, &adapter->rx_queue[i]);
|
|
|
|
+ break;
|
|
|
|
+ case VMXNET3_IT_MSI:
|
|
|
|
+ default:
|
|
|
|
+ vmxnet3_intr(0, adapter->netdev);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|
|
#endif /* CONFIG_NET_POLL_CONTROLLER */
|
|
#endif /* CONFIG_NET_POLL_CONTROLLER */
|