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")
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20210414105858.1937710-1-perex@perex.cz
Signed-off-by: Takashi Iwai <tiwai@suse.de>
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;