Il 21/11/25 12:16, Laura Nao ha scritto:
> temp_factor is used in lvts_temp_to_raw() and lvts_raw_to_temp(). If
> platform data is incorrect and temp_factor is zero, it could cause a
> division by zero. Fail the probe early to prevent a kernel crash.
>
> Signed-off-by: Laura Nao <laura.nao@collabora.com>
> ---
> drivers/thermal/mediatek/lvts_thermal.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/lvts_thermal.c
> index 1c54d0b75b1a..b49441d82ffd 100644
> --- a/drivers/thermal/mediatek/lvts_thermal.c
> +++ b/drivers/thermal/mediatek/lvts_thermal.c
> @@ -1346,6 +1346,11 @@ static int lvts_probe(struct platform_device *pdev)
> if (irq < 0)
> return irq;
>
> + if (!lvts_data->temp_factor)
> + return dev_err_probe(
> + dev, -EINVAL,
> + "temp_factor should never be zero; check platform data.\n");
> +
return dev_err_probe(dev, -EINVAL,
"temp_factor should never be zero; check platform data.\n");
That's the only nitpick that I've got here, and I'm fine either way, anyway, as
this then kind of boils down to personal preference, in a way.
So, regardless of this getting fixed (by the maintainer or by you) or not:
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> golden_temp_offset = lvts_data->temp_offset;
>
> ret = lvts_domain_init(dev, lvts_td, lvts_data);
>