Skip to contentSkip to conversation

iwldvm lock oops

BUG Fengguang Wu 2 participants 3 messages Jun 13, 2012

lore
Share & tools
lore
#0 lore raw

Hi Emmanuel,

The kernel compiled from commit b35032f ("iwlwifi: don't configure a txq that is being disabled") in

git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git master

triggers a kernel oops below.

That particular commit may well not be the root cause. I'm just hoping you may have better idea which recent change may be relevant.

[   48.050140] iwldvm: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:
[   48.195291] iwldvm: Copyright(c) 2003-2012 Intel Corporation
[   48.269132] ------------[ cut here ]------------
[   48.272840] WARNING: at /c/kernel-tests/usb/kernel/mutex.c:198 __mutex_lock_common+0xf6/0x387()
[   48.272840] Hardware name: Bochs
[   48.272840] Modules linked in:
[   48.272840] Pid: 1, comm: swapper/0 Not tainted 3.5.0-rc1+ #1
[   48.272840] Call Trace:
[   48.272840]  [<ffffffff81090271>] warn_slowpath_common+0x83/0x9c
[   48.272840]  [<ffffffff820b2afb>] ? iwl_opmode_register+0x23/0xbb
[   48.272840]  [<ffffffff810902a4>] warn_slowpath_null+0x1a/0x1c
[   48.272840]  [<ffffffff82e93011>] __mutex_lock_common+0xf6/0x387
[   48.272840]  [<ffffffff820b2afb>] ? iwl_opmode_register+0x23/0xbb
[   48.272840]  [<ffffffff82e93615>] ? __mutex_unlock_slowpath+0x116/0x126
[   48.272840]  [<ffffffff810ddb01>] ? trace_hardirqs_on_caller+0x123/0x17f
[   48.272840]  [<ffffffff82e933b1>] mutex_lock_nested+0x40/0x45
[   48.272840]  [<ffffffff820b2afb>] iwl_opmode_register+0x23/0xbb
[   48.272840]  [<ffffffff84660e4f>] ? mwl8k_driver_init+0x1b/0x1b
[   48.272840]  [<ffffffff84660ea1>] iwl_init+0x52/0x73
[   48.272840]  [<ffffffff81002099>] do_one_initcall+0x7f/0x13a
[   48.272840]  [<ffffffff84603d39>] kernel_init+0x170/0x1f8
[   48.272840]  [<ffffffff84603590>] ? do_early_param+0x8c/0x8c
[   48.272840]  [<ffffffff82e9db74>] kernel_thread_helper+0x4/0x10
[   48.272840]  [<ffffffff82e95db0>] ? retint_restore_args+0x13/0x13
[   48.272840]  [<ffffffff84603bc9>] ? start_kernel+0x3e7/0x3e7
[   48.272840]  [<ffffffff82e9db70>] ? gs_change+0x13/0x13
[   48.272840] ---[ end trace 695977a38adc57f4 ]---
[   48.272840] BUG: unable to handle kernel NULL pointer dereference at           (null)
[   48.272840] IP: [<ffffffff816c0d70>] __list_add+0x3d/0xad
[   48.272840] PGD 0
[   48.272840] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
[   48.272840] CPU 0
[   48.272840] Modules linked in:
[   48.272840]
[   48.272840] Pid: 1, comm: swapper/0 Tainted: G        W    3.5.0-rc1+ #1 Bochs Bochs
[   48.272840] RIP: 0010:[<ffffffff816c0d70>]  [<ffffffff816c0d70>] __list_add+0x3d/0xad
[   48.272840] RSP: 0018:ffff880017365db0  EFLAGS: 00010046
[   48.272840] RAX: ffffffff853e7100 RBX: 0000000000000000 RCX: 0000000000000000
[   48.272840] RDX: ffffffff853e7100 RSI: 0000000000000000 RDI: ffff880017365e10
[   48.272840] RBP: ffff880017365dd0 R08: 0000000000000000 R09: ffffffff85139e70
[   48.272840] R10: 00000000ffffffff R11: 00000000ffffffff R12: ffffffff853e7100
[   48.272840] R13: ffff880017365e10 R14: ffff880017360040 R15: ffffffff820b2afb
[   48.272840] FS:  0000000000000000(0000) GS:ffff880017400000(0000) knlGS:0000000000000000
[   48.272840] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   48.272840] CR2: 0000000000000000 CR3: 0000000004014000 CR4: 00000000000006f0
[   48.272840] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   48.272840] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[   48.272840] Process swapper/0 (pid: 1, threadinfo ffff880017364000, task ffff880017360040)
[   48.272840] Stack:
[   48.272840]  00000000ffffffff ffffffff853e70b0 0000000000000246 ffffffff853e70b8
[   48.272840]  ffff880017365e60 ffffffff82e93045 ffffffff820b2afb ffff880017360040
[   48.272840]  ffffffff82e93615 ffffffff853e7100 0000000000000002 ffffffff853e7128
[   48.272840] Call Trace:
[   48.272840]  [<ffffffff82e93045>] __mutex_lock_common+0x12a/0x387
[   48.272840]  [<ffffffff820b2afb>] ? iwl_opmode_register+0x23/0xbb
[   48.272840]  [<ffffffff82e93615>] ? __mutex_unlock_slowpath+0x116/0x126
[   48.272840]  [<ffffffff82e933b1>] mutex_lock_nested+0x40/0x45
[   48.272840]  [<ffffffff820b2afb>] iwl_opmode_register+0x23/0xbb
[   48.272840]  [<ffffffff84660e4f>] ? mwl8k_driver_init+0x1b/0x1b
[   48.272840]  [<ffffffff84660ea1>] iwl_init+0x52/0x73
[   48.272840]  [<ffffffff81002099>] do_one_initcall+0x7f/0x13a
[   48.272840]  [<ffffffff84603d39>] kernel_init+0x170/0x1f8
[   48.272840]  [<ffffffff84603590>] ? do_early_param+0x8c/0x8c
[   48.272840]  [<ffffffff82e9db74>] kernel_thread_helper+0x4/0x10
[   48.272840]  [<ffffffff82e95db0>] ? retint_restore_args+0x13/0x13
[   48.272840]  [<ffffffff84603bc9>] ? start_kernel+0x3e7/0x3e7
[   48.272840]  [<ffffffff82e9db70>] ? gs_change+0x13/0x13
[   48.272840] Code: 41 53 4c 8b 42 08 49 39 f0 74 20 49 89 d1 48 89 f1 48 c7 c2 88 d8 a9 83 be 1d 00 00 00 48 c7 c7 36 d7 a9 83 31 c0 e8 77 f5 9c ff <4c> 8b 03 4d 39 e0 74 20 49 89 d9 4c 89 e1 48 c7 c2 d5 d8 a9 83
[   48.272840] RIP  [<ffffffff816c0d70>] __list_add+0x3d/0xad
[   48.272840]  RSP <ffff880017365db0>
[   48.272840] CR2: 0000000000000000
[   48.272840] ---[ end trace 695977a38adc57f5 ]---
[   48.272840] note: swapper/0[1] exited with preempt_count 1
[   53.626234] swapper/0 (1) used greatest stack depth: 3736 bytes left
[   53.691089] BUG: scheduling while atomic: swapper/0/1/0x10000002
[   53.757370] INFO: lockdep is turned off.
[   53.822948] Modules linked in:
[   53.884699] Pid: 1, comm: swapper/0 Tainted: G      D W    3.5.0-rc1+ #1
[   53.947786] Call Trace:
[   54.009694]  [<ffffffff82e45fc1>] __schedule_bug+0x66/0x75
[   54.074043]  [<ffffffff82e93ca9>] __schedule+0x95/0x5ff
[   54.138611]  [<ffffffff810bcc33>] __cond_resched+0x27/0x32
[   54.201513]  [<ffffffff82e9426f>] _cond_resched+0x19/0x22
[   54.263749]  [<ffffffff82e9339b>] mutex_lock_nested+0x2a/0x45
[   54.328471]  [<ffffffff81134392>] perf_event_exit_task+0x2d/0x1cc
[   54.390278]  [<ffffffff81094c39>] do_exit+0x321/0x81f
[   54.454589]  [<ffffffff810929ca>] ? kmsg_dump+0x87/0x145
[   54.520481]  [<ffffffff82e96b15>] oops_end+0xb0/0xb8
[   54.587708]  [<ffffffff82e4522e>] no_context+0x250/0x27b
[   54.655396]  [<ffffffff82e45421>] __bad_area_nosemaphore+0x1c8/0x1e8
[   54.723800]  [<ffffffff8111e7c8>] ? irq_trace+0x14/0x21
[   54.793704]  [<ffffffff82e45454>] bad_area_nosemaphore+0x13/0x15
[   54.863119]  [<ffffffff82e98fba>] do_page_fault+0x1b3/0x3d6
[   54.932158]  [<ffffffff810d9e8c>] ? trace_hardirqs_off+0xd/0xf
[   55.003047]  [<ffffffff810d9e8c>] ? trace_hardirqs_off+0xd/0xf
[   55.067450]  [<ffffffff82e95997>] ? _raw_spin_unlock_irqrestore+0x3e/0x61
[   55.131685]  [<ffffffff8111e7c8>] ? irq_trace+0x14/0x21
[   55.193687]  [<ffffffff8111eee0>] ? time_hardirqs_off+0x26/0x2a
[   55.256207]  [<ffffffff82e962a6>] ? error_sti+0x5/0x6
[   55.318594]  [<ffffffff816aff3d>] ? trace_hardirqs_off_thunk+0x3a/0x3c
[   55.382552]  [<ffffffff810d9e00>] ? trace_hardirqs_off_caller+0x1f/0x9e
[   55.446638]  [<ffffffff816aff3d>] ? trace_hardirqs_off_thunk+0x3a/0x3c
[   55.509327]  [<ffffffff820b2afb>] ? iwl_opmode_register+0x23/0xbb
[   55.570097]  [<ffffffff82e96055>] page_fault+0x25/0x30
[   55.630741]  [<ffffffff820b2afb>] ? iwl_opmode_register+0x23/0xbb
[   55.690780]  [<ffffffff816c0d70>] ? __list_add+0x3d/0xad
[   55.750381]  [<ffffffff82e93045>] __mutex_lock_common+0x12a/0x387
[   55.808248]  [<ffffffff820b2afb>] ? iwl_opmode_register+0x23/0xbb
[   55.865275]  [<ffffffff82e93615>] ? __mutex_unlock_slowpath+0x116/0x126
[   55.922696]  [<ffffffff82e933b1>] mutex_lock_nested+0x40/0x45
[   55.981706]  [<ffffffff820b2afb>] iwl_opmode_register+0x23/0xbb
[   56.040514]  [<ffffffff84660e4f>] ? mwl8k_driver_init+0x1b/0x1b
[   56.098181]  [<ffffffff84660ea1>] iwl_init+0x52/0x73
[   56.155184]  [<ffffffff81002099>] do_one_initcall+0x7f/0x13a
[   56.216123]  [<ffffffff84603d39>] kernel_init+0x170/0x1f8
[   56.274993]  [<ffffffff84603590>] ? do_early_param+0x8c/0x8c
[   56.335556]  [<ffffffff82e9db74>] kernel_thread_helper+0x4/0x10
[   56.394430]  [<ffffffff82e95db0>] ? retint_restore_args+0x13/0x13
[   56.454955]  [<ffffffff84603bc9>] ? start_kernel+0x3e7/0x3e7
[   56.514499]  [<ffffffff82e9db70>] ? gs_change+0x13/0x13
[   56.574506] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
[   56.574506]
[   56.578138] [sched_delayed] sched: RT throttling activated

