forked from Minki/linux
635c265f32
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> |
||
---|---|---|
.. | ||
ct20k1reg.h | ||
ct20k2reg.h | ||
ctamixer.c | ||
ctamixer.h | ||
ctatc.c | ||
ctatc.h | ||
ctdaio.c | ||
ctdaio.h | ||
cthardware.c | ||
cthardware.h | ||
cthw20k1.c | ||
cthw20k1.h | ||
cthw20k2.c | ||
cthw20k2.h | ||
ctimap.c | ||
ctimap.h | ||
ctmixer.c | ||
ctmixer.h | ||
ctpcm.c | ||
ctpcm.h | ||
ctresource.c | ||
ctresource.h | ||
ctsrc.c | ||
ctsrc.h | ||
cttimer.c | ||
cttimer.h | ||
ctvmem.c | ||
ctvmem.h | ||
Makefile | ||
xfi.c |