From: David F. <df...@ma...> - 2001-07-06 17:08:37
|
I updated the cvs sources for UML yesterday, but today it gives me, cvs [status aborted]: recv() from server cvs.user-mode-linux.sourceforge.net: EOF This is with 2.4.6 official kernel with the UML cvs files. I was wanting to debug a driver I'm working on, but it crashes before it is barely up. I started looking at UML with 2.4.5 and it did the same. I included the source code for the minimal module to get it to crash. On a real 2.4.5 linux kernel it succeeds about to run init_waitqueue_head about to run wake_up_interruptible success now unloading On UML 2.4.6 usermode:/mnt/tick/home/dfries/helper_apps/apps/kernel_modules/wait_module# insmod wake_up.o about to run init_waitqueue_head about to run wake_up_interruptible then it panics If I put a break on __wake_up in the debugger and run I see this, (gdb) bt #0 __wake_up (q=0x1017c4e0, mode=1, nr=1) at sched.c:749 #1 0x1000a1e8 in printk ( fmt=0x518001e0 "about to run wake_up_interruptible\n") at printk.c:311 #2 0x51800092 in ?? () #3 0x100d3563 in execute_syscall (regs={regs = {134587808, 134722848, 134723556, 134605864, 1367343104, 3212831420, 4294967258, 43, 43, 0, 0, 128, 134546852, 35, 642, 3212831396, 43}}) at syscall_kern.c:332 #4 0x100d3690 in syscall_handler (unused=0x0) at syscall_user.c:80 (gdb) c Continuing. Breakpoint 4, __wake_up (q=0x518001e0, mode=134722932, nr=1348779776) at sched.c:749 749 { (gdb) bt #0 __wake_up (q=0x518001e0, mode=134722932, nr=1348779776) at sched.c:749 #1 0x518000a6 in ?? () #2 0x100d3563 in execute_syscall (regs={regs = {134587808, 134722848, 134723556, 134605864, 1367343104, 3212831420, 4294967258, 43, 43, 0, 0, 128, 134546852, 35, 642, 3212831396, 43}}) at syscall_kern.c:332 #3 0x100d3690 in syscall_handler (unused=0x0) at syscall_user.c:80 It looks like the mode and nr values are screwed up for the 2nd case, but looking at the pre-processor output shows the code as being, int init_module(void) { printk("about to run init_waitqueue_head\n"); init_waitqueue_head(&wait_list); printk("about to run wake_up_interruptible\n"); __wake_up(( &wait_list ),1 , 1) ; printk("success now unloading\n"); return -1; } could gdb be conflused? -- +---------------------------------+ | David Fries | | df...@ma... | +---------------------------------+ |