[PATCH] ALSA: control_led - fix the stack usage (control element ops)
It's a bad idea to allocate big structures on the stack. Mark the variables as static and add a note for the locking.
Fixes: 22d8de62f11b ("ALSA: control - add generic LED trigger module as the new control layer") Signed-off-by: Jaroslav Kysela perex@perex.cz Cc: Nathan Chancellor nathan@kernel.org Cc: Takashi Sakamoto o-takashi@sakamocchi.jp Signed-off-by: Jaroslav Kysela perex@perex.cz --- sound/core/control_led.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/sound/core/control_led.c b/sound/core/control_led.c index 93b201063c7d..25f57c14f294 100644 --- a/sound/core/control_led.c +++ b/sound/core/control_led.c @@ -94,11 +94,15 @@ static struct snd_ctl_led *snd_ctl_led_get_by_access(unsigned int access) return &snd_ctl_leds[group]; }
+/* + * A note for callers: + * The two static variables info and value are protected using snd_ctl_led_mutex. + */ static int snd_ctl_led_get(struct snd_ctl_led_ctl *lctl) { + static struct snd_ctl_elem_info info; + static struct snd_ctl_elem_value value; struct snd_kcontrol *kctl = lctl->kctl; - struct snd_ctl_elem_info info; - struct snd_ctl_elem_value value; unsigned int i; int result;
On Wed, 14 Apr 2021 12:58:58 +0200, Jaroslav Kysela wrote:
It's a bad idea to allocate big structures on the stack. Mark the variables as static and add a note for the locking.
Fixes: 22d8de62f11b ("ALSA: control - add generic LED trigger module as the new control layer") Signed-off-by: Jaroslav Kysela perex@perex.cz Cc: Nathan Chancellor nathan@kernel.org Cc: Takashi Sakamoto o-takashi@sakamocchi.jp Signed-off-by: Jaroslav Kysela perex@perex.cz
Applied now (with a removal of the duplicated sign-off).
Thanks!
Takashi
Dne 14. 04. 21 v 14:23 Takashi Iwai napsal(a):
On Wed, 14 Apr 2021 12:58:58 +0200, Jaroslav Kysela wrote:
It's a bad idea to allocate big structures on the stack. Mark the variables as static and add a note for the locking.
Fixes: 22d8de62f11b ("ALSA: control - add generic LED trigger module as the new control layer") Signed-off-by: Jaroslav Kysela perex@perex.cz Cc: Nathan Chancellor nathan@kernel.org Cc: Takashi Sakamoto o-takashi@sakamocchi.jp Signed-off-by: Jaroslav Kysela perex@perex.cz
Applied now (with a removal of the duplicated sign-off).
Thank you.
Jaroslav
participants (2)
-
Jaroslav Kysela
-
Takashi Iwai