Subject: Re: [PATCH] AOA: Convert onyx and tas codecs to new-style i2c drivers

From: Jean Delvare <[email-masked]>
Date: Tue, 14 Apr 2009 21:49:49 +0200

Hi Johannes,

On Tue, 14 Apr 2009 19:41:55 +0200, Johannes Berg wrote:
> Alright, with the patch Andreas pointed out it loads, but segfaults, as
> below. Works fine without your patch.

Thanks for the quick test and sorry that it didn't work. I'll take a
look at the trace below and try to figure out what went wrong.

Did you remove the 2 MODULE_DEVICE_TABLE from my patch? If you didn't,
please pick the latest version of my patch which doesn't have them:
ftp://ftp.kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/sound-aoa-codecs-convert-to-new-style.patch
I don't think they are the reason of the crash, but who knows...

Are you using a machine with onyx or tas? I guess onyx but I want to be
sure.

> [   10.267137] snd-aoa-codec-onyx: found pcm3052
> [   10.267238] PM: Adding info for i2c:2-0046
> [   10.267926] snd-aoa-fabric-layout: platform-onyx-codec-ref doesn't match!

Does this error also happen without my patch? It would help to see the
logs without my patch to see where it starts diverging.

> [   10.267930] snd-aoa: fabric didn't like codec onyx
> [   10.268041] aoa_codec_onyx: probe of 2-0046 failed with error -22

Apparently aoa_codec_register failed in onyx_i2c_probe(), I have to
understand why.

> [   10.268067] Unable to handle kernel paging request for data at address 0x000000d0
> [   10.268070] Faulting instruction address: 0xd000000001291d68
> [   10.268074] Oops: Kernel access of bad area, sig: 11 [#1]
> [   10.268076] PREEMPT SMP NR_CPUS=4 PowerMac
> [   10.268080] Modules linked in: snd_aoa_codec_onyx(+) firewire_ohci usbhid(+) arc4 snd_aoa_fabric_layout(+) snd_aoa ecb firewire_core crc_itu_t snd_aoa_i2sbus snd_aoa_soundbus iwlagn iwlcore snd_pcm snd_page_alloc ohci_hcd snd_timer ohci1394 ehci_hcd rfkill led_class ieee1394 usbcore snd mac80211 soundcore cfg80211
> [   10.268109] NIP: d000000001291d68 LR: d000000001291d20 CTR: 0000000000000000
> [   10.268113] REGS: c0000001e19a34e0 TRAP: 0300   Not tainted  (2.6.30-rc1-wl-dirty)
> [   10.268115] MSR: 9000000000009032 <EE,ME,IR,DR>  CR: 22000488  XER: 00000000
> [   10.268124] DAR: 00000000000000d0, DSISR: 0000000040000000
> [   10.268127] TASK = c000000205cd9d30[3391] 'modprobe' THREAD: c0000001e19a0000 CPU: 1
> [   10.268130] GPR00: d000000001291d20 c0000001e19a3760 d00000000129cdd8 c000000200c177e0 
> [   10.268135] GPR04: c000000205cda760 0000000000000007 c000000205cd9d68 c000000205cd9d68 
> [   10.268140] GPR08: 0000000000000000 0000000000000000 c000000200c179f0 c0000000010ab590 
> [   10.268145] GPR12: 0000000088000488 c0000000009c2500 0000000000000000 0000000000000000 
> [   10.268150] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
> [   10.268155] GPR20: 0000000000000000 0000000000000001 000000000054bda0 00000000001ed780 
> [   10.268160] GPR24: 0000000000548080 00000000008c1858 c000000000847b18 0000000000000046 
> [   10.268165] GPR28: c000000217ff56d8 c000000200a59e68 d00000000129c990 c0000001e19a37d8 
> [   10.268175] NIP [d000000001291d68] .onyx_create+0xc0/0x100 [snd_aoa_codec_onyx]
> [   10.268181] LR [d000000001291d20] .onyx_create+0x78/0x100 [snd_aoa_codec_onyx]
> [   10.268183] Call Trace:
> [   10.268188] [c0000001e19a3760] [d000000001291d20] .onyx_create+0x78/0x100 [snd_aoa_codec_onyx] (unreliable)
> [   10.268196] [c0000001e19a3840] [c00000000037f900] .__attach_adapter+0x4c/0x6c
> [   10.268203] [c0000001e19a38d0] [c0000000002f7e34] .class_for_each_device+0xb4/0x10c
> [   10.268208] [c0000001e19a3990] [c00000000037ecec] .i2c_register_driver+0xf0/0x128
> [   10.268214] [c0000001e19a3a30] [d000000001291f20] .onyx_init+0x20/0x668 [snd_aoa_codec_onyx]
> [   10.268219] [c0000001e19a3ab0] [c000000000007f68] .do_one_initcall+0x9c/0x1dc
> [   10.268225] [c0000001e19a3d90] [c000000000099b0c] .SyS_init_module+0xd8/0x238
> [   10.268229] [c0000001e19a3e30] [c000000000007554] syscall_exit+0x0/0x40
> [   10.268232] Instruction dump:
> [   10.268235] a0090022 8129001e b0010074 91210070 48000341 e8410028 2fa30000 3900ffed 
> [   10.268242] 419e0028 e9230020 39430210 39000000 <e96900d0> 380900c8 f94900d0 f8030210 
> [   10.268253] BUG: using smp_processor_id() in preemptible [00000000] code: modprobe/3391
> [   10.268258] caller is .die+0x188/0x1d4
> [   10.268260] Call Trace:
> [   10.268264] [c0000001e19a3210] [c00000000000fcc4] .show_stack+0x6c/0x174 (unreliable)
> [   10.268271] [c0000001e19a32c0] [c00000000029e65c] .debug_smp_processor_id+0xe0/0x118
> [   10.268275] [c0000001e19a3350] [c000000000020918] .die+0x188/0x1d4
> [   10.268280] [c0000001e19a33f0] [c000000000027f74] .bad_page_fault+0xb8/0xd4
> [   10.268284] [c0000001e19a3470] [c00000000000524c] handle_page_fault+0x3c/0x5c
> [   10.268293] --- Exception: 300 at .onyx_create+0xc0/0x100 [snd_aoa_codec_onyx]
> [   10.268295]     LR = .onyx_create+0x78/0x100 [snd_aoa_codec_onyx]
> [   10.268299] [c0000001e19a3840] [c00000000037f900] .__attach_adapter+0x4c/0x6c
> [   10.268304] [c0000001e19a38d0] [c0000000002f7e34] .class_for_each_device+0xb4/0x10c
> [   10.268308] [c0000001e19a3990] [c00000000037ecec] .i2c_register_driver+0xf0/0x128
> [   10.268315] [c0000001e19a3a30] [d000000001291f20] .onyx_init+0x20/0x668 [snd_aoa_codec_onyx]
> [   10.268319] [c0000001e19a3ab0] [c000000000007f68] .do_one_initcall+0x9c/0x1dc
> [   10.268323] [c0000001e19a3d90] [c000000000099b0c] .SyS_init_module+0xd8/0x238
> [   10.268328] [c0000001e19a3e30] [c000000000007554] syscall_exit+0x0/0x40
> [   10.268331] ---[ end trace dbcf63aa775331e7 ]---
> 

-- 
Jean Delvare