diff options
| author | Doug Rabson <dfr@FreeBSD.org> | 2023-08-12 13:19:47 +0000 |
|---|---|---|
| committer | Doug Rabson <dfr@FreeBSD.org> | 2023-10-20 10:50:20 +0000 |
| commit | da4b0d6eb06d730487d48e15d2d5e10c56266fd9 (patch) | |
| tree | 817e7644c1985ae57ff2c8fdee98dc3cba556aa3 /sys/dev/xen | |
| parent | ca57a343e86ed3015596db68bda17518ad45436a (diff) | |
Diffstat (limited to 'sys/dev/xen')
| -rw-r--r-- | sys/dev/xen/netfront/netfront.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/xen/netfront/netfront.c b/sys/dev/xen/netfront/netfront.c index b4e7722552e6..dafb838cf328 100644 --- a/sys/dev/xen/netfront/netfront.c +++ b/sys/dev/xen/netfront/netfront.c @@ -2272,7 +2272,7 @@ int create_netdev(device_t dev) { struct netfront_info *np; - int err; + int err, cap_enabled; if_t ifp; np = device_get_softc(dev); @@ -2304,7 +2304,11 @@ create_netdev(device_t dev) if_sethwassist(ifp, XN_CSUM_FEATURES); /* Enable all supported features at device creation. */ if_setcapabilities(ifp, IFCAP_HWCSUM|IFCAP_TSO4|IFCAP_LRO); - if_setcapenable(ifp, if_getcapabilities(ifp)); + cap_enabled = if_getcapabilities(ifp); + if (!xn_enable_lro) { + cap_enabled &= ~IFCAP_LRO; + } + if_setcapenable(ifp, cap_enabled); if_sethwtsomax(ifp, 65536 - (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN)); if_sethwtsomaxsegcount(ifp, MAX_TX_REQ_FRAGS); |
