Re: [boot crash, bisected] in 9f240a55 "ALSA: opti93x: use cs4231 lib"

From: Takashi Iwai
Date: Thu Jul 17 2008 - 14:40:48 EST


At Thu, 17 Jul 2008 19:06:57 +0200,
Ingo Molnar wrote:
>
>
> hi Jaroslav, et al,
>
> * Jaroslav Kysela <perex@xxxxxxxx> 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@xxxxx>
> | 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);
}
--
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/