Date: Sun, 18 Oct 1998 00:00:45 -0400 (EDT) From: Chuck Robey <chuckr@mat.net> To: Peter Wemm <peter@netplex.com.au> Cc: freebsd-current@FreeBSD.ORG Subject: Re: panic Message-ID: <Pine.BSF.4.05.9810172355150.345-100000@picnic.mat.net> In-Reply-To: <199810180305.LAA23805@spinner.netplex.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 18 Oct 1998, Peter Wemm wrote:
>
> It is useful, but bad news. :-(
>
> It means that the SYSINIT() process got scrambled somehow.
>
> There are a bunch of sysinit's like this:
>
> static moduledata_t root_bus_mod = {
> "rootbus",
> root_bus_module_handler,
> 0
> };
> DECLARE_MODULE(rootbus, root_bus_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
> .. which turns into
> SYSINIT(rootbusmodule, SI_SUB_DRIVERS, SI_ORDER_FIRST,
> module_register_init, &root_bus_mod)
>
> Effectively, this causes init_main.c to call
> module_register_init((void *)&root_bus_mod);
>
> module_register_init(void *arg)
> {
> moduledata_t* data = (moduledata_t*) arg;
> error = module_register(data->name, data->evhand, data->priv, data->_file);
> }
> module_register(const char* name, modeventhand_t handler, void* arg, void *file)
> {
> size_t namelen;
> namelen = strlen(name) + 1;
> ^^^^^^^^^^^^ Here is where it's crashing.
>
> And there's the dilemma. Either the name in the moduledata_t struct got
> smashed somehow, or the sysinit process is passing the wrong pointer to
> module_register_init().
>
> I picked this one out for the example for no particular reason, this has
> been in the kernel for a while. There are a number of these activated by
> new definitions of things like VFS_SET(), VNODEOP_SET(), EXEC_SET() macros
> in src/sys/*.h.
>
> Hmm, you don't have MATH_EMULATE or GPL_MATH_EMULATE options turned on by
> any chance, do you? Take them out if so.
Peter, I just got home (I'd warned previously I would be out for several
hours, but I didn't expect it to get this hot this soon). Let me hit
some points first.
Earlier there was a question from Mike about boot blocks. I have never
done anything to my kernel builds. They were aout. Has that changed in
some way? I'm pretty certain it's still aout, right, for the kernel? I
haven't updated my boot blocks, because I thought that for aout, it
wasn't called for. Correct me if I'm wrong.
The hit is happening about like you say, and if that's a string, I can
use ddb to hunt for it, I just can't seem to coax ddb to dump a kernel
core file.
options GPL_MATH_EMULATE has always been in my kernel config. I'll take
it out now. I'm surprised, I'd seen nothing about taking it out
anywhere.
I just got home, I am going to ingest some protein before you get any
data out of me ...
>
> Another thought.. Please try a 'make clean' and do a rebuild of the kernel.
>
> Also, it would be helpful to know if the same problem happens with a plain
> a.out kernel booted from the standard bootblocks, not /boot/loader. I'd
> be suprised if it was different though.
>
> Cheers,
> -Peter
>
>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
>
>
----------------------------+-----------------------------------------------
Chuck Robey | Interests include any kind of voice or data
chuckr@glue.umd.edu | communications topic, C programming, and Unix.
213 Lakeside Drive Apt T-1 |
Greenbelt, MD 20770 | I run Journey2 and picnic (FreeBSD-current)
(301) 220-2114 | and jaunt (NetBSD).
----------------------------+-----------------------------------------------
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9810172355150.345-100000>
