Muli Ben-Yehuda 3b20b9b4e9 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>
2007-07-17 10:23:10 -07:00
..
2007-07-01 12:29:44 -07:00
2007-06-28 11:34:54 -07:00
2007-02-09 09:03:54 +01:00
2005-04-16 15:20:36 -07:00
2007-02-09 09:00:19 +01:00
2007-05-21 09:18:19 -07:00