diff options
author | Muli Ben-Yehuda <muli@il.ibm.com> | 2007-07-17 07:05:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-17 13:23:10 -0400 |
commit | 3b20b9b4e985fcc48b4eea401cb289a856422c93 (patch) | |
tree | 7af15a26530ae4c1623cd02a4722678747741a28 /sound/ac97_bus.c | |
parent | d8f75b9183d613d3c29ea451a1cfb793daad5034 (diff) |
OSS trident: fix locking around write_voice_regs
trident_write_voice_regs() was getting called with the card spinlock held in
only some cases. Fix it.
Explanation: we allocate a new virtual channel in open, and then we frob some
hardware registers (in write_voice_regs) for that channel. But the hardware
registers are shared with other channels, which may be trying to frob the some
registers (albeit for another channel) via ioctl(SNDCTL_DSP_SPEED).
Fixed bugzilla.kernel.org bug #8172 (http://bugme.osdl.org/show_bug.cgi?id=8172)
Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com>
Cc: <tammy000@gmail.com>
Cc: <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'sound/ac97_bus.c')
0 files changed, 0 insertions, 0 deletions