linux/sound/pci
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
..
ac97 [ALSA] ac97_codec: increase timeout for analog subsections 2009-04-21 15:17:54 +02:00
ali5451 dma-mapping: replace all DMA_31BIT_MASK macro with DMA_BIT_MASK(31) 2009-04-07 08:31:11 -07:00
au88x0 dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
aw2 dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
ca0106 dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
cs46xx Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
cs5535audio dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
ctxfi ALSA: ctxfi - Fix Oops at mmapping 2009-06-02 08:40:51 +02:00
echoaudio ALSA: indigo-express: add missing 64KHz flags 2009-04-28 11:19:39 +02:00
emu10k1 Merge branch 'fix/misc' into for-linus 2009-04-19 11:40:02 +02:00
hda ALSA: hda - Fix init verbs of AD1884A mobile model 2009-04-23 08:24:48 +02:00
ice1712 dma-mapping: replace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28) 2009-04-07 08:31:12 -07:00
korg1212 ALSA: Add missing SNDRV_PCM_INFO_BATCH flag to some drivers 2009-04-28 15:06:44 +02:00
mixart dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
nm256 ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
oxygen Merge branch 'topic/snd_card_new-err' into for-linus 2009-03-24 00:35:35 +01:00
pcxhr dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
riptide ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
rme9652 Merge branch 'topic/hwdep-cleanup' into for-linus 2009-03-24 00:35:41 +01:00
trident dma-mapping: replace all DMA_30BIT_MASK macro with DMA_BIT_MASK(30) 2009-04-07 08:31:11 -07:00
vx222 Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
ymfpci Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
ad1889.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
ad1889.h
ak4531_codec.c ALSA: Fix missing KERN_* prefix to printk in sound/pci 2009-02-05 16:11:31 +01:00
als300.c dma-mapping: replace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28) 2009-04-07 08:31:12 -07:00
als4000.c dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
atiixp_modem.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
atiixp.c ALSA: Atiixp: Add SSID for mute_led quirk (unknown HP model) 2009-04-20 13:42:07 +02:00
azt3328.c dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
azt3328.h ALSA: sound/pci/azt3328.h: no variables for enums 2008-07-27 10:22:25 +02:00
bt87x.c ALSA: Add missing SNDRV_PCM_INFO_BATCH flag to some drivers 2009-04-28 15:06:44 +02:00
cmipci.c ALSA: Fix Trivial Warnining in sound/pci/cmipci.c 2009-04-27 13:53:13 +02:00
cs4281.c Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
cs5530.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
ens1370.c Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
ens1371.c
es1938.c dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
es1968.c dma-mapping: replace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28) 2009-04-07 08:31:12 -07:00
fm801.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
intel8x0.c Merge commit 'alsa/master' into for-linus 2009-04-22 09:09:29 +02:00
intel8x0m.c Merge branch 'topic/intel8x0' into for-linus 2009-03-24 00:36:13 +01:00
Kconfig ALSA: ctxfi - Add depends on X86 2009-05-20 16:47:59 +02:00
maestro3.c dma-mapping: replace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28) 2009-04-07 08:31:12 -07:00
Makefile ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
rme32.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
rme96.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
sis7019.c dma-mapping: replace all DMA_30BIT_MASK macro with DMA_BIT_MASK(30) 2009-04-07 08:31:11 -07:00
sis7019.h [ALSA] sis7019: support the SiS 7019 Audio Accelerator 2008-01-31 17:29:36 +01:00
sonicvibes.c dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
via82xx_modem.c Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
via82xx.c Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00