[alsa-devel] [PATCH] ASoC: SOF: Propagate sof_get_ctrl_copy_params() error properly
Takashi Iwai
tiwai at suse.de
Tue May 7 22:47:00 CEST 2019
On Tue, 07 May 2019 21:54:11 +0200,
Pierre-Louis Bossart wrote:
>
>
>
> On 5/7/19 2:39 PM, Takashi Iwai wrote:
> > This fixes a compile warning below by properly handling the error code
> > from sof_get_ctrl_copy_params():
> > include/linux/kernel.h:843:43: warning: 'sparams.pl_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
> > sound/soc/sof/ipc.c:639:34: note: 'sparams.pl_size' was declared here
> >
> > The function returns an error before setting sparams.pl_size, so it'd
> > assign an uninitialized value at a later point.
>
> Thanks Takashi.
>
> I don't recall having seen this warning and this code has been around
> for a while. Does this show with a special config/compiler?
I got this by a few cross-compilations (e.g. arm64), so it might be
specific to some configs, yes.
Takashi
>
> Adding Jaska since he wrote the support for large control data.
>
> >
> > Fixes: 53e0c72d98ba ("ASoC: SOF: Add support for IPC IO between DSP and Host")
> > Signed-off-by: Takashi Iwai <tiwai at suse.de>
> > ---
> > sound/soc/sof/ipc.c | 10 +++++++---
> > 1 file changed, 7 insertions(+), 3 deletions(-)
> >
> > diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
> > index ba1bb17a8d1e..f0b9d3c53f6f 100644
> > --- a/sound/soc/sof/ipc.c
> > +++ b/sound/soc/sof/ipc.c
> > @@ -567,7 +567,7 @@ static int sof_set_get_large_ctrl_data(struct snd_sof_dev *sdev,
> > size_t offset = 0;
> > size_t msg_bytes;
> > size_t pl_size;
> > - int err = 0;
> > + int err;
> > int i;
> > /* allocate max ipc size because we have at least one */
> > @@ -576,9 +576,13 @@ static int sof_set_get_large_ctrl_data(struct snd_sof_dev *sdev,
> > return -ENOMEM;
> > if (send)
> > - sof_get_ctrl_copy_params(cdata->type, cdata, partdata, sparams);
> > + err = sof_get_ctrl_copy_params(cdata->type, cdata, partdata,
> > + sparams);
> > else
> > - sof_get_ctrl_copy_params(cdata->type, partdata, cdata, sparams);
> > + err = sof_get_ctrl_copy_params(cdata->type, partdata, cdata,
> > + sparams);
> > + if (err < 0)
> > + return err;
> > msg_bytes = sparams->msg_bytes;
> > pl_size = sparams->pl_size;
> >
>
More information about the Alsa-devel
mailing list