Re: [PATCH v4 0/6] Thermal zone device structure encapsulation

From: Rafael J. Wysocki
Date: Thu Apr 27 2023 - 13:23:56 EST


On Wed, Apr 19, 2023 at 10:33 AM Daniel Lezcano
<daniel.lezcano@xxxxxxxxxx> wrote:
>
> The thermal zone device structure is defined in the exported thermal
> header include/linux/thermal.h
>
> Given the definition being public, the structure is exposed to the
> external components other than the thermal framework core code. It
> results the drivers are tampering the structure internals like taking
> the lock or changing the field values.
>
> Obviously that is bad for several reasons as the drivers can hook the
> thermal framework behavior and makes very difficult the changes in the
> core code as external components depend on it directly.
>
> Moreover, the thermal trip points being reworked, we don't want the
> drivers to access the trips array directly in the thermal zone
> structure and doing assumptions on how they are organized.
>
> This series provides a second set of changes moving to the thermal
> zone device structure self-encapsulation.
>
> The ACPI and the Menlon drivers are using the thermal zone's device
> fields to create symlinks and new attributes in the sysfs thermal zone
> directory. These changes provide a hopefully temporary wrapper to
> access it in order to allow moving forward in the thermal zone device
> self-encapsulation and a Kconfig option to disable by default such a
> extra sysfs information.
>
> Changelog:
> v4:
> - Encapsulate extra sysfs information inside a function for
> ACPI but remove the Kconfig option
> - Encapsulate extra sysfs information inside a function,
> create the stubs and put that conditionnal to a Kconfig
> option for Menlow
> v3:
> - Split the Kconfig option to be driver related when disabling
> the specific attributes
> - Use the thermal zone's device wrapper to write a trace in
> the pch intel driver
> v2:
> - Add the Kconfig option to remove specific attributes
> - Add a thermal_zone_device() wrapper to access tz->device
>
> Daniel Lezcano (6):
> thermal/core: Encapsulate tz->device field
> thermal/drivers/intel_pch_thermal: Use thermal driver device to write
> a trace
> thermal/drivers/acpi: Use thermal_zone_device()
> thermal/drivers/menlow: Use thermal_zone_device()
> thermal/drivers/acpi: Move to dedicated function sysfs extra attr
> creation
> thermal/drivers/intel_menlow: Make additionnal sysfs information
> optional
>
> drivers/acpi/thermal.c | 47 +++++++++++++++--------
> drivers/thermal/intel/Kconfig | 11 ++++++
> drivers/thermal/intel/intel_menlow.c | 18 +++++++--
> drivers/thermal/intel/intel_pch_thermal.c | 3 +-
> drivers/thermal/thermal_core.c | 6 +++
> include/linux/thermal.h | 1 +
> 6 files changed, 67 insertions(+), 19 deletions(-)
>
> --

Patches [4/6] and [6/6] were superseded by the Menlow driver removal.

I've applied the rest as 6.4-rc material, with some subject
adjustments and after removing some trailing white space in a few
places.

Thanks!