From: "lihuisong (C)" <lihuisong@huawei.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: LKML <linux-kernel@vger.kernel.org>,
Lukasz Luba <lukasz.luba@arm.com>,
Zhang Rui <rui.zhang@intel.com>,
Linux PM <linux-pm@vger.kernel.org>
Subject: Re: [PATCH v3 02/14] thermal: core: Rearrange checks in thermal_bind_cdev_to_trip()
Date: Wed, 21 Aug 2024 19:22:54 +0800 [thread overview]
Message-ID: <c54858ed-e263-fe80-96aa-9ac8b6f85b1c@huawei.com> (raw)
In-Reply-To: <c90b53af-1641-4c8a-97d9-27feed7b2a7d@linaro.org>
在 2024/8/21 18:49, Daniel Lezcano 写道:
> On 21/08/2024 11:44, lihuisong (C) wrote:
>>
>> 在 2024/8/21 17:28, Daniel Lezcano 写道:
>>> On 21/08/2024 10:49, lihuisong (C) wrote:
>>>
>>> [ ... ]
>>>
>>>>> - list_for_each_entry(pos2, &thermal_cdev_list, node) {
>>>>> - if (pos2 == cdev)
>>>>> - break;
>>>>> - }
>>>>> + lockdep_assert_held(&thermal_list_lock);
>>>>> - if (tz != pos1 || cdev != pos2)
>>>>> + if (list_empty(&tz->node) || list_empty(&cdev->node))
>>>> The old verification is ensure that tz and cdev already add to
>>>> thermal_tz_list and thermal_cdev_list,respectively.
>>>> Namely, tz and cdev are definitely registered and intialized.
>>>> The check is ok for all untizalized thermal_zone_device and cooling
>>>> device.
>>>> But the new verification doesn't seem to do that.
>>>
>>> If the tz or the cdev are registered then their "->node" is not
>>> empty because they are linked with the thermal_list and cdev_list
>>>
>>> So either way is browsing the lists to find the tz/cdev or just
>>> check "->node" is not empty. The latter the faster.
>> Assume that tz/cdev isn't intiazlized and registered to
>> thermal_tz_list or thermal_cdev_list. And then directly call this
>> interface.
>
> Then there is a bug in the internal code because the
> thermal_zone_device_register*() and cooling_device_device_register()
> allocate and initialize those structures.
>
> The caller of the function is supposed to use the API provided by the
> thermal framework. It is not possible to plan every stupid things a
> driver can do. In this particular case, very likely the kernel will
> crash immediately which is a sufficient test for me and coercive
> enough to have the API user to put its code in question ;)
A good point. Agree.
next prev parent reply other threads:[~2024-08-21 11:22 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-19 15:49 [PATCH v3 00/14] thermal: Rework binding cooling devices to trip points Rafael J. Wysocki
2024-08-19 15:50 ` [PATCH v3 01/14] thermal: core: Fold two functions into their respective callers Rafael J. Wysocki
2024-08-20 7:04 ` Zhang, Rui
2024-08-21 7:57 ` Daniel Lezcano
2024-08-19 15:51 ` [PATCH v3 02/14] thermal: core: Rearrange checks in thermal_bind_cdev_to_trip() Rafael J. Wysocki
2024-08-20 7:05 ` Zhang, Rui
2024-08-21 7:59 ` Daniel Lezcano
2024-08-21 8:49 ` lihuisong (C)
2024-08-21 9:28 ` Daniel Lezcano
2024-08-21 9:44 ` lihuisong (C)
2024-08-21 10:49 ` Daniel Lezcano
2024-08-21 11:22 ` lihuisong (C) [this message]
2024-08-21 11:12 ` Rafael J. Wysocki
2024-08-21 10:51 ` Rafael J. Wysocki
2024-08-19 15:52 ` [PATCH v3 03/14] thermal: core: Drop redundant thermal instance checks Rafael J. Wysocki
2024-08-20 7:05 ` Zhang, Rui
2024-08-21 9:32 ` Daniel Lezcano
2024-08-21 11:11 ` Rafael J. Wysocki
2024-08-21 11:56 ` Daniel Lezcano
2024-08-21 12:52 ` Rafael J. Wysocki
2024-08-19 15:56 ` [PATCH v3 04/14] thermal: sysfs: Use the dev argument in instance-related show/store Rafael J. Wysocki
2024-08-20 7:05 ` Zhang, Rui
2024-08-20 7:59 ` lihuisong (C)
2024-08-21 9:36 ` Daniel Lezcano
2024-08-19 15:58 ` [PATCH v3 05/14] thermal: core: Move thermal zone locking out of bind/unbind functions Rafael J. Wysocki
2024-08-20 7:05 ` Zhang, Rui
2024-08-20 8:27 ` lihuisong (C)
2024-08-20 10:27 ` Rafael J. Wysocki
2024-08-21 9:02 ` lihuisong (C)
2024-08-21 10:30 ` Rafael J. Wysocki
2024-08-21 9:46 ` Daniel Lezcano
2024-08-19 16:00 ` [PATCH v3 06/14] thermal: core: Introduce .should_bind() thermal zone callback Rafael J. Wysocki
2024-08-20 7:06 ` Zhang, Rui
2024-08-21 9:09 ` lihuisong (C)
2024-08-21 13:21 ` Daniel Lezcano
2024-08-19 16:02 ` [PATCH v3 07/14] thermal: ACPI: Use the " Rafael J. Wysocki
2024-08-20 7:06 ` Zhang, Rui
2024-08-21 13:22 ` Daniel Lezcano
2024-08-19 16:05 ` [PATCH v3 08/14] thermal: core: Unexport thermal_bind_cdev_to_trip() and thermal_unbind_cdev_from_trip() Rafael J. Wysocki
2024-08-20 7:08 ` Zhang, Rui
2024-08-21 9:18 ` lihuisong (C)
2024-08-21 13:23 ` Daniel Lezcano
2024-08-19 16:19 ` [PATCH v3 09/14] platform/x86: acerhdf: Use the .should_bind() thermal zone callback Rafael J. Wysocki
2024-08-19 20:24 ` Peter Kästle
2024-08-21 13:25 ` Daniel Lezcano
2024-08-19 16:24 ` [PATCH v3 10/14] mlxsw: core_thermal: " Rafael J. Wysocki
2024-08-19 16:26 ` [PATCH v3 11/14] thermal: imx: " Rafael J. Wysocki
2024-08-21 13:42 ` Daniel Lezcano
2024-08-19 16:30 ` [PATCH v3 12/14] thermal/of: " Rafael J. Wysocki
2024-08-21 14:20 ` Daniel Lezcano
2024-08-26 11:31 ` Marek Szyprowski
2024-08-26 12:14 ` Rafael J. Wysocki
2024-08-26 20:49 ` Marek Szyprowski
2024-08-27 11:39 ` Rafael J. Wysocki
2024-08-19 16:31 ` [PATCH v3 13/14] thermal: core: Drop unused bind/unbind functions and callbacks Rafael J. Wysocki
2024-08-20 7:10 ` Zhang, Rui
2024-08-21 9:33 ` lihuisong (C)
2024-08-21 14:24 ` Daniel Lezcano
2024-08-19 16:33 ` [PATCH v3 14/14] thermal: core: Clean up trip bind/unbind functions Rafael J. Wysocki
2024-08-20 7:11 ` Zhang, Rui
2024-08-21 9:34 ` lihuisong (C)
2024-08-21 14:29 ` Daniel Lezcano
2024-08-21 16:21 ` Rafael J. Wysocki
2024-08-24 18:45 ` [PATCH v3 00/14] thermal: Rework binding cooling devices to trip points Nícolas F. R. A. Prado
2024-08-26 9:58 ` Rafael J. Wysocki
2024-08-30 13:55 ` Nícolas F. R. A. Prado
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c54858ed-e263-fe80-96aa-9ac8b6f85b1c@huawei.com \
--to=lihuisong@huawei.com \
--cc=daniel.lezcano@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lukasz.luba@arm.com \
--cc=rjw@rjwysocki.net \
--cc=rui.zhang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox