tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kernel panic with new pseudo device
On 5/21/09, matthew sporleder <msporleder%gmail.com@localhost> wrote:
> On Thu, May 21, 2009 at 11:00 AM, Quentin Garnier
> <cube%cubidou.net@localhost> wrote:
> > On Thu, May 21, 2009 at 09:24:31AM -0400, matthew sporleder wrote:
> >> Hi, I'm trying to write a pseudo device with an envsys component. I
> >> mostly followed http://www.netbsd.org/docs/kernel/pseudo/ and got a
> >> working device, but now I get a panic when I attempt to do:
> >> sc->sc_sme = sysmon_envsys_create();
> >>
> >> My best guess is that I didn't get any memory allocated for my _softc
> >> structure, but I'm not really sure how to validate that.
> >>
> >> A rough cut of my code is here:
> >> http://mspo.com/code/screenblankenv.c.txt
> >>
> >> Can anyone offer some hints? I'm a little stuck.
> >
> > autoconf(9) can be confusing at times. And the fact that the example
> > code is wrong doesn't help.
> >
> > If you read http://www.netbsd.org/docs/kernel/pseudo/#functions, you'll
> > notice that the <pseudo>attach function only takes one argument, which
> > is an int (the number given in the config file, which defaults to 1).
> >
> > There is no softc involved for pseudo-devices (although if you use
> > defpseudodev to declare it, you get the possibility to make that happen,
> > but even then there is more work to do; it doesn't seem to me this is
> > what you want though).
> >
> > So because <pseudo>attach is called with no device context, you have to
> > do all memory allocations by yourself. I'll fix the example.
> >
>
>
>
> Thanks! I was really suspicious of an allocation problem but I didn't
> see any other devices doing mallocs so I wasn't that confident. I'll
> look forward to seeing the fixed example. :)
>
I made it past my panic with the following:
struct screenblankenv_softc *sc = malloc(sizeof(struct screenblankenv_so
ftc), M_DEVBUF, M_WAITOK);
..now to get my device actually working
Home |
Main Index |
Thread Index |
Old Index