diff options
author | Takashi Iwai <tiwai@suse.de> | 2019-05-07 15:39:10 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-05-08 02:20:25 -0400 |
commit | 54d198d5019dd98b9bcb9099a389608d7e2cccad (patch) | |
tree | 8169236a4c79ef2c7b65690be79bbcdf34d34ca0 /sound | |
parent | f153bf49ddf6169544b24ef5ea26fa3eb4996b95 (diff) |
ASoC: SOF: Propagate sof_get_ctrl_copy_params() error properly
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>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/sof/ipc.c | 10 |
1 files 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, | |||
567 | size_t offset = 0; | 567 | size_t offset = 0; |
568 | size_t msg_bytes; | 568 | size_t msg_bytes; |
569 | size_t pl_size; | 569 | size_t pl_size; |
570 | int err = 0; | 570 | int err; |
571 | int i; | 571 | int i; |
572 | 572 | ||
573 | /* allocate max ipc size because we have at least one */ | 573 | /* 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, | |||
576 | return -ENOMEM; | 576 | return -ENOMEM; |
577 | 577 | ||
578 | if (send) | 578 | if (send) |
579 | sof_get_ctrl_copy_params(cdata->type, cdata, partdata, sparams); | 579 | err = sof_get_ctrl_copy_params(cdata->type, cdata, partdata, |
580 | sparams); | ||
580 | else | 581 | else |
581 | sof_get_ctrl_copy_params(cdata->type, partdata, cdata, sparams); | 582 | err = sof_get_ctrl_copy_params(cdata->type, partdata, cdata, |
583 | sparams); | ||
584 | if (err < 0) | ||
585 | return err; | ||
582 | 586 | ||
583 | msg_bytes = sparams->msg_bytes; | 587 | msg_bytes = sparams->msg_bytes; |
584 | pl_size = sparams->pl_size; | 588 | pl_size = sparams->pl_size; |