Re: 2.5.64-bk multiple oops on boot

Andrew Morton
2003-03-17T00:24:05Z

Brian Davids <dlister@yossman.net> wrote:
>
> I get the following oopsen during booting with 2.5.64-bk pulled at
> around 10 AM EST today... system is running RedHat Phoebe 8.0.94 beta,
> gcc 3.2.1
>
> Unable to handle kernel NULL pointer dereference at virtual address 00000000
> printing eip:
> c01a4c9b
> *pde = 00000000
> Oops: 0000
> CPU: 0
> EIP: 0060:[<c01a4c9b>] Not tainted
> EFLAGS: 00010283
> EIP is at devfs_get_ops+0xb/0x40

Does this help?

diff -puN fs/devfs/base.c~devfs-oops-fix fs/devfs/base.c
--- 25/fs/devfs/base.c~devfs-oops-fix 2003-03-16 16:33:16.000000000 -0800
+++ 25-akpm/fs/devfs/base.c 2003-03-16 16:33:49.000000000 -0800
@@ -1802,8 +1802,11 @@ int devfs_generate_path (devfs_handle_t
static struct file_operations *devfs_get_ops (devfs_handle_t de)
{
struct file_operations *ops = de->u.cdev.ops;
- struct module *owner = ops->owner;
+ struct module *owner;

+ if (!ops)
+ return NULL;
+ owner = ops->owner;
read_lock (&de->parent->u.dir.lock); /* Prevent module from unloading */
if ( (de->next == de) || !try_module_get (owner) )
{ /* Entry is already unhooked or module is unloading */

_