Szymon Wilczek

research / torvalds/linux / hwmon / 0cd8450c257f

(coretemp) Fix core_data leak on CPUs without PTS

torvalds/linux

hwmon +1 −0

From: Szymon Wilczek <[email protected]>
Date: 10 Aug 2026
Subject: [PATCH] hwmon: (coretemp) Fix core_data leak on CPUs without PTS
Merged: 16 Aug 2026, by Guenter Roeck

pdata->core_data is allocated in init_temp_data() when the first core temp_data of a package is created, but it is only released from destroy_temp_data(), and only in the branch that handles the package temp_data.

Package temp_data is created solely when the CPU supports X86_FEATURE_PTS. On a CPU without it, coretemp_cpu_online() never calls coretemp_add_core() with pkg_flag set, so pdata->pkg_data stays NULL. coretemp_cpu_offline() then skips the removal of the package interface, destroy_temp_data() is never called for package data, and the array is still allocated when coretemp_device_remove() frees the platform data that pointed at it.

Release the array in coretemp_device_remove(). destroy_temp_data() sets pdata->core_data to NULL when it frees it, so the added kfree() is a no-op on CPUs that do have PTS.

Tested on an Intel Core i5-1135G7. The driver was instrumented to log every allocation and release of pdata->core_data, and the PTS check in coretemp_cpu_online() was patched out to emulate a CPU without package thermal support. Without this change the array was allocated and never released, and coretemp_device_remove() still saw a non-NULL pointer. With it the array is released and the pointer accounting balances. On an unmodified build the release still happens via the package temp_data and the added kfree() sees NULL, with no slab warnings over repeated module load and unload cycles.

signed, reported, fixes

  • Fixes 1a793caf6f69 the commit it fixes
  • Signed-off-by Szymon Wilczek author
  • Signed-off-by Guenter Roeck maintainer · merged it

diff

drivers/hwmon/coretemp.c +1 −0
@@ -650,6 +650,7 @@ static void coretemp_device_remove(int zoneid) 	struct platform_data *pdata = platform_get_drvdata(pdev);  	ida_destroy(&pdata->ida);+	kfree(pdata->core_data); 	kfree(pdata); 	platform_device_unregister(pdev); }

discussion · on the list

v1 · 3 messages

Szymon Wilczek author 10 Aug 2026

[PATCH] hwmon: (coretemp) Fix core_data leak on CPUs without PTS

[email protected] bot 10 Aug 2026

Sashiko has reviewed this patch and found no issues. It looks great!
applied

Guenter Roeck maintainer 11 Aug 2026

Applied. Thanks, Guenter
the whole thread on lore.kernel.org
12/12
salina
aurum
herbarium
mysterium
parchment
whispergrove
M-x 0/0

keybindings & navigation

M-x / Alt+x Open Emacs command runner
Shift + W Jump to writings & essays (/writings)
Shift + R Jump to research & upstream work (/research)
Shift + T Choose colour theme (au-themes-select)
j / k Scroll down / up
g g Scroll to the top of page
Shift + G Scroll to the bottom of page
? Toggle this keybindings help cheat sheet
Esc / C-g Dismiss modal or close active menu