vmxnet3: support multi-segment transmit
authorStephen Hemminger <shemming@brocade.com>
Thu, 9 Jul 2015 18:24:12 +0000 (11:24 -0700)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 9 Jul 2015 22:41:47 +0000 (00:41 +0200)
commit7ba5de417e3c32fe3280838353b786c1ca86df26
tree602275c8908b0816123953474a4ebc7d65432acc
parent3df28ed516115e8f538d4a98558d6e802e94a5be
vmxnet3: support multi-segment transmit

Change sending loop to support multi-segment mbufs.
The VMXNET3 api has start-of-packet and end-packet flags, so it
is not hard to send multi-segment mbuf's.

Also, update descriptor in 32 bit value rather than toggling
bitfields which is slower and error prone.
Based on code in earlier driver, and the Linux kernel driver.

Add a compiler barrier to make sure that update of earlier descriptor
are completed prior to update of generation bit on start of packet.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Yong Wang <yongwang@vmware.com>
drivers/net/vmxnet3/vmxnet3_ring.h
drivers/net/vmxnet3/vmxnet3_rxtx.c