2003-11-01 16:49:43

by Stian Jordet

[permalink] [raw]
Subject: Oops at "NET: Registering protocol family 23" at boot with 2.6.0t9-bk

Hello,
kernel 2.6.0-test9 works perfect here, but with the latest cset I get
the attached oops at boottime. Hope this helps someone.

Best regards,
Stian


Attachments:
oops.txt (1.03 kB)

2003-11-04 00:04:47

by Martin Diehl

[permalink] [raw]
Subject: Re: Oops at "NET: Registering protocol family 23" at boot with 2.6.0t9-bk

On Sat, 1 Nov 2003, Stian Jordet wrote:

> NET: Registered protocol family 23
> Unable to handle kernel NULL pointer dereference at virtual address 00000004
> EIP is at dev_add_pack+0x4d/0xb0

which is at "next->prev = new" in __list_add_rcu()

> Call Trace:
> [<c05defad>] irda_init+0x3d/0x60
> [<c05c094c>] do_initcalls+0x2c/0xa0
> [<c01359af>] init_workqueues+0xf/0x24
> [<c01050f6>] init+0x56/0x180
> [<c01050a0>] init+0x0/0x180
> [<c01072b9>] kernel_thread_helper+0x5/0xc

Looks like irda_init is called before the ptype_base[] list heads are
initialized. I believe it was triggered by:

>>>>>>>>>>
diff -Nru a/net/core/dev.c b/net/core/dev.c
--- a/net/core/dev.c Wed Oct 29 15:08:14 2003
+++ b/net/core/dev.c Wed Oct 29 15:08:14 2003
@@ -3023,7 +3023,7 @@
return rc;
}

-subsys_initcall(net_dev_init);
+fs_initcall(net_dev_init);
<<<<<<<<<<

from: [email protected]|ChangeSet|20031029192849|64746.txt

As a workaround you might want to make the irda modular instead of
build-in. But I'm just wondering why other protocols shouldn't have the
same problem. Maybe they are not subsys_initcall like af_irda.

Martin

2003-11-04 00:18:11

by David Miller

[permalink] [raw]
Subject: Re: Oops at "NET: Registering protocol family 23" at boot with 2.6.0t9-bk

On Tue, 4 Nov 2003 00:27:00 +0100 (CET)
Martin Diehl <[email protected]> wrote:

> On Sat, 1 Nov 2003, Stian Jordet wrote:
>
> > NET: Registered protocol family 23
> > Unable to handle kernel NULL pointer dereference at virtual address 00000004
> > EIP is at dev_add_pack+0x4d/0xb0
>
> which is at "next->prev = new" in __list_add_rcu()

This bug is already fully analyzed, please read the rest of the
thread. Andrew's change which introduced this problem will be
reverted.

2003-11-04 00:38:08

by Jean Tourrilhes

[permalink] [raw]
Subject: Re: Oops at "NET: Registering protocol family 23" at boot with 2.6.0t9-bk

On Tue, Nov 04, 2003 at 12:27:00AM +0100, Martin Diehl wrote:
> On Sat, 1 Nov 2003, Stian Jordet wrote:
>
> > NET: Registered protocol family 23
> > Unable to handle kernel NULL pointer dereference at virtual address 00000004
> > EIP is at dev_add_pack+0x4d/0xb0
>
> which is at "next->prev = new" in __list_add_rcu()
>
> > Call Trace:
> > [<c05defad>] irda_init+0x3d/0x60
> > [<c05c094c>] do_initcalls+0x2c/0xa0
> > [<c01359af>] init_workqueues+0xf/0x24
> > [<c01050f6>] init+0x56/0x180
> > [<c01050a0>] init+0x0/0x180
> > [<c01072b9>] kernel_thread_helper+0x5/0xc
>
> Looks like irda_init is called before the ptype_base[] list heads are
> initialized. I believe it was triggered by:
>
> >>>>>>>>>>
> diff -Nru a/net/core/dev.c b/net/core/dev.c
> --- a/net/core/dev.c Wed Oct 29 15:08:14 2003
> +++ b/net/core/dev.c Wed Oct 29 15:08:14 2003
> @@ -3023,7 +3023,7 @@
> return rc;
> }
>
> -subsys_initcall(net_dev_init);
> +fs_initcall(net_dev_init);
> <<<<<<<<<<
>
> from: [email protected]|ChangeSet|20031029192849|64746.txt
>
> As a workaround you might want to make the irda modular instead of
> build-in. But I'm just wondering why other protocols shouldn't have the
> same problem. Maybe they are not subsys_initcall like af_irda.
>
> Martin

Networking as a filesystem, that's new to me. And then, we
need irda up strictly before the drivers, so I would need to move irda
to fs_initcall(). Grrr....

I'm in serious need of catching up. Martin, you sent me
previously two important crasher fixes, one for IrCOMM and one for
sir-dev. And I have my IrNET Oops fix. Anything else ?

Regards,

Jean