Some Smatch static checker warning like below was found.
sound/soc/mediatek/mt8188/mt8188-dai-etdm.c:2487
mt8188_dai_etdm_parse_of()
warn: 'ret' returned from snprintf() might be larger than 48
2479 for (i = 0; i < MT8188_AFE_IO_ETDM_NUM; i++) {
2480 dai_id = ETDM_TO_DAI_ID(i);
2481 etdm_data = afe_priv->dai_priv[dai_id];
2482
2483 ret = snprintf(prop, sizeof(prop),
2484 "mediatek,%s-multi-pin-mode",
2485 of_afe_etdms[i].name);
2486 if (ret < 0) {
--> 2487 dev_err(afe->dev, "%s snprintf
err=%d\n",
2488
In linux kernel, snprintf() never returns negatives. On the other hand,
the format string like "mediatek,%s-multi-pin-mode" must be smaller
than sizeof(prop)=48.
After discussing in the mail thread[1], I remove the dead code to fix
the Smatch warnings.
[1]: https://lore.kernel.org/all/Y9EdBg641tJDDrt%2F@kili/
Signed-off-by: Trevor Wu <[email protected]>
---
sound/soc/mediatek/mt8188/mt8188-dai-etdm.c | 33 ++++++---------------
1 file changed, 9 insertions(+), 24 deletions(-)
diff --git a/sound/soc/mediatek/mt8188/mt8188-dai-etdm.c b/sound/soc/mediatek/mt8188/mt8188-dai-etdm.c
index 0b79c1cc293b..071841903c62 100644
--- a/sound/soc/mediatek/mt8188/mt8188-dai-etdm.c
+++ b/sound/soc/mediatek/mt8188/mt8188-dai-etdm.c
@@ -2480,24 +2480,14 @@ static void mt8188_dai_etdm_parse_of(struct mtk_base_afe *afe)
dai_id = ETDM_TO_DAI_ID(i);
etdm_data = afe_priv->dai_priv[dai_id];
- ret = snprintf(prop, sizeof(prop),
- "mediatek,%s-multi-pin-mode",
- of_afe_etdms[i].name);
- if (ret < 0) {
- dev_err(afe->dev, "%s snprintf err=%d\n",
- __func__, ret);
- return;
- }
+ snprintf(prop, sizeof(prop), "mediatek,%s-multi-pin-mode",
+ of_afe_etdms[i].name);
+
etdm_data->data_mode = of_property_read_bool(of_node, prop);
- ret = snprintf(prop, sizeof(prop),
- "mediatek,%s-cowork-source",
- of_afe_etdms[i].name);
- if (ret < 0) {
- dev_err(afe->dev, "%s snprintf err=%d\n",
- __func__, ret);
- return;
- }
+ snprintf(prop, sizeof(prop), "mediatek,%s-cowork-source",
+ of_afe_etdms[i].name);
+
ret = of_property_read_u32(of_node, prop, &sel);
if (ret == 0) {
if (sel >= MT8188_AFE_IO_ETDM_NUM) {
@@ -2516,14 +2506,9 @@ static void mt8188_dai_etdm_parse_of(struct mtk_base_afe *afe)
/* etdm in only */
for (i = 0; i < 2; i++) {
- ret = snprintf(prop, sizeof(prop),
- "mediatek,%s-chn-disabled",
- of_afe_etdms[i].name);
- if (ret < 0) {
- dev_err(afe->dev, "%s snprintf err=%d\n",
- __func__, ret);
- return;
- }
+ snprintf(prop, sizeof(prop), "mediatek,%s-chn-disabled",
+ of_afe_etdms[i].name);
+
ret = of_property_read_variable_u8_array(of_node, prop,
disable_chn,
1, max_chn);
--
2.18.0
On Thu, Feb 02, 2023 at 06:37:04PM +0800, Trevor Wu wrote:
> Some Smatch static checker warning like below was found.
>
> sound/soc/mediatek/mt8188/mt8188-dai-etdm.c:2487
> mt8188_dai_etdm_parse_of()
> warn: 'ret' returned from snprintf() might be larger than 48
>
> 2479 for (i = 0; i < MT8188_AFE_IO_ETDM_NUM; i++) {
> 2480 dai_id = ETDM_TO_DAI_ID(i);
> 2481 etdm_data = afe_priv->dai_priv[dai_id];
> 2482
> 2483 ret = snprintf(prop, sizeof(prop),
> 2484 "mediatek,%s-multi-pin-mode",
> 2485 of_afe_etdms[i].name);
> 2486 if (ret < 0) {
> --> 2487 dev_err(afe->dev, "%s snprintf
> err=%d\n",
> 2488
>
> In linux kernel, snprintf() never returns negatives. On the other hand,
> the format string like "mediatek,%s-multi-pin-mode" must be smaller
> than sizeof(prop)=48.
>
> After discussing in the mail thread[1], I remove the dead code to fix
> the Smatch warnings.
>
> [1]: https://lore.kernel.org/all/Y9EdBg641tJDDrt%2F@kili/
>
> Signed-off-by: Trevor Wu <[email protected]>
> ---
Thanks!
Regards,
dan carpenter
On Thu, 02 Feb 2023 18:37:04 +0800, Trevor Wu wrote:
> Some Smatch static checker warning like below was found.
>
> sound/soc/mediatek/mt8188/mt8188-dai-etdm.c:2487
> mt8188_dai_etdm_parse_of()
> warn: 'ret' returned from snprintf() might be larger than 48
>
> 2479 for (i = 0; i < MT8188_AFE_IO_ETDM_NUM; i++) {
> 2480 dai_id = ETDM_TO_DAI_ID(i);
> 2481 etdm_data = afe_priv->dai_priv[dai_id];
> 2482
> 2483 ret = snprintf(prop, sizeof(prop),
> 2484 "mediatek,%s-multi-pin-mode",
> 2485 of_afe_etdms[i].name);
> 2486 if (ret < 0) {
> --> 2487 dev_err(afe->dev, "%s snprintf
> err=%d\n",
> 2488
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: mediatek: mt8188: remove etdm dead code
commit: 66b9e94cb7783d3c632e2c1b436b26ece8c14e5d
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark