lkml.org 
[lkml]   [2004]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Subjectchicken/egg between pipefs and initramfs/hotplug
From
Date
I have a hotplug setup in initramfs.  Everytime that modprobe is called
I get a kernel oops: NULL pointer dereference:

Unable to handle kernel NULL pointer dereference<1>Unable to handle kernel NULL pointer dereference at virtual address 00000014
printing eip:
c015db49
*pde = 00000000
Oops: 0000 [#1]
PREEMPT SMP
Modules linked in:
CPU: 3
EIP: 0060:[<c015db49>] Not tainted
EFLAGS: 00010296 (2.6.8)
EIP is at get_pipe_inode+0x9/0xb2
eax: 00000000 ebx: f74f4780 ecx: 00000000 edx: 00000000
esi: f7575580 edi: 0805cbdc ebp: f767a000 esp: f767bf3c
ds: 007b es: 007b ss: 0068
Process default.hotplug (pid: 184, threadinfo=f767a000 task=f74d9110)
Stack: f74f4780 f74f4780 c015dc24 f74d9110 c0168225 f7963ef0 c0392e80 f74f4780
ffffffe9 f74f4080 f767bfac 00000ff8 c014ff5f f7963cb0 00000001 00000ff8
f767bfac c0162d17 00000000 f74f4080 fffffff7 bfffdeec f767bfb0 0805cbdc
Call Trace:
[<c015dc24>] do_pipe+0x32/0x20e
[<c0168225>] dput+0x9e/0x2b0
[<c014ff5f>] vfs_read+0x94/0x103
[<c0162d17>] do_fcntl+0x18c/0x21f
[<c010a8ad>] sys_pipe+0x11/0x49
[<c0103f2f>] syscall_call+0x7/0xb
Code: 8b 40 14 89 04 24 e8 4e d5 00 00 85 c0 89 c3 0f 84 8d 00 00


It appears that linux/init/main.c:init() has a chicken/egg problem.
Apparently modprobe and other programs need a pipe and pipefs isn't
mounted until later on in do_basic_setup()/do_initcalls(). That means
that linux/fs/pipe.c:static struct vfsmount *pipe_mnt; isn't
initialized and blows up when it's derefernced in
linux/fs/pipe.c:get_pipe_inode().

Has this been discussed before? Is there something that userspace can
wait on until pipefs is mounted or more of the kernel is initialized? I
did some searching and I just can't turn up a previous discussion about
this - my apologies if it's already been covered.

--
Thayne Harbaugh
Linux Networx

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:07    [W:0.045 / U:3.652 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site