diff options
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_drv.c | 7 | ||||
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_ethtool.c | 12 | ||||
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_int.h | 5 |
3 files changed, 18 insertions, 6 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 97394345e5dd..b76f7dcde0db 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c | |||
@@ -2589,8 +2589,8 @@ vmxnet3_open(struct net_device *netdev) | |||
2589 | for (i = 0; i < adapter->num_tx_queues; i++) | 2589 | for (i = 0; i < adapter->num_tx_queues; i++) |
2590 | spin_lock_init(&adapter->tx_queue[i].tx_lock); | 2590 | spin_lock_init(&adapter->tx_queue[i].tx_lock); |
2591 | 2591 | ||
2592 | err = vmxnet3_create_queues(adapter, VMXNET3_DEF_TX_RING_SIZE, | 2592 | err = vmxnet3_create_queues(adapter, adapter->tx_ring_size, |
2593 | VMXNET3_DEF_RX_RING_SIZE, | 2593 | adapter->rx_ring_size, |
2594 | VMXNET3_DEF_RX_RING_SIZE); | 2594 | VMXNET3_DEF_RX_RING_SIZE); |
2595 | if (err) | 2595 | if (err) |
2596 | goto queue_err; | 2596 | goto queue_err; |
@@ -2968,6 +2968,9 @@ vmxnet3_probe_device(struct pci_dev *pdev, | |||
2968 | adapter->netdev = netdev; | 2968 | adapter->netdev = netdev; |
2969 | adapter->pdev = pdev; | 2969 | adapter->pdev = pdev; |
2970 | 2970 | ||
2971 | adapter->tx_ring_size = VMXNET3_DEF_TX_RING_SIZE; | ||
2972 | adapter->rx_ring_size = VMXNET3_DEF_RX_RING_SIZE; | ||
2973 | |||
2971 | spin_lock_init(&adapter->cmd_lock); | 2974 | spin_lock_init(&adapter->cmd_lock); |
2972 | adapter->adapter_pa = dma_map_single(&adapter->pdev->dev, adapter, | 2975 | adapter->adapter_pa = dma_map_single(&adapter->pdev->dev, adapter, |
2973 | sizeof(struct vmxnet3_adapter), | 2976 | sizeof(struct vmxnet3_adapter), |
diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c index 40c1c7b0d9e0..b725fd9e7803 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c | |||
@@ -449,8 +449,8 @@ vmxnet3_get_ringparam(struct net_device *netdev, | |||
449 | param->rx_mini_max_pending = 0; | 449 | param->rx_mini_max_pending = 0; |
450 | param->rx_jumbo_max_pending = 0; | 450 | param->rx_jumbo_max_pending = 0; |
451 | 451 | ||
452 | param->rx_pending = adapter->rx_queue[0].rx_ring[0].size; | 452 | param->rx_pending = adapter->rx_ring_size; |
453 | param->tx_pending = adapter->tx_queue[0].tx_ring.size; | 453 | param->tx_pending = adapter->tx_ring_size; |
454 | param->rx_mini_pending = 0; | 454 | param->rx_mini_pending = 0; |
455 | param->rx_jumbo_pending = 0; | 455 | param->rx_jumbo_pending = 0; |
456 | } | 456 | } |
@@ -529,9 +529,11 @@ vmxnet3_set_ringparam(struct net_device *netdev, | |||
529 | * size */ | 529 | * size */ |
530 | netdev_err(netdev, "failed to apply new sizes, " | 530 | netdev_err(netdev, "failed to apply new sizes, " |
531 | "try the default ones\n"); | 531 | "try the default ones\n"); |
532 | new_rx_ring_size = VMXNET3_DEF_RX_RING_SIZE; | ||
533 | new_tx_ring_size = VMXNET3_DEF_TX_RING_SIZE; | ||
532 | err = vmxnet3_create_queues(adapter, | 534 | err = vmxnet3_create_queues(adapter, |
533 | VMXNET3_DEF_TX_RING_SIZE, | 535 | new_tx_ring_size, |
534 | VMXNET3_DEF_RX_RING_SIZE, | 536 | new_rx_ring_size, |
535 | VMXNET3_DEF_RX_RING_SIZE); | 537 | VMXNET3_DEF_RX_RING_SIZE); |
536 | if (err) { | 538 | if (err) { |
537 | netdev_err(netdev, "failed to create queues " | 539 | netdev_err(netdev, "failed to create queues " |
@@ -545,6 +547,8 @@ vmxnet3_set_ringparam(struct net_device *netdev, | |||
545 | netdev_err(netdev, "failed to re-activate, error %d." | 547 | netdev_err(netdev, "failed to re-activate, error %d." |
546 | " Closing it\n", err); | 548 | " Closing it\n", err); |
547 | } | 549 | } |
550 | adapter->tx_ring_size = new_tx_ring_size; | ||
551 | adapter->rx_ring_size = new_rx_ring_size; | ||
548 | 552 | ||
549 | out: | 553 | out: |
550 | clear_bit(VMXNET3_STATE_BIT_RESETTING, &adapter->state); | 554 | clear_bit(VMXNET3_STATE_BIT_RESETTING, &adapter->state); |
diff --git a/drivers/net/vmxnet3/vmxnet3_int.h b/drivers/net/vmxnet3/vmxnet3_int.h index 190569d02450..29ee77f2c97f 100644 --- a/drivers/net/vmxnet3/vmxnet3_int.h +++ b/drivers/net/vmxnet3/vmxnet3_int.h | |||
@@ -349,6 +349,11 @@ struct vmxnet3_adapter { | |||
349 | u32 link_speed; /* in mbps */ | 349 | u32 link_speed; /* in mbps */ |
350 | 350 | ||
351 | u64 tx_timeout_count; | 351 | u64 tx_timeout_count; |
352 | |||
353 | /* Ring sizes */ | ||
354 | u32 tx_ring_size; | ||
355 | u32 rx_ring_size; | ||
356 | |||
352 | struct work_struct work; | 357 | struct work_struct work; |
353 | 358 | ||
354 | unsigned long state; /* VMXNET3_STATE_BIT_xxx */ | 359 | unsigned long state; /* VMXNET3_STATE_BIT_xxx */ |