Subject: Re: bus_dmamap_load: struct proc *p: finding process p
To: None <tech-kern@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: tech-kern
Date: 10/04/2004 11:41:50
On Mon, Oct 04, 2004 at 04:36:49PM +0000, Sam Thigpen wrote:
> On Mon, 4 Oct 2004, David Young wrote:
> >You're reading the wrong code. In the #ifdef __NetBSD__ portion, it says:
> >
> >       if ((error = bus_dmamap_load(sc->sc_dmat, sc->sc_ddmamap, 
> >       sc->sc_desc,
> >           sc->sc_desc_len, NULL, 0)) != 0) {
> >               printf("%s: unable to load control data DMA map, error = 
> >               %d\n",
> >                   sc->sc_dev.dv_xname, error);
> >               goto fail3;
> >       }
> 
> So for NetBSD the buffer is typically in kernel space by default?  Are
> there cases where it isn't?
> 

In this case, bus_dmamap_load operates on the Tx/Rx descriptor rings.
The rings are shared between the kernel and the adapter; they are not
shared with userland.

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933