Date: Wed, 13 Jan 2016 20:54:55 +0800 From: Sepherosa Ziehau <sephe@freebsd.org> To: "Bjoern A. Zeeb" <bz@freebsd.org>, Xin LI <delphij@freebsd.org>, Adrian Chadd <adrian@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r293719 - head/sys/dev/hyperv/netvsc Message-ID: <CAMOc5czJ6s1=BNP5GLE3-bYgijk-JfeixBhk1q1S29LD6fbLCg@mail.gmail.com> In-Reply-To: <alpine.BSF.2.00.1601131047330.92377@ai.fobar.qr> References: <201601120130.u0C1UpvA074721@repo.freebsd.org> <alpine.BSF.2.00.1601131047330.92377@ai.fobar.qr>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] The breakage is all my fault. Patch is attached. Wait for mentors approval. Thanks, sephe On Wed, Jan 13, 2016 at 6:49 PM, Bjoern A. Zeeb <bz@freebsd.org> wrote: > On Tue, 12 Jan 2016, Sepherosa Ziehau wrote: > >> Author: sephe >> Date: Tue Jan 12 01:30:51 2016 >> New Revision: 293719 >> URL: https://svnweb.freebsd.org/changeset/base/293719 >> >> Log: >> hyperv/hn: Implement LRO >> >> - Implement the LRO using tcp_lro APIs, and LRO is enabled by default. > > > Which are only available if INET or INET6 are compiled into the kernel. > Unfortunately this breaks kernel builds that do not include IPv4 or IPv6 > support. > > Can you please put appropriate #if defined(INET6) || defined(INET) in > place? > > > >> Differential Revision: https://reviews.freebsd.org/D4824 >> >> Modified: >> head/sys/dev/hyperv/netvsc/hv_net_vsc.c >> head/sys/dev/hyperv/netvsc/hv_net_vsc.h >> head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c > > > hv_netvsc_drv_freebsd.o: In function `netvsc_recv': > /scratch/tmp/bz/head.svn/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c:(.text+0x483): > undefined reference to `tcp_lro_rx' > hv_netvsc_drv_freebsd.o: In function `netvsc_recv_rollup': > /scratch/tmp/bz/head.svn/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c:(.text+0x5ce): > undefined reference to `tcp_lro_flush' > hv_netvsc_drv_freebsd.o: In function `netvsc_attach': > /scratch/tmp/bz/head.svn/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c:(.text+0x901): > undefined reference to `tcp_lro_init' > hv_netvsc_drv_freebsd.o: In function `netvsc_detach': > /scratch/tmp/bz/head.svn/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c:(.text+0xca8): > undefined reference to `tcp_lro_free' > --- kernel --- > *** [kernel] Error code 1 > bmake: stopped in /storage/head/obj/scratch/tmp/bz/head.svn/sys/LINT-NOIP > > >> head/sys/dev/hyperv/netvsc/hv_rndis.h >> head/sys/dev/hyperv/netvsc/hv_rndis_filter.c >> head/sys/dev/hyperv/netvsc/hv_rndis_filter.h -- Tomorrow Will Never Die [-- Attachment #2 --] diff --git a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c index 68f822a..fd23db9 100644 --- a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c +++ b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c @@ -391,12 +391,14 @@ netvsc_attach(device_t dev) sc->hn_carrier = 1; } +#if defined(INET) || defined(INET6) tcp_lro_init(&sc->hn_lro); /* Driver private LRO settings */ sc->hn_lro.ifp = ifp; #ifdef HN_LRO_HIWAT sc->hn_lro.lro_hiwat = sc->hn_lro_hiwat; #endif +#endif /* INET || INET6 */ ether_ifattach(ifp, device_info.mac_addr); @@ -475,7 +477,9 @@ netvsc_detach(device_t dev) hv_rf_on_device_remove(hv_device, HV_RF_NV_DESTROY_CHANNEL); ifmedia_removeall(&sc->hn_media); +#if defined(INET) || defined(INET6) tcp_lro_free(&sc->hn_lro); +#endif return (0); } @@ -1083,6 +1087,7 @@ skip: if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); if ((ifp->if_capenable & IFCAP_LRO) && do_lro) { +#if defined(INET) || defined(INET6) struct lro_ctrl *lro = &sc->hn_lro; if (lro->lro_cnt) { @@ -1092,6 +1097,7 @@ skip: return 0; } } +#endif } /* We're not holding the lock here, so don't release it */ @@ -1103,6 +1109,7 @@ skip: void netvsc_recv_rollup(struct hv_device *device_ctx) { +#if defined(INET) || defined(INET6) hn_softc_t *sc = device_get_softc(device_ctx->device); struct lro_ctrl *lro = &sc->hn_lro; struct lro_entry *queued; @@ -1111,6 +1118,7 @@ netvsc_recv_rollup(struct hv_device *device_ctx) SLIST_REMOVE_HEAD(&lro->lro_active, next); tcp_lro_flush(lro, queued); } +#endif } /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMOc5czJ6s1=BNP5GLE3-bYgijk-JfeixBhk1q1S29LD6fbLCg>
