ALSA only supports control names up to 44 bytes, so there is no point allocating a whole page of memory to hold the control name, just limit the control name to 44 bytes.
Signed-off-by: Charles Keepax ckeepax@opensource.wolfsonmicro.com --- sound/soc/codecs/wm_adsp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c index 3f6b49d..c291203 100644 --- a/sound/soc/codecs/wm_adsp.c +++ b/sound/soc/codecs/wm_adsp.c @@ -789,7 +789,7 @@ static int wm_adsp_create_control(struct wm_adsp *dsp, char *region_name; int ret;
- name = kmalloc(PAGE_SIZE, GFP_KERNEL); + name = kmalloc(SNDRV_CTL_ELEM_ID_NAME_MAXLEN, GFP_KERNEL); if (!name) return -ENOMEM;
@@ -814,7 +814,7 @@ static int wm_adsp_create_control(struct wm_adsp *dsp, goto err_name; }
- snprintf(name, PAGE_SIZE, "DSP%d %s %x", + snprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN, "DSP%d %s %x", dsp->num, region_name, alg_region->alg);
list_for_each_entry(ctl, &dsp->ctl_list,