diff options
| author | Muli Ben-Yehuda <[email protected]> | 2007-07-17 04:05:15 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2007-07-17 10:23:10 -0700 |
| commit | 3b20b9b4e985fcc48b4eea401cb289a856422c93 (patch) | |
| tree | 7af15a26530ae4c1623cd02a4722678747741a28 /include/linux | |
| 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 <[email protected]>
Cc: <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions