diff options
| author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2025-02-12 02:24:38 +0000 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2025-02-16 23:51:03 +0000 |
| commit | 7f1186a8d738661b941b298fd6d1d5725ed71428 (patch) | |
| tree | 3681a8bdc59f35be682988000e220737437c0a73 | |
| parent | 7e1caa679686dde5c24d60b139f234568045758f (diff) | |
ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot()
snd_soc_dai_set_tdm_slot() calls .xlate_tdm_slot_mask() or
snd_soc_xlate_tdm_slot_mask(), but didn't check its return value.
Let's check it.
This patch might break existing driver. In such case, let's makes
each func to void instead of int.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87o6z7yk61.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/soc-dai.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c index 7c4c9127e5f3..8f2b5b840bb0 100644 --- a/sound/soc/soc-dai.c +++ b/sound/soc/soc-dai.c @@ -261,10 +261,11 @@ int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai, if (dai->driver->ops && dai->driver->ops->xlate_tdm_slot_mask) - dai->driver->ops->xlate_tdm_slot_mask(slots, - &tx_mask, &rx_mask); + ret = dai->driver->ops->xlate_tdm_slot_mask(slots, &tx_mask, &rx_mask); else - snd_soc_xlate_tdm_slot_mask(slots, &tx_mask, &rx_mask); + ret = snd_soc_xlate_tdm_slot_mask(slots, &tx_mask, &rx_mask); + if (ret) + goto err; for_each_pcm_streams(stream) snd_soc_dai_tdm_mask_set(dai, stream, *tdm_mask[stream]); @@ -273,6 +274,7 @@ int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai, dai->driver->ops->set_tdm_slot) ret = dai->driver->ops->set_tdm_slot(dai, tx_mask, rx_mask, slots, slot_width); +err: return soc_dai_ret(dai, ret); } EXPORT_SYMBOL_GPL(snd_soc_dai_set_tdm_slot); |
