Takashi Iwai
cd391e206f
ALSA: ctxfi - Remove PAGE_SIZE limitation
...
Remove the limitation of PAGE_SIZE to be 4k by defining the own
page size and macros for 4k. 8kb page size could be natively supported,
but it's disabled right now for simplicity.
Also, clean up using upper_32_bits() macro.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-06-02 15:54:46 +02:00
Takashi Iwai
8a4259bf89
ALSA: ctxfi - Fix Oops at mmapping
...
Replace a spinlock with a mutex protecting the vm block list at
mmap / munmap calls, which caused Oops like below:
BUG: sleeping function called from invalid context at mm/slub.c:1599
in_atomic(): 0, irqs_disabled(): 1, pid: 32065, name: xine
Pid: 32065, comm: xine Tainted: P 2.6.29.4-75.fc10.x86_64 #1
Call Trace:
[<ffffffff81040685>] __might_sleep+0x105/0x10a
[<ffffffff810c9fae>] kmem_cache_alloc+0x32/0xe2
[<ffffffffa08e3110>] ct_vm_map+0xfa/0x19e [snd_ctxfi]
[<ffffffffa08e1a07>] ct_map_audio_buffer+0x4c/0x76 [snd_ctxfi]
[<ffffffffa08e2aa5>] atc_pcm_playback_prepare+0x1d7/0x2a8 [snd_ctxfi]
[<ffffffff8105ef3f>] ? up_read+0x9/0xb
[<ffffffff81186b61>] ? __up_read+0x7c/0x87
[<ffffffffa08e36a6>] ct_pcm_playback_prepare+0x39/0x60 [snd_ctxfi]
[<ffffffffa0886bcb>] snd_pcm_do_prepare+0x16/0x28 [snd_pcm]
[<ffffffffa08867c7>] snd_pcm_action_single+0x2d/0x5b [snd_pcm]
[<ffffffffa08881f3>] snd_pcm_action_nonatomic+0x52/0x6a [snd_pcm]
[<ffffffffa088a723>] snd_pcm_common_ioctl1+0x404/0xc79 [snd_pcm]
[<ffffffff810c52c8>] ? alloc_pages_current+0xb9/0xc2
[<ffffffff810c9402>] ? new_slab+0x1a5/0x1cb
[<ffffffff810ab9ea>] ? vma_prio_tree_insert+0x23/0xc1
[<ffffffffa088b411>] snd_pcm_playback_ioctl1+0x213/0x230 [snd_pcm]
[<ffffffff810b6c20>] ? mmap_region+0x397/0x4c9
[<ffffffffa088bd9b>] snd_pcm_playback_ioctl+0x2e/0x36 [snd_pcm]
[<ffffffff810ddc64>] vfs_ioctl+0x2a/0x78
[<ffffffff810de130>] do_vfs_ioctl+0x462/0x4a2
[<ffffffff81029cef>] ? default_spin_lock_flags+0x9/0xe
[<ffffffff81374647>] ? trace_hardirqs_off_thunk+0x3a/0x6c
[<ffffffff810de1c5>] sys_ioctl+0x55/0x77
[<ffffffff8101133a>] system_call_fastpath+0x16/0x1b
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-06-02 08:40:51 +02:00