On Tue, 18 Jul 2023 16:12:53 +0200, Takashi Iwai wrote:
A few ALSA control API helpers like snd_ctl_rename(), snd_ctl_remove() and snd_ctl_find_*() suppose the callers taking card->controls_rwsem. But it's error-prone and fragile. This patch set tries to change those API functions to take the card->controls>rwsem internally by themselves, so that the drivers don't need to take care of lockings.
After applying this patch set, only a couple of places still touch card->controls_rwsem (which are OK-ish as they need for traversing the control linked list).
Takashi
===
Takashi Iwai (11): ALSA: control: Take card->controls_rwsem in snd_ctl_rename() staging: greybus: audio_helper: Use snd_ctl_remove_id() ASoC: atmel: mchp-pdmc: Use snd_ctl_remove_id() ALSA: control: Take controls_rwsem lock in snd_ctl_remove() ALSA: control: Add lockdep warning to internal functions ASoC: sigmadsp: Simplify with snd_ctl_activate_id() staging: greybus: Avoid abusing controls_rwsem ALSA: control: Make snd_ctl_find_id() argument const ALSA: control: Introduce unlocked version for snd_ctl_find_*() helpers ALSA: control: Take lock in snd_ctl_find_id() and snd_ctl_find_numid() ALSA: emu10k1: Go back and simplify with snd_ctl_find_id()
Now all merged. The branch is based on 6.5-rc2, and tagged as ctl-lock-fixes-6.6 so that other branch can merge this if needed.
Takashi