Skip to contentSkip to conversation

ASoC: mediatek: implement mediatek common structure

bug report Dan Carpenter 2 participants 2 messages Aug 27, 2021 – Aug 30, 2021 Arm MediaTek

lore
Share & tools
lore
#0 lore raw

Hello Garlic Tseng,

The patch 283b612429a2: "ASoC: mediatek: implement mediatek common structure" from Jun 17, 2016, leads to the following Smatch static checker warning:

	sound/soc/mediatek/common/mtk-afe-fe-dai.c:364 mtk_afe_resume()
	error: we previously assumed 'afe->reg_back_up' could be null (see line 359)

sound/soc/mediatek/common/mtk-afe-fe-dai.c

    354         if (pm_runtime_status_suspended(dev) || !afe->suspended)
    355                 return 0;
    356 
    357         afe->runtime_resume(dev);
    358 
    359         if (!afe->reg_back_up)
    360                 dev_dbg(dev, "%s no reg_backup\n", __func__);

Should this return? Also when ->reg_back_up is allocated there is no check for NULL so it seems like a very possible condition.

    361 
    362         for (i = 0; i < afe->reg_back_up_list_num; i++)
    363                 mtk_regmap_write(regmap, afe->reg_back_up_list[i],
--> 364                                  afe->reg_back_up[i]);
    365 
    366         afe->suspended = false;
    367         return 0;
    368 }

regards,
dan carpenter

_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek

#1 lore raw

Hi Dan,

Garlic has left mediatek, so I will help this problem. Thank you for pointing out the problem.
It seems that some handling for NULL case should be added to suspend/resume funtion.
I will send a patch for the problem.

Thanks,
Trevor

Quoted 33 lines · Dan Carpenter

Hello Garlic Tseng,

The patch 283b612429a2: "ASoC: mediatek: implement mediatek common structure" from Jun 17, 2016, leads to the following Smatch static checker warning:

	sound/soc/mediatek/common/mtk-afe-fe-dai.c:364 mtk_afe_resume()
	error: we previously assumed 'afe->reg_back_up' could be null

(see line 359)

sound/soc/mediatek/common/mtk-afe-fe-dai.c

    354         if (pm_runtime_status_suspended(dev) || !afe-
Quoted 1 line

suspended)

    355                 return 0;
    356 
    357         afe->runtime_resume(dev);
    358 
    359         if (!afe->reg_back_up)
    360                 dev_dbg(dev, "%s no reg_backup\n", __func__);

Should this return? Also when ->reg_back_up is allocated there is no check for NULL so it seems like a very possible condition.

    361 
    362         for (i = 0; i < afe->reg_back_up_list_num; i++)
    363                 mtk_regmap_write(regmap, afe-
Quoted 1 line

reg_back_up_list[i],

--> 364                                  afe->reg_back_up[i]);
    365 
    366         afe->suspended = false;
    367         return 0;
    368 }
Quoted 7 lines

regards,
dan carpenter

_______________________________________________
Linux-mediatek mailing list
[email protected]

https://urldefense.com/v3/__http://lists.infradead.org/mailman/listinfo/linux-mediatek__;!!CTRNKA9wMg0ARbw!3mMCbxx-YFIMMsBt65G7RuCRYOyFvPR_ZdB9SjdWOhElHVtsE6cAas4nmodLGDHR6w$

Quoted 1 line

_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek