Hi, We've been experiencing kernel OOPSes with the alsaplayer alsa-final output plugin. The problems appeared in the 0.9.0rc3 release and forward. The same code works fine on 0.9.0rc1. The OOP is triggered at close time (snd_pcm_close()) and only then. This behaviour was duplicated on at least 2 systems with different soundcards, each time with alsaplayer 0.99.71 and alsa 0.9.0rc3 ...
I just noticed that the OOPS doesn't happen if I call snd_pcm_drain() just before snd_pcm_close(). It makes sense, but the OOPS should never happen right? See attachement for a trace.. Thanks, Andy
ksymoops 2.4.6 on i686 2.4.19. Options used -V (default) -k /proc/ksyms (default) -l /proc/modules (default) -o /lib/modules/2.4.19/ (default) -m /boot/System.map-2.4.19 (default) Warning: You did not tell me where to find symbol information. I will assume that the log matches the kernel and modules that are running right now and I'll use the default options above for symbol resolution. If the current kernel and/or modules do not match the log, you can get more accurate output by telling me the kernel version and where to find map, modules, ksyms etc. ksymoops -h explains the options. Unable to handle kernel paging request at virtual address 00003368 c02bdcc6 *pde = 00000000 Oops: 0002 CPU: 0 EIP: 0010:[<c02bdcc6>] Tainted: PF Using defaults from ksymoops -t elf32-i386 -a i386 EFLAGS: 00010246 eax: 00000000 ebx: 00001000 ecx: 00001000 edx: 08303f58 esi: 08302f58 edi: 00003368 ebp: d9152c00 esp: da091cac ds: 0018 es: 0018 ss: 0018 Process alsaplayer (pid: 8257, stackpage=da091000) Stack: 00000000 00001000 de36cb80 e0bb5ec0 00001000 e0ba9f86 00003368 08302f58 00001000 de36cb80 00024c01 d4bd2000 00000400 00024cda d9602000 e0baa248 de36cb80 00000cda 08302f58 00000000 00000400 00072b69 00002000 da090000 Call Trace: [<e0bb5ec0>] [<e0ba9f86>] [<e0baa248>] [<e0ba5700>] [<e0baa4a6>] [<e0ba9ef0>] [<e0ba526f>] [<c0257002>] [<c02564a0>] [<c0256011>] [<c0254214>] [<c0254381>] [<c01166e6>] [<c012175e>] [<c0121a86>] [<c0122284>] [<c0120dcc>] [<c011d282>] [<c011d196>] [<c01447fa>] [<c0108d77>] Code: f3 aa 58 59 e9 55 b0 ff ff ba f2 ff ff ff e9 9e b0 ff ff ba >>EIP; c02bdcc6 <rwsem_down_failed_common+3046/30bb> <===== >>ebp; d9152c00 <_end+18dbe59c/20561a1c> >>esp; da091cac <_end+19cfd648/20561a1c> Trace; e0bb5ec0 <[snd-trident]snd_trident_playback_ops+0/40> Trace; e0ba9f86 <[snd-pcm]snd_pcm_lib_write_transfer+96/b0> Trace; e0baa248 <[snd-pcm]snd_pcm_lib_write1+2a8/470> Trace; e0ba5700 <[snd-pcm]snd_pcm_playback_ioctl+0/40> Trace; e0baa4a6 <[snd-pcm]snd_pcm_lib_write+96/b0> Trace; e0ba9ef0 <[snd-pcm]snd_pcm_lib_write_transfer+0/b0> Trace; e0ba526f <[snd-pcm]snd_pcm_playback_ioctl1+17f/320> Trace; c0257002 <mousedev_event+c2/230> Trace; c02564a0 <input_event+e0/2f0> Trace; c0256011 <hidinput_hid_event+81/200> Trace; c0254214 <hid_process_event+34/40> Trace; c0254381 <hid_input_field+161/360> Trace; c01166e6 <wake_up_process+16/20> Trace; c012175e <deliver_signal+6e/70> Trace; c0121a86 <kill_something_info+b6/170> Trace; c0122284 <sys_kill+54/60> Trace; c0120dcc <run_timer_list+11c/140> Trace; c011d282 <bh_action+22/40> Trace; c011d196 <tasklet_hi_action+46/70> Trace; c01447fa <sys_ioctl+aa/1b0> Trace; c0108d77 <system_call+33/38> Code; c02bdcc6 <rwsem_down_failed_common+3046/30bb> 00000000 <_EIP>: Code; c02bdcc6 <rwsem_down_failed_common+3046/30bb> <===== 0: f3 aa repz stos %al,%es:(%edi) <===== Code; c02bdcc8 <rwsem_down_failed_common+3048/30bb> 2: 58 pop %eax Code; c02bdcc9 <rwsem_down_failed_common+3049/30bb> 3: 59 pop %ecx Code; c02bdcca <rwsem_down_failed_common+304a/30bb> 4: e9 55 b0 ff ff jmp ffffb05e <_EIP+0xffffb05e> c02b8d24 <__generic_copy_from_user+44/70> Code; c02bdccf <rwsem_down_failed_common+304f/30bb> 9: ba f2 ff ff ff mov $0xfffffff2,%edx Code; c02bdcd4 <rwsem_down_failed_common+3054/30bb> e: e9 9e b0 ff ff jmp ffffb0b1 <_EIP+0xffffb0b1> c02b8d77 <__strncpy_from_user+27/40> Code; c02bdcd9 <rwsem_down_failed_common+3059/30bb> 13: ba 00 00 00 00 mov $0x0,%edx 1 warning issued. Results may not be reliable.