staging: greybus: Avoid abusing controls_rwsem
authorTakashi Iwai <tiwai@suse.de>
Tue, 18 Jul 2023 14:13:00 +0000 (16:13 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 20 Jul 2023 08:02:59 +0000 (10:02 +0200)
commitdc438bac711d703e08cffa527db192c4b1630cd4
tree7e5fccd7d6e4eb248bd384c80051ecaa0345cf6d
parenta3bee62e90d8fdfdbd325323106de00b3e3a729f
staging: greybus: Avoid abusing controls_rwsem

The controls_rwsem of snd_card object is rather an internal lock, and
not really meant to be used by others for its data protection.

This patch addresses it by replacing the controls_rwsem usages with
the own (new) mutex.

Note that the up_write() and down_write() calls around
gbaudio_remove_component_controls() are simply dropped without
replacement.  These temporary up/down were a workaround since
gbaudio_remove_component_controls() itself took the rwsem.  Now it was
also gone, we can clean up the workaround, too.

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Vaibhav Agarwal <vaibhav.sr@gmail.com>
Cc: Mark Greer <mgreer@animalcreek.com>
Cc: Johan Hovold <johan@kernel.org>
Cc: Alex Elder <elder@kernel.org>
Cc: greybus-dev@lists.linaro.org
Link: https://lore.kernel.org/r/20230718141304.1032-8-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
drivers/staging/greybus/audio_codec.c
drivers/staging/greybus/audio_codec.h