Re: [PATCH 4.19 216/220] PM / devfreq: Fix static checker warning in try_then_request_governor

From: Nobuhiro Iwamatsu
Date: Wed Nov 27 2019 - 22:40:57 EST


Hi,

On Fri, Nov 22, 2019 at 11:29:41AM +0100, Greg Kroah-Hartman wrote:
> From: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx>
>
> [ Upstream commit b53b0128052ffd687797d5f4deeb76327e7b5711 ]
>
> The patch 23c7b54ca1cd: "PM / devfreq: Fix devfreq_add_device() when
> drivers are built as modules." leads to the following static checker
> warning:
>
> drivers/devfreq/devfreq.c:1043 governor_store()
> warn: 'governor' can also be NULL
>
> The reason is that the try_then_request_governor() function returns both
> error pointers and NULL. It should just return error pointers, so fix
> this by returning a ERR_PTR to the error intead of returning NULL.
>
> Fixes: 23c7b54ca1cd ("PM / devfreq: Fix devfreq_add_device() when drivers are built as modules.")
> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx>
> Reviewed-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
> Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

The following commits are provided for this fix:

commit 7544fd7f384591038646d3cd9efb311ab4509e24
Author: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx>
Date: Fri Jun 21 18:39:49 2019 -0300

PM / devfreq: Fix kernel oops on governor module load

A bit unexpectedly (but still documented), request_module may
return a positive value, in case of a modprobe error.
This is currently causing issues in the devfreq framework.

When a request_module exits with a positive value, we currently
return that via ERR_PTR. However, because the value is positive,
it's not a ERR_VALUE proper, and is therefore treated as a
valid struct devfreq_governor pointer, leading to a kernel oops.

Fix this by returning -EINVAL if request_module returns a positive
value.

Fixes: b53b0128052ff ("PM / devfreq: Fix static checker warning in try_then_request_governor")
Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx>
Reviewed-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>

Please apply.

Best regards,
Nobuhiro