Re: 2.6.11-rc2-mm1 kernel BUG at kernel/workqueue.c:104

From: Andrew Morton
Date: Tue Jan 25 2005 - 00:45:35 EST


Zwane Mwaikambo <zwane@xxxxxxxxxxxxxxxx> wrote:
>
> I pressed a key on a VT during boot and got the following;
>
> usb-storage: device scan complete
> ------------[ cut here ]------------
> kernel BUG at kernel/workqueue.c:104!
> invalid operand: 0000 [#1]
> PREEMPT SMP DEBUG_PAGEALLOC
> Modules linked in:
> CPU: 0
> EIP: 0060:[<c01314af>] Not tainted VLI
> EFLAGS: 00010017 (2.6.11-rc2-mm1)
> EIP is at queue_work+0x8f/0xa0
> eax: f5ebe0e4 ebx: f5ebe0e0 ecx: 00000001 edx: 00000000
> esi: c19adef8 edi: 00000000 ebp: f5e4fe14 esp: f5e4fe08
> ds: 007b es: 007b ss: 0068
> Process udev.hotplug (pid: 1351, threadinfo=f5e4e000 task=f5817ac0)
> Stack: c1815000 0000001c 00000001 f5e4fe20 c0388d3d c1815000 f5e4fe2c c03890c1
> 00000002 f5e4fe64 c0389be1 f5e4ffc4 c011a7b8 00000000 00000002 00000086
> 00000001 00000020 c1815000 f5e4ffc4 00000001 f7b09674 0000001c f5e4fe80
> Call Trace:
> [<c010403a>] show_stack+0x7a/0x90
> [<c01041c6>] show_registers+0x156/0x1c0
> [<c01043e0>] die+0x100/0x190
> [<c0104819>] do_invalid_op+0xa9/0xc0
> [<c0103cc7>] error_code+0x2b/0x30
> [<c0388d3d>] fn_enter+0x1d/0x60
> [<c03890c1>] k_spec+0x31/0x50
> [<c0389be1>] kbd_keycode+0x1a1/0x300
> [<c0389dd3>] kbd_event+0x93/0xf0
> [<c04d2963>] input_event+0xd3/0x3b0
> [<c04d74cf>] atkbd_report_key+0x2f/0x70
> [<c04d76fe>] atkbd_interrupt+0x1ee/0x510
> [<c03abbf3>] serio_interrupt+0x43/0x74
> [<c03ac84d>] i8042_interrupt+0x17d/0x270
> [<c0141e8a>] handle_IRQ_event+0x2a/0x60

I can't reproduce it from a quick test here. I'd assume that the keystroke
came in before the vt's workqueue is initialised. fn_enter() calls
put_queue() calls con_schedule_flip() calls schedule_work() which goes BUG:

BUG_ON(!list_empty(&work->entry));

I bet the list_head pointers are null.

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