Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Jul 2023 20:54:14 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Warner Losh <imp@bsdimp.com>
Cc:        John Baldwin <jhb@freebsd.org>, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: 60381fd1ee86 - main - memdesc: Retire MEMDESC_CCB.
Message-ID:  <ZLWARmA8XYh3wR6C@kib.kiev.ua>
In-Reply-To: <CANCZdfoHid=H1Ys_4XTJPfCaifevSoW92nGYXU3Ot=mTT13T%2Bg@mail.gmail.com>
References:  <202307141841.36EIf3f0019403@gitrepo.freebsd.org> <ZLVizUl1Xyo1AQmy@kib.kiev.ua> <65d7d8d8-9f98-abd2-1ce3-ae3a2d3bf111@FreeBSD.org> <CANCZdfoHid=H1Ys_4XTJPfCaifevSoW92nGYXU3Ot=mTT13T%2Bg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jul 17, 2023 at 11:29:20AM -0600, Warner Losh wrote:
> On Mon, Jul 17, 2023 at 11:15 AM John Baldwin <jhb@freebsd.org> wrote:
> 
> > On 7/17/23 8:48 AM, Konstantin Belousov wrote:
> > > On Fri, Jul 14, 2023 at 06:41:03PM +0000, John Baldwin wrote:
> > >> The branch main has been updated by jhb:
> > >>
> > >> URL:
> > https://cgit.FreeBSD.org/src/commit/?id=60381fd1ee8668ea1e4676a6128883d987cab858
> > >>
> > >> commit 60381fd1ee8668ea1e4676a6128883d987cab858
> > >> Author:     John Baldwin <jhb@FreeBSD.org>
> > >> AuthorDate: 2023-07-14 18:30:31 +0000
> > >> Commit:     John Baldwin <jhb@FreeBSD.org>
> > >> CommitDate: 2023-07-14 18:32:16 +0000
> > >>
> > >>      memdesc: Retire MEMDESC_CCB.
> > >>
> > >>      Instead, change memdesc_ccb to examine the CCB and return a
> > memdesc of
> > >>      a more generic type describing the data buffer.
> > >
> > >> diff --git a/sys/kern/subr_bus_dma.c b/sys/kern/subr_bus_dma.c
> > >> index 65a08aeba17c..bfaad30b37d3 100644
> > >> --- a/sys/kern/subr_bus_dma.c
> > >> +++ b/sys/kern/subr_bus_dma.c
> > >> @@ -304,94 +304,6 @@ bus_dmamap_load_ma_triv(bus_dma_tag_t dmat,
> > bus_dmamap_t map,
> > >> @@ -566,49 +478,18 @@ bus_dmamap_load_ccb(bus_dma_tag_t dmat,
> > bus_dmamap_t map, union ccb *ccb,
> > >> +    mem = memdesc_ccb(ccb);
> > >> +    return (bus_dmamap_load_mem(dmat, map, &mem, callback,
> > callback_arg,
> > >> +        flags));
> > >>   }
> > > This makes kernel not linkable if CAM is not included into it.
> >
> > Hmmm, ok.  I can either move the memdesc_ccb routine into sys/kern
> > somewhere
> > (like the kern_memdesc.c file in my other pending review), or we can #ifdef
> > this function.  It probably doesn't make sense to have a
> > bus_dmamap_load_ccb
> > if you don't have CAM, so I think I prefer the second option.
> >
> 
> MINIMAL doesn't have CAM configured, but it is loadable as a module.
> 
> I'd think we'd want a dummy one fo these with weak symbol binding and have
> the actual
> one live in cam somewhere that overrides this  symbol.
The symbol resolution does not work this way in kernel.  And it cannot
made working this way even in theory, because cam.ko is loadable at
runtime.

I believe the only feasible solution is to move memdesc_ccb() into kernel
unconditionally.

> 
> I just hit this in building MINIMAL for other reasons....




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ZLWARmA8XYh3wR6C>