diff mbox series

thermal/netlink: Prevent Userspace Segmentation Fault by Adjusting UAPI Header

Message ID 20250208074907.5679-1-rui.zhang@intel.com (mailing list archive)
State Mainlined, archived
Headers show
Series thermal/netlink: Prevent Userspace Segmentation Fault by Adjusting UAPI Header | expand

Commit Message

Zhang, Rui Feb. 8, 2025, 7:49 a.m. UTC
The intel-lpmd tool [1], which uses the THERMAL_GENL_ATTR_CPU_CAPABILITY
attribute to receive HFI events from kernel space, encounters a
segmentation fault after commit 1773572863c4 ("thermal: netlink: Add the
commands and the events for the thresholds").

The issue arises because the THERMAL_GENL_ATTR_CPU_CAPABILITY raw value
was changed while intel_lpmd still uses the old value.

Although intel_lpmd can be updated to check the THERMAL_GENL_VERSION and
use the appropriate THERMAL_GENL_ATTR_CPU_CAPABILITY value, the commit
itself is questionable. The commit introduced a new element in the
middle of enum thermal_genl_attr, which affects many existing attributes
and introduces potential risks and unnecessary maintenance burdens for
userspace thermal netlink event users.

Solve the issue by moving the newly introduced
THERMAL_GENL_ATTR_TZ_PREV_TEMP attribute to the end of the
enum thermal_genl_attr. This ensures that all existing thermal generic
netlink attributes remain unaffected.

Link: https://github.com/intel/intel-lpmd [1]
Fixes: 1773572863c4 ("thermal: netlink: Add the commands and the events for the thresholds")
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
---
 include/uapi/linux/thermal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Daniel Lezcano Feb. 11, 2025, 8:01 a.m. UTC | #1
On 08/02/2025 08:49, Zhang Rui wrote:
> The intel-lpmd tool [1], which uses the THERMAL_GENL_ATTR_CPU_CAPABILITY
> attribute to receive HFI events from kernel space, encounters a
> segmentation fault after commit 1773572863c4 ("thermal: netlink: Add the
> commands and the events for the thresholds").
> 
> The issue arises because the THERMAL_GENL_ATTR_CPU_CAPABILITY raw value
> was changed while intel_lpmd still uses the old value.
> 
> Although intel_lpmd can be updated to check the THERMAL_GENL_VERSION and
> use the appropriate THERMAL_GENL_ATTR_CPU_CAPABILITY value, the commit
> itself is questionable. The commit introduced a new element in the
> middle of enum thermal_genl_attr, which affects many existing attributes
> and introduces potential risks and unnecessary maintenance burdens for
> userspace thermal netlink event users.
> 
> Solve the issue by moving the newly introduced
> THERMAL_GENL_ATTR_TZ_PREV_TEMP attribute to the end of the
> enum thermal_genl_attr. This ensures that all existing thermal generic
> netlink attributes remain unaffected.
> 
> Link: https://github.com/intel/intel-lpmd [1]
> Fixes: 1773572863c4 ("thermal: netlink: Add the commands and the events for the thresholds")
> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> ---

Right, thanks for the fix

Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Rafael J. Wysocki Feb. 11, 2025, 7:56 p.m. UTC | #2
On Tue, Feb 11, 2025 at 9:01 AM Daniel Lezcano
<daniel.lezcano@linaro.org> wrote:
>
> On 08/02/2025 08:49, Zhang Rui wrote:
> > The intel-lpmd tool [1], which uses the THERMAL_GENL_ATTR_CPU_CAPABILITY
> > attribute to receive HFI events from kernel space, encounters a
> > segmentation fault after commit 1773572863c4 ("thermal: netlink: Add the
> > commands and the events for the thresholds").
> >
> > The issue arises because the THERMAL_GENL_ATTR_CPU_CAPABILITY raw value
> > was changed while intel_lpmd still uses the old value.
> >
> > Although intel_lpmd can be updated to check the THERMAL_GENL_VERSION and
> > use the appropriate THERMAL_GENL_ATTR_CPU_CAPABILITY value, the commit
> > itself is questionable. The commit introduced a new element in the
> > middle of enum thermal_genl_attr, which affects many existing attributes
> > and introduces potential risks and unnecessary maintenance burdens for
> > userspace thermal netlink event users.
> >
> > Solve the issue by moving the newly introduced
> > THERMAL_GENL_ATTR_TZ_PREV_TEMP attribute to the end of the
> > enum thermal_genl_attr. This ensures that all existing thermal generic
> > netlink attributes remain unaffected.
> >
> > Link: https://github.com/intel/intel-lpmd [1]
> > Fixes: 1773572863c4 ("thermal: netlink: Add the commands and the events for the thresholds")
> > Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> > ---
>
> Right, thanks for the fix
>
> Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>

Applied as 6.14-rc material, thanks!
diff mbox series

Patch

diff --git a/include/uapi/linux/thermal.h b/include/uapi/linux/thermal.h
index 349718c271eb..46a2633d33aa 100644
--- a/include/uapi/linux/thermal.h
+++ b/include/uapi/linux/thermal.h
@@ -30,7 +30,6 @@  enum thermal_genl_attr {
 	THERMAL_GENL_ATTR_TZ,
 	THERMAL_GENL_ATTR_TZ_ID,
 	THERMAL_GENL_ATTR_TZ_TEMP,
-	THERMAL_GENL_ATTR_TZ_PREV_TEMP,
 	THERMAL_GENL_ATTR_TZ_TRIP,
 	THERMAL_GENL_ATTR_TZ_TRIP_ID,
 	THERMAL_GENL_ATTR_TZ_TRIP_TYPE,
@@ -54,6 +53,7 @@  enum thermal_genl_attr {
 	THERMAL_GENL_ATTR_THRESHOLD,
 	THERMAL_GENL_ATTR_THRESHOLD_TEMP,
 	THERMAL_GENL_ATTR_THRESHOLD_DIRECTION,
+	THERMAL_GENL_ATTR_TZ_PREV_TEMP,
 	__THERMAL_GENL_ATTR_MAX,
 };
 #define THERMAL_GENL_ATTR_MAX (__THERMAL_GENL_ATTR_MAX - 1)