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: 22d8de62f1 ("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>
This commit is contained in:
committed by
Takashi Iwai
parent
d2e8f64125
commit
543f8d7808
@@ -94,11 +94,15 @@ static struct snd_ctl_led *snd_ctl_led_get_by_access(unsigned int access)
|
|||||||
return &snd_ctl_leds[group];
|
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 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_kcontrol *kctl = lctl->kctl;
|
||||||
struct snd_ctl_elem_info info;
|
|
||||||
struct snd_ctl_elem_value value;
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user