At Thu, 17 Jul 2008 19:06:57 +0200, Ingo Molnar wrote:
hi Jaroslav, et al,
- Jaroslav Kysela perex@perex.cz wrote:
ALSA: opti93x: use cs4231 lib
-tip testing found the following bootup crash on latest -git:
[ 44.827459] calling alsa_card_opti9xx_init+0x0/0x20 [ 44.830435] bus: 'isa': add driver opti93x [ 44.833503] device: 'opti93x.0': device_add [ 44.837804] bus: 'isa': add device opti93x.0 [ 44.841820] bus: 'isa': driver_probe_device: matched device opti93x.0 with driver opti93x [ 44.845327] bus: 'isa': really_probe: probing driver opti93x with device opti93x.0 [ 44.851601] BUG: unable to handle kernel NULL pointer dereference at 00000010 [ 44.855329] IP: [<786c0782>] snd_card_opti9xx_free+0x12/0x40 [ 44.859370] *pde = 00000000 [ 44.862651] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC [ 44.862651] [ 44.862651] Pid: 1, comm: swapper Not tainted (2.6.26-00085-g9f240a5-dirty #20182) [ 44.862651] EIP: 0060:[<786c0782>] EFLAGS: 00010286 CPU: 0 [ 44.862651] EIP is at snd_card_opti9xx_free+0x12/0x40 [ 44.862651] EAX: 96892000 EBX: 00000000 ECX: 96892140 EDX: 786c0770 [ 44.862651] ESI: 9689229c EDI: 9689229c EBP: 9782fe10 ESP: 9782fe08 [ 44.862651] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 [ 44.862651] Process swapper (pid: 1, ti=9782f000 task=97848000 task.ti=9782f000) [ 44.862651] Stack: 96892000 00000286 9782fe1c 786a2b5b 96892000 9782fe48 786a349d 00000000 [ 44.862651] 00000286 78b34028 9688a100 00000286 9689229c fffff000 00000286 9689229c [ 44.862651] 9782fe84 787f4b18 968922c0 9689229f 9688dc00 96892000 00000004 00000000 [ 44.862651] Call Trace: [ 44.862651] [<786a2b5b>] ? snd_card_do_free+0x4b/0x120 [ 44.862651] [<786a349d>] ? snd_card_free+0x7d/0x90 [ 44.862651] [<787f4b18>] ? snd_opti9xx_isa_probe+0x158/0xa30 [ 44.862651] [<787f49c0>] ? snd_opti9xx_isa_probe+0x0/0xa30 [ 44.862651] [<7832580d>] ? isa_bus_probe+0x1d/0x30 [ 44.862651] [<783229c0>] ? driver_probe_device+0xa0/0x1c0 [ 44.862651] [<78322b58>] ? __device_attach+0x8/0x10 [ 44.862651] [<78321d60>] ? bus_for_each_drv+0x40/0x80 [ 44.862651] [<78322c04>] ? device_attach+0x84/0xa0 [ 44.862651] [<78322b50>] ? __device_attach+0x0/0x10 [ 44.862651] [<78321b97>] ? bus_attach_device+0x47/0x50 [ 44.862651] [<78320877>] ? device_add+0x3a7/0x500 [ 44.862651] [<783209e2>] ? device_register+0x12/0x20 [ 44.862651] [<783259c2>] ? isa_register_driver+0xa2/0x120 [ 44.862651] [<78153631>] ? ktime_get+0x11/0x30 [ 44.862651] [<78b78852>] ? alsa_card_opti9xx_init+0x12/0x20 [ 44.862651] [<78b3d679>] ? kernel_init+0x1d9/0x300 [ 44.862651] [<78b78840>] ? alsa_card_opti9xx_init+0x0/0x20 [ 44.862651] [<781192ce>] ? syscall_exit+0x8/0x28 [ 44.862651] [<78b3d4a0>] ? kernel_init+0x0/0x300 [ 44.862651] [<78b3d4a0>] ? kernel_init+0x0/0x300 [ 44.862651] [<7811a4e7>] ? kernel_thread_helper+0x7/0x10 [ 44.862651] ======================= [ 44.862651] Code: e8 8b 03 e8 11 e5 a9 ff 8b 03 5b 5d c3 b8 ff ff ff ff 5b 5d c3 8d 74 26 00 55 89 e5 56 53 8b b0 38 01 00 00 85 f6 74 21 8b 5e 1c <8b> 43 10 85 c0 7e 0f e8 32 5a aa ff 8b 43 10 89 da e8 68 5a aa [ 44.862651] EIP: [<786c0782>] snd_card_opti9xx_free+0x12/0x40 SS:ESP 0068:9782fe08 [ 44.866056] Kernel panic - not syncing: Fatal exception
i've bisected it down to:
| 9f240a558f94bea839e14c46c8fccf93bdd35ef6 is first bad commit | commit 9f240a558f94bea839e14c46c8fccf93bdd35ef6 | Author: Krzysztof Helt <krzysztof.h1@wp.pl> | Date: Wed Jun 11 12:26:32 2008 +0200 | | ALSA: opti93x: use cs4231 lib
The bisection log is:
# bad : [a3cf859f] Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 # good: [bce7f795] Linux 2.6.26 # bad : [d1794f2a] Merge branch 'bkl-removal' of git://git.lwn.net/linux-2.6 # good: [e30a44f3] x86: merge put_user. # bad : [6c118e4c] Merge git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6 # bad : [fe0a3fed] ALSA: Release v1.0.17 # bad : [dbac7cbe] ALSA: ASoC: Add missing includes # good: [f2690025] [ALSA] hda - Add support of Teradici controller # good: [f10485eb] [ALSA] ASoC: Add WM8990 driver # good: [0a1b42d5] sound: sound/oss/dmasound/: cleanups # good: [a6a950a4] ALSA: hda - Add a warning if pending IRQ is found # bad : [d751b231] ALSA: ASoC: Fix register cache sizes for Wolfson codecs # bad : [9f240a56] ALSA: opti93x: use cs4231 lib # good: [abf1f5af] ALSA: opti93x: add support for Opti93x codec in cs4231-lib
the patch below is a temporary workaround to keep my tests running.
Can send more info about the system in question - it has ISA (it's an old Pentium-3-Coppermine based laptop) but otherwise it doesnt have opti93x hw so the crash should be reproducible elsewhere as well.
Could you try the patch below?
thanks,
Takashi
--- diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c index 41c047e..d20abb2 100644 --- a/sound/isa/opti9xx/opti92x-ad1848.c +++ b/sound/isa/opti9xx/opti92x-ad1848.c @@ -688,7 +688,7 @@ static void snd_card_opti9xx_free(struct snd_card *card) if (chip) { #ifdef OPTi93X struct snd_cs4231 *codec = chip->codec; - if (codec->irq > 0) { + if (codec && codec->irq > 0) { disable_irq(codec->irq); free_irq(codec->irq, codec); }