diff options
author | Shrikrishna Khare <skhare@vmware.com> | 2016-06-16 19:51:55 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-17 07:37:04 +0200 |
commit | 3c8b3efc061a745d888869dc3462ac4f7dd582d9 (patch) | |
tree | 1149b4276b76ca224ee99ab78146e643d563bcfb /drivers/net/vmxnet3/vmxnet3_int.h | |
parent | vmxnet3: introduce generalized command interface to configure the device (diff) | |
download | linux-3c8b3efc061a745d888869dc3462ac4f7dd582d9.tar.xz linux-3c8b3efc061a745d888869dc3462ac4f7dd582d9.zip |
vmxnet3: allow variable length transmit data ring buffer
vmxnet3 driver supports transmit data ring viz. a set of fixed size
buffers used by the driver to copy packet headers. Small packets that
fit these buffers are copied into these buffers entirely.
Currently this buffer size of fixed at 128 bytes. This patch extends
transmit data ring implementation to allow variable length transmit
data ring buffers. The length of the buffer is read from the emulation
during initialization.
Signed-off-by: Sriram Rangarajan <rangarajans@vmware.com>
Signed-off-by: Shrikrishna Khare <skhare@vmware.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vmxnet3/vmxnet3_int.h')
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_int.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_int.h b/drivers/net/vmxnet3/vmxnet3_int.h index de068e92cedb..94010de67e3d 100644 --- a/drivers/net/vmxnet3/vmxnet3_int.h +++ b/drivers/net/vmxnet3/vmxnet3_int.h @@ -241,6 +241,7 @@ struct vmxnet3_tx_queue { int num_stop; /* # of times the queue is * stopped */ int qid; + u16 txdata_desc_size; } __attribute__((__aligned__(SMP_CACHE_BYTES))); enum vmxnet3_rx_buf_type { @@ -363,6 +364,9 @@ struct vmxnet3_adapter { u32 rx_ring_size; u32 rx_ring2_size; + /* Size of buffer in the data ring */ + u16 txdata_desc_size; + struct work_struct work; unsigned long state; /* VMXNET3_STATE_BIT_xxx */ @@ -427,7 +431,8 @@ vmxnet3_set_features(struct net_device *netdev, netdev_features_t features); int vmxnet3_create_queues(struct vmxnet3_adapter *adapter, - u32 tx_ring_size, u32 rx_ring_size, u32 rx_ring2_size); + u32 tx_ring_size, u32 rx_ring_size, u32 rx_ring2_size, + u16 txdata_desc_size); void vmxnet3_set_ethtool_ops(struct net_device *netdev); |