aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/vmware
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2014-09-13 08:26:09 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2014-09-13 08:26:09 +0000
commiteb93b77ae4a354370a1116d33522893cd1fbc1b3 (patch)
treed34b1dd02c73734a9f41558066a1d389f2f3c6f8 /sys/dev/vmware
parentabafbab15fb7ecadd0cd655caa672329369c9142 (diff)
Notes
Diffstat (limited to 'sys/dev/vmware')
-rw-r--r--sys/dev/vmware/vmxnet3/if_vmx.c6
-rw-r--r--sys/dev/vmware/vmxnet3/if_vmxvar.h5
2 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/vmware/vmxnet3/if_vmx.c b/sys/dev/vmware/vmxnet3/if_vmx.c
index f3fde92e3f7a1..dd0eb6c7fc8df 100644
--- a/sys/dev/vmware/vmxnet3/if_vmx.c
+++ b/sys/dev/vmware/vmxnet3/if_vmx.c
@@ -1722,7 +1722,11 @@ vmxnet3_setup_interface(struct vmxnet3_softc *sc)
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
ifp->if_init = vmxnet3_init;
ifp->if_ioctl = vmxnet3_ioctl;
- ifp->if_hw_tsomax = VMXNET3_TSO_MAXSIZE;
+
+ ifp->if_hw_tsomax = IF_HW_TSOMAX_BUILD_VALUE(
+ 65535 - sizeof(struct ether_vlan_header) /* bytes */,
+ VMXNET3_TX_MAXSEGS /* maximum frag count */,
+ VMXNET3_TX_MAXSEGSHIFT /* frag size */);
#ifdef VMXNET3_LEGACY_TX
ifp->if_start = vmxnet3_start;
diff --git a/sys/dev/vmware/vmxnet3/if_vmxvar.h b/sys/dev/vmware/vmxnet3/if_vmxvar.h
index 6c797214b2ee1..a6129f911fbe7 100644
--- a/sys/dev/vmware/vmxnet3/if_vmxvar.h
+++ b/sys/dev/vmware/vmxnet3/if_vmxvar.h
@@ -277,14 +277,13 @@ struct vmxnet3_softc {
*/
#define VMXNET3_TX_MAXSEGS 32
#define VMXNET3_TX_MAXSIZE (VMXNET3_TX_MAXSEGS * MCLBYTES)
-#define VMXNET3_TSO_MAXSIZE \
- (VMXNET3_TX_MAXSIZE - sizeof(struct ether_vlan_header))
/*
* Maximum support Tx segments size. The length field in the
* Tx descriptor is 14 bits.
*/
-#define VMXNET3_TX_MAXSEGSIZE (1 << 14)
+#define VMXNET3_TX_MAXSEGSHIFT 14
+#define VMXNET3_TX_MAXSEGSIZE (1 << VMXNET3_TX_MAXSEGSHIFT)
/*
* The maximum number of Rx segments we accept. When LRO is enabled,