mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-14 14:34:28 +08:00
22dec134db
ALSA OSS sequencer refers to a global variable max_midi_devs at creating a new port, storing it to its own field. Meanwhile this variable may be changed by other sequencer events at snd_seq_oss_midi_check_exit_port() in parallel, which may cause a data race. OTOH, this data race itself is almost harmless, as the access to the MIDI device is done via get_mdev() and it's protected with a refcount, hence its presence is guaranteed. Though, it's sill better to address the data-race from the code sanity POV, and this patch adds the proper spinlock for the protection. Reported-by: Abhishek Shah <abhishek.shah@columbia.edu> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/CAEHB2493pZRXs863w58QWnUTtv3HHfg85aYhLn5HJHCwxqtHQg@mail.gmail.com Link: https://lore.kernel.org/r/20220823072717.1706-1-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de> |
||
---|---|---|
.. | ||
Makefile | ||
seq_oss_device.h | ||
seq_oss_event.c | ||
seq_oss_event.h | ||
seq_oss_init.c | ||
seq_oss_ioctl.c | ||
seq_oss_midi.c | ||
seq_oss_midi.h | ||
seq_oss_readq.c | ||
seq_oss_readq.h | ||
seq_oss_rw.c | ||
seq_oss_synth.c | ||
seq_oss_synth.h | ||
seq_oss_timer.c | ||
seq_oss_timer.h | ||
seq_oss_writeq.c | ||
seq_oss_writeq.h | ||
seq_oss.c |