ASoC: SOF: Propagate sof_get_ctrl_copy_params() error properly
authorTakashi Iwai <tiwai@suse.de>
Tue, 7 May 2019 19:39:10 +0000 (21:39 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 8 May 2019 06:20:25 +0000 (15:20 +0900)
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.

Fixes: 53e0c72d98ba ("ASoC: SOF: Add support for IPC IO between DSP and Host")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc.c

index ba1bb17..f0b9d3c 100644 (file)
@@ -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;