Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Apr 2002 03:31:14 +0100
From:      Brian Somers <brian@freebsd-services.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        Brian Somers <brian@freebsd-services.com>, cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern kern_linker.c 
Message-ID:  <200204100231.g3A2VEOF005953@hak.lan.Awfulhak.org>
In-Reply-To: Message from John Baldwin <jhb@FreeBSD.org>  of "Tue, 09 Apr 2002 22:07:53 EDT." <XFMail.20020409220753.jhb@FreeBSD.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
> On 10-Apr-2002 Brian Somers wrote:
> >> brian       2002/04/09 18:14:45 PDT
> >> 
> >>   Modified files:
> >>     sys/kern             kern_linker.c 
> >>   Log:
> >>   In linker_load_module(), check that rootdev != NODEV before calling
> >>   linker_search_module().
> >>   
> >>   Without this, modules loaded from loader.conf that then try to load
> >>   in additional modules (such as digi.ko loading a card's BIOS) die
> >>   badly in the vn_open() called from linker_search_module().
> >>   
> >>   It may be worth checking (KASSERTing?) that rootdev != NODEV in
> >>   vn_open() too.
> >>   
> >>   Revision  Changes    Path
> >>   1.88      +5 -3      src/sys/kern/kern_linker.c
> > 
> > After these changes, it's possible for digi to find it's BIOS/FEPOS
> > from one of the digi_* modules at boot time - as long as that
> > digi_* module is already available (either built into the kernel or
> > ``loaded'' at boot time).  However, digi fails to initialise the
> > card - I think due to tsleep failing... but I'm not sure yet. 
> 
> tsleep/wakeup don't work during the boot device probe.  More
> specifically, interrupt handlers don't run, so you will never get woken
> up.  Also, since timeouts aren't working yet the tsleep() won't timeout
> either.  Thus, if you try to tsleep() during this time period, tsleep()
> will return immediately.

Is DELAY() the only alternative ?  It seems that if I DELAY(), it has 
a rather noticeable effect on the machine (everything seems to lock 
up 'till the DELAY()s are done).

Maybe I should look at having the driver ``test'' tsleep and use 
DELAY() instead if it doesn't work ?

> -- 
> 
> John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
> "Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

-- 
Brian <brian@freebsd-services.com>                <brian@Awfulhak.org>
      http://www.freebsd-services.com/        <brian@[uk.]FreeBSD.org>
Don't _EVER_ lose your sense of humour !      <brian@[uk.]OpenBSD.org>



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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