android_kernel_xiaomi_sm7250/sound/core/seq
Takashi Iwai f57ca0e2cd ALSA: seq: Fix data-race at module auto-loading
commit 3e7e04b747adea36f349715d9f0998eeebf15d72 upstream.

It's been reported that there is a possible data-race accessing to the
global card_requested[] array at ALSA sequencer core, which is used
for determining whether to call request_module() for the card or not.
This data race itself is almost harmless, as it might end up with one
extra request_module() call for the already loaded module at most.
But it's still better to fix.

This patch addresses the possible data race of card_requested[] and
client_requested[] arrays by replacing them with bitmask.
It's an atomic operation and can work without locks.

Reported-by: Abhishek Shah <abhishek.shah@columbia.edu>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/CAEHB24_ay6YzARpA1zgCsE7=H9CSJJzux618E=Ka4h0YdKn=qA@mail.gmail.com
Link: https://lore.kernel.org/r/20220823072717.1706-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-15 12:17:04 +02:00
..
oss ALSA: seq: oss: Fix data-race for max_midi_devs access 2022-09-15 12:17:04 +02:00
Kconfig ALSA: seq: Fix CONFIG_SND_SEQ_MIDI dependency 2017-08-11 09:51:41 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
seq_clientmgr.c ALSA: seq: Fix data-race at module auto-loading 2022-09-15 12:17:04 +02:00
seq_clientmgr.h ALSA: seq: Make ioctls race-free 2018-01-11 14:37:51 +01:00
seq_compat.c
seq_dummy.c
seq_fifo.c ALSA: seq: Fix potential concurrent access to the deleted pool 2019-09-06 10:22:09 +02:00
seq_fifo.h ALSA: seq: Fix potential concurrent access to the deleted pool 2019-09-06 10:22:09 +02:00
seq_info.c ALSA: seq: Fix leftovers at probe error path 2018-08-01 22:54:36 +02:00
seq_info.h ALSA: seq: Fix leftovers at probe error path 2018-08-01 22:54:36 +02:00
seq_lock.c ALSA: seq: Enable 'use' locking in all configurations 2017-10-18 08:01:46 +02:00
seq_lock.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
seq_memory.c ALSA: seq: Remove dead codes 2018-08-01 22:54:35 +02:00
seq_memory.h ALSA: seq: Remove dead codes 2018-08-01 22:54:35 +02:00
seq_midi_emul.c ALSA: seq: Mark expected switch fall-through 2018-08-04 08:30:36 +02:00
seq_midi_event.c ALSA: seq: Remove dead codes 2018-08-01 22:54:35 +02:00
seq_midi.c ALSA: seq: Minor cleanup of MIDI event parser helpers 2018-08-01 22:54:35 +02:00
seq_ports.c ALSA: seq: Fix racy deletion of subscriber 2021-08-12 13:19:38 +02:00
seq_ports.h ALSA: seq: Fix race of get-subscription call vs port-delete ioctls 2019-06-19 08:18:01 +02:00
seq_prioq.c ALSA: seq: Fix possible UAF in snd_seq_check_queue() 2018-03-10 17:29:49 +01:00
seq_prioq.h ALSA: seq: Fix possible UAF in snd_seq_check_queue() 2018-03-10 17:29:49 +01:00
seq_queue.c ALSA: seq: Set upper limit of processed events 2022-01-27 09:04:29 +01:00
seq_queue.h ALSA: seq: Use bool for snd_seq_queue internal flags 2021-01-06 14:45:00 +01:00
seq_system.c ALSA: seq: Do error checks at creating system ports 2019-11-20 18:45:27 +01:00
seq_system.h
seq_timer.c ALSA: seq: Fix concurrent access to queue current tick/time 2020-02-28 16:39:00 +01:00
seq_timer.h ALSA: seq: Fix concurrent access to queue current tick/time 2020-02-28 16:39:00 +01:00
seq_virmidi.c ALSA: seq: virmidi: Fix running status after receiving sysex 2020-03-25 08:06:09 +01:00
seq.c ALSA: seq: Fix leftovers at probe error path 2018-08-01 22:54:36 +02:00