linux/sound/pci/ctxfi
Takashi Iwai 635c265f32 ALSA: ctxfi - Replace atc lock to mutex
The spinlock in atc can cause a sleep in lock:

Kernel failure message 1:
BUG: sleeping function called from invalid context at mm/slub.c:1599
in_atomic(): 0, irqs_disabled(): 1, pid: 2537, name: gstreamer-prope
Pid: 2537, comm: gstreamer-prope Tainted: P
2.6.29.4-167.fc11.x86_64 #1
Call Trace:
  [<ffffffff8103ff0f>] __might_sleep+0x10b/0x110
  [<ffffffff810cd734>] __kmalloc+0x73/0x130
  [<ffffffffa0b4b142>] ? daio_rsc_init+0xaa/0x125 [snd_ctxfi]
  [<ffffffffa0b4b212>] dao_rsc_init+0x55/0x1c0 [snd_ctxfi]
  [<ffffffffa0b4b3d2>] dao_rsc_reinit+0x55/0x5d [snd_ctxfi]
  [<ffffffff813abd6c>] ? _spin_lock_irqsave+0x32/0x3b
  [<ffffffffa0b454fe>] atc_spdif_out_passthru+0x92/0x136 [snd_ctxfi]
  ...

Since the lock path is no critical path, it can be gracefully
replaced with a mutex.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-06-13 10:12:59 +02:00
..
ct20k1reg.h ALSA: ctxfi - Use native timer interrupt on emu20k1 2009-06-05 16:44:13 +02:00
ct20k2reg.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
ctamixer.c ALSA: ctxfi - Remove useless initializations and cast 2009-06-08 14:57:57 +02:00
ctamixer.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
ctatc.c ALSA: ctxfi - Replace atc lock to mutex 2009-06-13 10:12:59 +02:00
ctatc.h ALSA: ctxfi - Replace atc lock to mutex 2009-06-13 10:12:59 +02:00
ctdaio.c ALSA: ctxfi - Clean up probe routines 2009-06-08 18:10:32 +02:00
ctdaio.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
cthardware.c ALSA: ctxfi - Clean up probe routines 2009-06-08 18:10:32 +02:00
cthardware.h ALSA: ctxfi - Clean up probe routines 2009-06-08 18:10:32 +02:00
cthw20k1.c ALSA: ctxfi - Fix wrong model id for UAA 2009-06-08 18:30:37 +02:00
cthw20k1.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
cthw20k2.c ALSA: ctxfi - Fix / clean up hw20k2 chip code 2009-06-08 15:31:22 +02:00
cthw20k2.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
ctimap.c ALSA: ctxfi - Remove useless initializations and cast 2009-06-08 14:57:57 +02:00
ctimap.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
ctmixer.c ALSA: ctxfi - Remove useless initializations and cast 2009-06-08 14:57:57 +02:00
ctmixer.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
ctpcm.c ALSA: ctxfi - Clear PCM resources at hw_params and hw_free 2009-06-09 08:19:02 +02:00
ctpcm.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
ctresource.c ALSA: ctxfi - Remove useless initializations and cast 2009-06-08 14:57:57 +02:00
ctresource.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
ctsrc.c ALSA: ctxfi - Remove useless initializations and cast 2009-06-08 14:57:57 +02:00
ctsrc.h ALSA: SB X-Fi driver merge 2009-05-14 08:24:10 +02:00
cttimer.c ALSA: ctxfi - Add use_system_timer module option 2009-06-08 21:32:26 +02:00
cttimer.h ALSA: ctxfi - Use native timer interrupt on emu20k1 2009-06-05 16:44:13 +02:00
ctvmem.c ALSA: ctxfi - Remove useless initializations and cast 2009-06-08 14:57:57 +02:00
ctvmem.h ALSA: ctxfi - Support SG-buffers 2009-06-02 15:54:47 +02:00
Makefile ALSA: ctxfi - Use native timer interrupt on emu20k1 2009-06-05 16:44:13 +02:00
xfi.c ALSA: ctxfi - Clean up probe routines 2009-06-08 18:10:32 +02:00