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>