Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Jan 2021 14:56:35 +0000
From:      "Robert N. M. Watson" <rwatson@FreeBSD.org>
To:        Vincenzo Maffione <vmaffione@FreeBSD.org>
Cc:        src-committers <src-committers@freebsd.org>, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: Build breakage (was: Re: git: 4ba9ad0dc316 - main - iflib: add assert to prevent out-of-bounds array access)
Message-ID:  <9AC50976-FF55-4DF6-8A58-D35BA636CA4C@FreeBSD.org>
In-Reply-To: <CA%2B_eA9j1kZxj6sfyc-x11Dd_OpR2WOLd22BCDhc49qAeMVTuYA@mail.gmail.com>
References:  <202101101359.10ADxhCg027384@gitrepo.freebsd.org> <3bd51ab4-2ead-513e-2a8-bcaa562b22a9@fledge.watson.org> <CA%2B_eA9j1kZxj6sfyc-x11Dd_OpR2WOLd22BCDhc49qAeMVTuYA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for the rapid fix =E2=80=94 I can build fine again now.

Robert

> On 10 Jan 2021, at 14:32, Vincenzo Maffione <vmaffione@FreeBSD.org> =
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 =
<rwatson@freebsd.org <mailto:rwatson@freebsd.org>> 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 =
<https://cgit.freebsd.org/src/commit/?id=3D4ba9ad0dc316940f32065b05f24259f=
942c0692d>
> >
> > commit 4ba9ad0dc316940f32065b05f24259f942c0692d
> > Author:     Vincenzo Maffione <vmaffione@FreeBSD.org>
> > AuthorDate: 2021-01-10 13:49:51 +0000
> > Commit:     Vincenzo Maffione <vmaffione@FreeBSD.org>
> > 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))) {
> >




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9AC50976-FF55-4DF6-8A58-D35BA636CA4C>