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

Takashi Iwai tiwai at suse.de
Thu Jul 17 20:40:33 CEST 2008


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


More information about the Alsa-devel mailing list