[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4db6b25c-dd78-a6ba-02a5-ac2e49996be1@arm.com>
Date: Tue, 29 Mar 2022 07:59:11 +0100
From: Lukasz Luba <lukasz.luba@....com>
To: Kant Fan <kant@...winnertech.com>, rui.zhang@...el.com,
daniel.lezcano@...aro.org, javi.merino@...nel.org,
edubezval@...il.com, orjan.eide@....com
Cc: amitk@...nel.org, linux-pm@...r.kernel.org,
linux-kernel@...r.kernel.org,
allwinner-opensource-support@...winnertech.com,
stable@...r.kernel.org
Subject: Re: [PATCH] thermal: devfreq_cooling: use local ops instead of global
ops
On 3/25/22 09:44, Kant Fan wrote:
> commit 7b62935828266658714f81d4e9176edad808dc70 upstream.
>
> Fix access illegal address problem in following condition:
> There are muti devfreq cooling devices in system, some of them register
> with dfc_power but other does not, power model ops such as state2power will
> append to global devfreq_cooling_ops when the cooling device with
> dfc_power register. It makes the cooling device without dfc_power
> also use devfreq_cooling_ops after appending when register later by
> of_devfreq_cooling_register_power() or of_devfreq_cooling_register().
>
> IPA governor regards the cooling devices without dfc_power as a power actor
> because they also have power model ops, and will access illegal address at
> dfc->power_ops when execute cdev->ops->get_requested_power or
> cdev->ops->power2state. As the calltrace below shows:
>
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000008
> ...
> calltrace:
> [<c06e5488>] devfreq_cooling_power2state+0x24/0x184
> [<c06df420>] power_actor_set_power+0x54/0xa8
> [<c06e3774>] power_allocator_throttle+0x770/0x97c
> [<c06dd120>] handle_thermal_trip+0x1b4/0x26c
> [<c06ddb48>] thermal_zone_device_update+0x154/0x208
> [<c014159c>] process_one_work+0x1ec/0x36c
> [<c0141c58>] worker_thread+0x204/0x2ec
> [<c0146788>] kthread+0x140/0x154
> [<c01010e8>] ret_from_fork+0x14/0x2c
>
> Fixes: a76caf55e5b35 ("thermal: Add devfreq cooling")
> Cc: stable@...r.kernel.org # 4.4+
> Signed-off-by: Kant Fan <kant@...winnertech.com>
> ---
> drivers/thermal/devfreq_cooling.c | 25 ++++++++++++++++++-------
> 1 file changed, 18 insertions(+), 7 deletions(-)
>
Looks good. So this patch should be applied for all stable
kernels starting from v4.4 to v5.12 (the v5.13 and later need
other patch).
Next time you might use in the subject something like:
[PATCH 4.4] thermal: devfreq_cooling: use local ops instead of global ops
It would be better distinguished from your other patch with the
same subject, which was for mainline and v5.13+
Powered by blists - more mailing lists