From: sashiko-bot@kernel.org
To: "Shih-Yuan Lee" <fourdollars@debian.org>
Cc: linux-hwmon@vger.kernel.org
Subject: Re: [PATCH 1/1] hwmon: (applesmc) Convert to hwmon_device_register_with_info
Date: Fri, 10 Jul 2026 12:47:25 +0000 [thread overview]
Message-ID: <20260710124726.365CD1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260710123236.10508-2-fourdollars@debian.org>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Double-checked locking on `cache->valid` in `applesmc_get_entry_by_index()` lacks memory barriers, leading to a TOCTOU data race.
--
--- Patch [1]: [PATCH 1/1] hwmon: (applesmc) Convert to hwmon_device_register_with_info ---
commit 28324860025f1b3d6c23bec77f8d59b368d416c8
Author: Shih-Yuan Lee <fourdollars@debian.org>
hwmon: (applesmc) Convert to hwmon_device_register_with_info
This commit converts the applesmc driver to use the modern
hwmon_device_register_with_info API to resolve a deprecation warning.
It dynamically creates sysfs attributes and implements a visibility callback
returning 0 to hide a required minimal temperature channel, ensuring backwards
compatibility.
> diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
> index 90a14a7f2c4c0..2b10bef24d8d6 100644
> --- a/drivers/hwmon/applesmc.c
> +++ b/drivers/hwmon/applesmc.c
[ ... ]
> @@ -1363,7 +1383,8 @@ static int __init applesmc_init(void)
> if (ret)
> goto out_light_sysfs;
>
> - hwmon_dev = hwmon_device_register(&pdev->dev);
> + hwmon_dev = hwmon_device_register_with_info(&pdev->dev, "applesmc", NULL,
> + &applesmc_chip_info, NULL);
> if (IS_ERR(hwmon_dev)) {
> ret = PTR_ERR(hwmon_dev);
> goto out_light_ledclass;
[Severity: High]
This is a pre-existing issue, but I noticed a potential data race in
applesmc_get_entry_by_index() while reviewing this driver.
Can a reader thread observe cache->valid as true before the compiler has
fully committed the cache entry contents to memory?
drivers/hwmon/applesmc.c:applesmc_get_entry_by_index() {
...
if (cache->valid)
return cache;
mutex_lock(&smcreg.mutex);
...
memcpy(cache->key, key, 4);
cache->len = info[0];
memcpy(cache->type, &info[1], 4);
cache->flags = info[5];
cache->valid = true;
...
}
Because this lockless read and write of cache->valid lacks memory barriers
like smp_load_acquire() and smp_store_release(), is it possible for a
reader querying sysfs attributes to act on uninitialized data, potentially
sending invalid keys to the Apple SMC hardware?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260710123236.10508-2-fourdollars@debian.org?part=1
next prev parent reply other threads:[~2026-07-10 12:47 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-10 12:32 [PATCH 0/1] hwmon: (applesmc) Convert to hwmon_device_register_with_info Shih-Yuan Lee
2026-07-10 12:32 ` [PATCH 1/1] " Shih-Yuan Lee
2026-07-10 12:47 ` sashiko-bot [this message]
2026-07-10 14:01 ` Guenter Roeck
2026-07-10 21:10 ` Armin Wolf
2026-07-10 22:28 ` Guenter Roeck
2026-07-11 2:51 ` Shih-Yuan Lee (FourDollars)
2026-07-11 3:36 ` [PATCH v2 0/1] " Shih-Yuan Lee
2026-07-11 3:37 ` [PATCH v2 1/1] " Shih-Yuan Lee
2026-07-11 3:47 ` sashiko-bot
2026-07-11 5:39 ` [PATCH v3 0/1] " Shih-Yuan Lee
2026-07-11 5:39 ` [PATCH v3 1/1] " Shih-Yuan Lee
2026-07-11 5:52 ` sashiko-bot
2026-07-11 6:06 ` [PATCH v4 0/1] " Shih-Yuan Lee
2026-07-11 6:06 ` [PATCH v4 1/1] " Shih-Yuan Lee
2026-07-11 6:17 ` sashiko-bot
2026-07-11 7:57 ` [PATCH v5 0/3] " Shih-Yuan Lee
2026-07-11 7:57 ` [PATCH v5 1/3] hwmon: (applesmc) Cache fan positions during register initialization Shih-Yuan Lee
2026-07-11 8:06 ` sashiko-bot
2026-07-11 7:57 ` [PATCH v5 2/3] hwmon: (applesmc) Fix lockless cache validation data race Shih-Yuan Lee
2026-07-11 8:10 ` sashiko-bot
2026-07-11 7:57 ` [PATCH v5 3/3] hwmon: (applesmc) Convert to hwmon_device_register_with_info Shih-Yuan Lee
2026-07-11 8:12 ` sashiko-bot
2026-07-11 9:33 ` [PATCH v6 0/3] " Shih-Yuan Lee
2026-07-11 9:33 ` [PATCH v6 1/3] hwmon: (applesmc) Cache fan positions during register initialization Shih-Yuan Lee
2026-07-11 9:42 ` sashiko-bot
2026-07-11 9:33 ` [PATCH v6 2/3] hwmon: (applesmc) Fix lockless cache validation data race Shih-Yuan Lee
2026-07-11 9:43 ` sashiko-bot
2026-07-11 9:33 ` [PATCH v6 3/3] hwmon: (applesmc) Convert to hwmon_device_register_with_info Shih-Yuan Lee
2026-07-11 9:42 ` sashiko-bot
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=20260710124726.365CD1F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=fourdollars@debian.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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