netdev
[Top] [All Lists]

Re: Oops at "NET: Registering protocol family 23" at boot with 2.6.0t9-b

To: Stian Jordet <liste@xxxxxxxxx>
Subject: Re: Oops at "NET: Registering protocol family 23" at boot with 2.6.0t9-bk
From: Andrew Morton <akpm@xxxxxxxx>
Date: Sat, 1 Nov 2003 16:03:50 -0800
Cc: netdev@xxxxxxxxxxx, "David S. Miller" <davem@xxxxxxxxxx>
In-reply-to: <1067723628.643.0.camel@chevrolet.hybel>
References: <1067705386.666.1.camel@chevrolet.hybel> <20031101133601.7cf12497.akpm@osdl.org> <1067723628.643.0.camel@chevrolet.hybel>
Sender: netdev-bounce@xxxxxxxxxxx
Stian Jordet <liste@xxxxxxxxx> wrote:
>
> lør, 01.11.2003 kl. 22.36 skrev Andrew Morton:
>  > Stian Jordet <liste@xxxxxxxxx> wrote:
>  > >
>  > > 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.
>  > > 
>  > 
>  > Please send your .config.
> 
>  Here you are :) Thanks for looking into this :)

OK, it goes bang because ptype_all has not been initialised yet.

This is because net_dev_init() is fs_initcall, and irda_init() is
subsys_initcall - irda_init() runs before net_dev_init().

Dave, I'm not sure what's the best thing to do here - I was afraid that the
initcall level shuffling was a bit premature.

IRDA doesn't look flexible (hugs to JT for commenting this nicely):

/*
 * The IrDA stack must be initialised *before* drivers get initialised,
 * and *before* higher protocols (IrLAN/IrCOMM/IrNET) get initialised,
 * otherwise bad things will happen (hashbins will be NULL for example).
 * Those modules are at module_init()/device_initcall() level.
 *
 * On the other hand, it needs to be initialised *after* the basic
 * networking, the /proc/net filesystem and sysctl module. Those are
 * currently initialised in .../init/main.c (before initcalls).
 * Also, IrDA drivers needs to be initialised *after* the random number
 * generator (main stack and higher layer init don't need it anymore).
 *
 * Jean II
 */

So I dunno.   Maybe we need to just revert the PNP patch, think
about it some more?


diff -puN drivers/pnp/isapnp/core.c~pnp-initcall-revert 
drivers/pnp/isapnp/core.c
--- 25/drivers/pnp/isapnp/core.c~pnp-initcall-revert    2003-11-01 
16:02:36.000000000 -0800
+++ 25-akpm/drivers/pnp/isapnp/core.c   2003-11-01 16:02:54.000000000 -0800
@@ -1160,7 +1160,7 @@ int __init isapnp_init(void)
        return 0;
 }
 
-fs_initcall(isapnp_init);
+device_initcall(isapnp_init);
 
 /* format is: noisapnp */
 
diff -puN net/core/dev.c~pnp-initcall-revert net/core/dev.c
--- 25/net/core/dev.c~pnp-initcall-revert       2003-11-01 16:02:36.000000000 
-0800
+++ 25-akpm/net/core/dev.c      2003-11-01 16:02:54.000000000 -0800
@@ -3067,7 +3067,7 @@ out:
        return rc;
 }
 
-fs_initcall(net_dev_init);
+subsys_initcall(net_dev_init);
 
 EXPORT_SYMBOL(__dev_get);
 EXPORT_SYMBOL(__dev_get_by_flags);

_



<Prev in Thread] Current Thread [Next in Thread>