linux/sound/core
Takashi Iwai 38ea4c3dc3 ALSA: control: Optimize locking for look-up
For a fast look-up of a control element via either numid or name
matching (enabled via CONFIG_SND_CTL_FAST_LOOKUP), a locking isn't
needed at all thanks to Xarray.  OTOH, the locking is still needed for
a slow linked-list traversal, and that's rather a rare case.

In this patch, we reduce the use of locking at snd_ctl_find_*() API
functions, and switch from controls_rwsem to controls_rwlock for
avoiding unnecessary lock inversions.  This also resulted in a nice
cleanup, as *_unlocked() version of snd_ctl_find_*() APIs can be
dropped.

snd_ctl_find_id_mixer_unlocked() is still left just as an alias of
snd_ctl_find_id_mixer(), since soc-card.c has a wrapper and there are
several users.  Once after converting there, we can remove it later.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20240809104234.8488-3-tiwai@suse.de
2024-08-09 14:24:55 +02:00
..
oss ALSA: control: Optimize locking for look-up 2024-08-09 14:24:55 +02:00
seq ALSA: seq: ump: Explicitly reset RPN with Null RPN 2024-07-31 15:08:54 +02:00
.kunitconfig ALSA: core: add kunitconfig 2024-03-17 09:36:45 +01:00
compress_offload.c ALSA: compress_offload: Use guard() for locking 2024-02-28 15:01:20 +01:00
control_compat.c ALSA: control: Optimize locking for look-up 2024-08-09 14:24:55 +02:00
control_led.c ALSA: control: Optimize locking for look-up 2024-08-09 14:24:55 +02:00
control.c ALSA: control: Optimize locking for look-up 2024-08-09 14:24:55 +02:00
ctljack.c ALSA: Convert strlcpy to strscpy when return value is unused 2021-01-08 09:30:05 +01:00
device.c ALSA: core: Fix missing return value comments for kernel docs 2022-07-13 13:42:38 +02:00
hrtimer.c ALSA: hrtimer: Use guard() for locking 2024-02-28 15:01:20 +01:00
hwdep_compat.c ALSA: compat_ioctl: avoid compat_alloc_user_space 2020-09-21 10:37:07 +02:00
hwdep.c ALSA: hwdep: Move put_user() call out of scoped_guard() in snd_hwdep_control_ioctl() 2024-03-01 18:10:57 +01:00
info_oss.c ALSA: info: Use guard() for locking 2024-02-28 15:01:21 +01:00
info.c ALSA: info: Use guard() for locking 2024-02-28 15:01:21 +01:00
init.c ALSA: control: Rename ctl_files_rwlock to controls_rwlock 2024-08-09 14:24:55 +02:00
isadma.c sound updates for 6.0-rc1 2022-08-06 10:19:51 -07:00
jack.c ALSA: core: Remove debugfs at disconnection 2024-05-27 09:28:21 +02:00
Kconfig ALSA: control-led: Integrate mute led trigger 2024-03-28 10:39:50 +00:00
Makefile ALSA: core: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:32 +02:00
memalloc_local.h ALSA: memalloc: remove snd_dma_sg_ops declaration 2022-09-09 09:09:40 +02:00
memalloc.c ALSA: memalloc: Workaround for Xen PV 2023-01-27 09:16:24 +01:00
memory.c ALSA: core: Add memory copy helpers between iov_iter and iomem 2023-08-18 12:18:16 +02:00
misc.c ALSA: core: Add async signal helpers 2022-07-29 12:57:10 +02:00
pcm_compat.c ALSA: pcm: Use guard() for PCM stream locks 2024-02-28 15:01:22 +01:00
pcm_dmaengine.c ALSA: pcm_dmaengine: Don't synchronize DMA channel when DMA is paused 2024-07-17 10:39:47 +02:00
pcm_drm_eld.c drm/edid: include drm_eld.h only where required 2023-11-09 16:47:31 +02:00
pcm_iec958.c ALSA: iec958: Split status creation and fill 2021-06-08 17:05:41 +02:00
pcm_lib.c ALSA: pcm: Fix id copying in snd_pcm_set_sync_per_card() 2024-07-05 10:02:07 +02:00
pcm_local.h ALSA: pcm: Revert "ALSA: pcm: rewrite snd_pcm_playback_silence()" 2023-05-05 18:23:48 +02:00
pcm_memory.c ALSA: pcm: Use guard() for locking 2024-02-28 15:01:22 +01:00
pcm_misc.c ALSA: pcm: Test for "silence" field in struct "pcm_format_data" 2022-04-11 09:27:56 +02:00
pcm_native.c ALSA: pcm: reinvent the stream synchronization ID API 2024-07-02 09:53:21 +02:00
pcm_param_trace.h
pcm_timer.c ALSA: timer: Constify snd_timer_hardware definitions 2020-01-03 09:24:07 +01:00
pcm_trace.h tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
pcm.c ALSA: pcm: Use guard() for locking 2024-02-28 15:01:22 +01:00
rawmidi_compat.c ALSA: rawmidi: Replace with __packed attribute 2023-10-26 09:42:55 +02:00
rawmidi.c ALSA: rawmidi: Use guard() for locking 2024-02-28 15:01:21 +01:00
seq_device.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
sound_kunit.c ALSA: kunit: Add missing module descriptions 2024-05-09 10:13:07 +02:00
sound_oss.c ALSA: core: Use guard() for locking 2024-02-28 15:01:21 +01:00
sound.c ALSA: core: Use guard() for locking 2024-02-28 15:01:21 +01:00
timer_compat.c ALSA: timer: Use guard() for locking 2024-02-28 15:01:20 +01:00
timer.c ALSA: timer: Set lower bound of start tick time 2024-05-16 16:00:08 +02:00
ump_convert.c ALSA: ump: Explicitly reset RPN with Null RPN 2024-07-31 15:08:39 +02:00
ump.c ALSA: ump: Force 1 Group for MIDI1 FBs 2024-07-22 16:17:51 +02:00
vmaster.c ALSA: vmaster: Return error for invalid input values 2024-06-18 12:00:18 +02:00