lkml.org 
[lkml]   [2020]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: sound/soc/intel/skylake/skl-topology.c:3642:1: warning: the frame size of 1256 bytes is larger than 1024 bytes
From
Date

> sound/soc/intel/skylake/skl-topology.c: In function 'skl_tplg_complete':
>>> sound/soc/intel/skylake/skl-topology.c:3642:1: warning: the frame size of 1256 bytes is larger than 1024 bytes [-Wframe-larger-than=]
> 3642 | }
> | ^
>
> vim +3642 sound/soc/intel/skylake/skl-topology.c
>
> 3612
> 3613 static void skl_tplg_complete(struct snd_soc_component *component)
> 3614 {
> 3615 struct snd_soc_dobj *dobj;
> 3616 struct snd_soc_acpi_mach *mach =
> 3617 dev_get_platdata(component->card->dev);
> 3618 int i;
> 3619
> 3620 list_for_each_entry(dobj, &component->dobj_list, list) {
> 3621 struct snd_kcontrol *kcontrol = dobj->control.kcontrol;
> 3622 struct soc_enum *se =
> 3623 (struct soc_enum *)kcontrol->private_value;
> 3624 char **texts = dobj->control.dtexts;
> 3625 char chan_text[4];
> 3626
> 3627 if (dobj->type != SND_SOC_DOBJ_ENUM ||
> 3628 dobj->control.kcontrol->put !=
> 3629 skl_tplg_multi_config_set_dmic)
> 3630 continue;
> 3631 sprintf(chan_text, "c%d", mach->mach_params.dmic_num);
> 3632
> 3633 for (i = 0; i < se->items; i++) {
> 3634 struct snd_ctl_elem_value val;

that structure seems to be the root-cause of this warning. This can take
512+128 bytes and probably does not belong on the stack.

struct snd_ctl_elem_value {
struct snd_ctl_elem_id id; /* W: element ID */
unsigned int indirect: 1; /* W: indirect access - obsoleted */
union {
union {
long value[128];
long *value_ptr; /* obsoleted */
} integer;
union {
long long value[64];
long long *value_ptr; /* obsoleted */
} integer64;
union {
unsigned int item[128];
unsigned int *item_ptr; /* obsoleted */
} enumerated;
union {
unsigned char data[512];
unsigned char *data_ptr; /* obsoleted */
} bytes;
struct snd_aes_iec958 iec958;
} value; /* RO */
unsigned char reserved[128];
};

> 3635
> 3636 if (strstr(texts[i], chan_text)) {
> 3637 val.value.enumerated.item[0] = i;
> 3638 kcontrol->put(kcontrol, &val);
> 3639 }
> 3640 }
> 3641 }
>> 3642 }

\
 
 \ /
  Last update: 2020-11-04 18:11    [W:0.035 / U:0.388 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site