From owner-dev-commits-src-main@freebsd.org Sun Jan 10 14:56:38 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4CBA24CF7C2; Sun, 10 Jan 2021 14:56:38 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [204.107.128.30]) by mx1.freebsd.org (Postfix) with ESMTP id 4DDKft1lWDz4lhd; Sun, 10 Jan 2021 14:56:37 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from [192.168.4.23] (host81-156-200-208.range81-156.btcentralplus.com [81.156.200.208]) by cyrus.watson.org (Postfix) with ESMTPSA id 1BE8891397; Sun, 10 Jan 2021 14:56:37 +0000 (UTC) From: "Robert N. M. Watson" Message-Id: <9AC50976-FF55-4DF6-8A58-D35BA636CA4C@FreeBSD.org> Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.40.0.2.32\)) Subject: Re: Build breakage (was: Re: git: 4ba9ad0dc316 - main - iflib: add assert to prevent out-of-bounds array access) Date: Sun, 10 Jan 2021 14:56:35 +0000 In-Reply-To: Cc: src-committers , dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org To: Vincenzo Maffione References: <202101101359.10ADxhCg027384@gitrepo.freebsd.org> <3bd51ab4-2ead-513e-2a8-bcaa562b22a9@fledge.watson.org> X-Mailer: Apple Mail (2.3654.40.0.2.32) X-Rspamd-Queue-Id: 4DDKft1lWDz4lhd X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jan 2021 14:56:38 -0000 Thanks for the rapid fix =E2=80=94 I can build fine again now. Robert > On 10 Jan 2021, at 14:32, Vincenzo Maffione = wrote: >=20 > Sorry, my bad. > I'll fix it right away. >=20 > Thanks, > Vincenzo >=20 > Il giorno dom 10 gen 2021 alle ore 15:26 Robert Watson = > ha scritto: >=20 > With recent iflib/netmap commits, I'm getting the following on my = cross-built=20 > GENERIC-MMCCAM-NODEBUG kernel, which is essentially the FreeBSD/arm64=20= > GENERIC-MMCCAM as in the tree, but with GENERIC-NODEBUG as the base. = This=20 > configuration built fine until this morning, but I've not had a chance = to=20 > bisect to figure out which was the commit that triggered the breakage: >=20 > >>> stage 3.1: building everything > /usr/home/robert/cheri/freebsd/sys/net/iflib.c:2384:2: error: implicit=20= > declaration of function 'netmap_disable_all_rings' is invalid in C99=20= > [-Werror,-Wimplicit-function-declaration] > netmap_disable_all_rings(ifp); > ^ > /usr/home/robert/cheri/freebsd/sys/net/iflib.c:2444:2: error: implicit=20= > declaration of function 'netmap_enable_all_rings' is invalid in C99=20 > [-Werror,-Wimplicit-function-declaration] > netmap_enable_all_rings(ifp); > ^ > /usr/home/robert/cheri/freebsd/sys/net/iflib.c:2444:2: note: did you = mean=20 > 'netmap_disable_all_rings'? > /usr/home/robert/cheri/freebsd/sys/net/iflib.c:2384:2: note:=20 > 'netmap_disable_all_rings' declared here > netmap_disable_all_rings(ifp); > ^ > /usr/home/robert/cheri/freebsd/sys/net/iflib.c:2495:2: error: implicit=20= > declaration of function 'netmap_disable_all_rings' is invalid in C99=20= > [-Werror,-Wimplicit-function-declaration] > netmap_disable_all_rings(ctx->ifc_ifp); > ^ > 3 errors generated. > --- iflib.o --- > *** [iflib.o] Error code 1 > make[2]: stopped in=20 > = /usr/home/robert/cheri/build/freebsd-aarch64-build/usr/home/robert/cheri/f= reebsd/arm64.aarch64/sys/GENERIC-MMCCAM-NODEBUG > --- all_subdir_bge --- > --- modules-all --- > *** [modules-all] Error code 2 > make[2]: stopped in=20 > = /usr/home/robert/cheri/build/freebsd-aarch64-build/usr/home/robert/cheri/f= reebsd/arm64.aarch64/sys/GENERIC-MMCCAM-NODEBUG > 2 errors > make[2]: stopped in=20 > = /usr/home/robert/cheri/build/freebsd-aarch64-build/usr/home/robert/cheri/f= reebsd/arm64.aarch64/sys/GENERIC-MMCCAM-NODEBUG > --- buildkernel --- > --- buildkernel --- > Fatal error: Command `nice make -DDB_FROM_SRC -DNO_CLEAN=20 > -DI_REALLY_MEAN_NO_CLEAN -DNO_ROOT -DBUILD_WITH_STRICT_TMPPATH=20 > TARGET_ARCH=3Daarch64 TARGET=3Darm64 DEBUG_FLAGS=3D-g=20 > 'LOCAL_XTOOL_DIRS=3Dlib/libnetbsd usr.sbin/makefs usr.bin/mkimg'=20 > LD=3D/usr/bin/ld.lld XLD=3D/usr/bin/ld.lld 'HACK_EXTRA_FLAGS=3D-shared=20= > -fuse-ld=3D/usr/bin/ld.lld' TRAMP_LDFLAGS=3D-fuse-ld=3D/usr/bin/ld.lld=20= > KERNCONF=3DGENERIC-MMCCAM-NODEBUG -DWITHOUT_CLEAN -DWITH_TESTS = -DWITHOUT_PROFILE=20 > -DWITHOUT_DEBUG_FILES -DWITHOUT_OFED -DWITHOUT_MAN -DWITH_GOOGLETEST=20= > -DWITHOUT_GCC -DWITHOUT_CLANG -DWITHOUT_LLD -DWITHOUT_LLDB=20 > -DWITHOUT_GCC_BOOTSTRAP -DWITHOUT_CLANG_BOOTSTRAP = -DWITHOUT_LLD_BOOTSTRAP=20 > -DWITHOUT_LIB32 -DWITH_ELFTOOLCHAIN_BOOTSTRAP -DWITH_TOOLCHAIN=20 > -DWITHOUT_BINUTILS_BOOTSTRAP -s -de buildkernel -j6` failed with = non-zero exit=20 > code 2 >=20 >=20 >=20 >=20 > On Sun, 10 Jan 2021, Vincenzo Maffione wrote: >=20 > > The branch main has been updated by vmaffione: > > > > URL: = https://cgit.FreeBSD.org/src/commit/?id=3D4ba9ad0dc316940f32065b05f24259f9= 42c0692d = > > > > commit 4ba9ad0dc316940f32065b05f24259f942c0692d > > Author: Vincenzo Maffione > > AuthorDate: 2021-01-10 13:49:51 +0000 > > Commit: Vincenzo Maffione > > CommitDate: 2021-01-10 13:59:20 +0000 > > > > iflib: add assert to prevent out-of-bounds array access > > > > The iflib_queues_alloc() allocates isc_nrxqs iflib_dma_info = structs > > for each rxqset, and links each struct to a different free list. > > As a result, it must be isc_nrxqs >=3D isc_nfl (plus the = completion > > queue, if present). > > Add an assertion to make this constraint explicit. > > > > MFC after: 2 weeks > > --- > > sys/net/iflib.c | 9 ++++----- > > 1 file changed, 4 insertions(+), 5 deletions(-) > > > > diff --git a/sys/net/iflib.c b/sys/net/iflib.c > > index 3de80ecaeb0c..e53c5031d3a7 100644 > > --- a/sys/net/iflib.c > > +++ b/sys/net/iflib.c > > @@ -5547,11 +5547,14 @@ iflib_queues_alloc(if_ctx_t ctx) > > uint8_t nrxqs =3D sctx->isc_nrxqs; > > uint8_t ntxqs =3D sctx->isc_ntxqs; > > int nfree_lists =3D sctx->isc_nfl ? sctx->isc_nfl : 1; > > + int fl_offset =3D (sctx->isc_flags & IFLIB_HAS_RXCQ ? 1 : 0); > > caddr_t *vaddrs; > > uint64_t *paddrs; > > > > KASSERT(ntxqs > 0, ("number of queues per qset must be at = least 1")); > > KASSERT(nrxqs > 0, ("number of queues per qset must be at = least 1")); > > + KASSERT(nrxqs >=3D fl_offset + nfree_lists, > > + ("there must be at least a rxq for each free list")); > > > > /* Allocate the TX ring struct memory */ > > if (!(ctx->ifc_txqs =3D > > @@ -5659,11 +5662,7 @@ iflib_queues_alloc(if_ctx_t ctx) > > } > > rxq->ifr_ctx =3D ctx; > > rxq->ifr_id =3D i; > > - if (sctx->isc_flags & IFLIB_HAS_RXCQ) { > > - rxq->ifr_fl_offset =3D 1; > > - } else { > > - rxq->ifr_fl_offset =3D 0; > > - } > > + rxq->ifr_fl_offset =3D fl_offset; > > rxq->ifr_nfl =3D nfree_lists; > > if (!(fl =3D > > (iflib_fl_t) malloc(sizeof(struct iflib_fl) = * nfree_lists, M_IFLIB, M_NOWAIT | M_ZERO))) { > >