Thanks,
Fengguang

#1 lore raw

Hi Fengguang,

Quoted 9 lines

The kernel compiled from commit b35032f ("iwlwifi: don't configure a txq that is being disabled") in

git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git master

triggers a kernel oops below.

That particular commit may well not be the root cause. I'm just hoping you may have better idea which recent change may be relevant.

Thanks for the report. This particular problem is due to the fact that we have the objects linked into the kernel in the wrong order, we have a fix pending for it. git.kernel.org is down right now so I can't link to it, but it's in the iwlwifi/iwlwifi-next.git tree:

commit 65fe593a519c4d7c62289d3b0a17ca412e95b037

Author: Brandon Misemer <[email protected]>
Date:   Fri Jun 8 14:59:27 2012 -0700

iwlwifi: Fix Makefile build order for built-in driver

johannes

#2 lore raw

Hi Johannes,

Quoted 17 lines · Johannes Berg

Hi Fengguang,

Quoted 9 lines

The kernel compiled from commit b35032f ("iwlwifi: don't configure a txq that is being disabled") in

git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git master

triggers a kernel oops below.

That particular commit may well not be the root cause. I'm just hoping you may have better idea which recent change may be relevant.

Thanks for the report. This particular problem is due to the fact that we have the objects linked into the kernel in the wrong order, we have a fix pending for it. git.kernel.org is down right now so I can't link to it, but it's in the iwlwifi/iwlwifi-next.git tree:

Quoted 5 lines

commit 65fe593a519c4d7c62289d3b0a17ca412e95b037

Author: Brandon Misemer <[email protected]>
Date:   Fri Jun 8 14:59:27 2012 -0700

iwlwifi: Fix Makefile build order for built-in driver

Good to know this. Thank you for the quick feedback!

Thanks,
Fengguang