* [PATCH 0/2] hwmon: Minor errno and sysfs fixes
@ 2025-12-19 15:48 Kari Argillander
2025-12-19 15:48 ` [PATCH 1/2] hwmon: Fix wrong return errno in *sanitize_name() Kari Argillander
2025-12-19 15:48 ` [PATCH 2/2] hwmon: Use sysfs_emit in show function callsbacks Kari Argillander
0 siblings, 2 replies; 5+ messages in thread
From: Kari Argillander @ 2025-12-19 15:48 UTC (permalink / raw)
To: Kari Argillander, Guenter Roeck; +Cc: linux-hwmon, linux-kernel
This series contains two small hwmon cleanups.
The first patch fixes an incorrect errno returned by sanitize_name()
when called with a NULL pointer. Returning ENOMEM in that case is
misleading. EINVAL better reflects the actual error.
The second patch switches sysfs show callbacks to sysfs_emit(), as
recommended by Documentation/filesystems/sysfs.rst. While the risk of
overflow with sprintf() is low in practice, using sysfs_emit() avoids
the issue entirely and aligns the code with current kernel guidance.
This also simplifies Rust bindings, where overflows cannot be ignored.
Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
---
Kari Argillander (2):
hwmon: Fix wrong return errno in *sanitize_name()
hwmon: Use sysfs_emit in show function callsbacks
drivers/hwmon/hwmon.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
---
base-commit: cc3aa43b44bdb43dfbac0fcb51c56594a11338a8
change-id: 20251219-hwmon-fixes-b8e205834d20
Best regards,
--
Kari Argillander <kari.argillander@gmail.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] hwmon: Fix wrong return errno in *sanitize_name()
2025-12-19 15:48 [PATCH 0/2] hwmon: Minor errno and sysfs fixes Kari Argillander
@ 2025-12-19 15:48 ` Kari Argillander
2025-12-19 16:46 ` Guenter Roeck
2025-12-19 15:48 ` [PATCH 2/2] hwmon: Use sysfs_emit in show function callsbacks Kari Argillander
1 sibling, 1 reply; 5+ messages in thread
From: Kari Argillander @ 2025-12-19 15:48 UTC (permalink / raw)
To: Kari Argillander, Guenter Roeck; +Cc: linux-hwmon, linux-kernel
Currently if user of *sanitize_name() function gives nullptr for name
they get's ENOMEM. Logically it should be EINVAL.
Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
---
drivers/hwmon/hwmon.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/hwmon/hwmon.c b/drivers/hwmon/hwmon.c
index 0b4bdcd33c7b..7a784d685d77 100644
--- a/drivers/hwmon/hwmon.c
+++ b/drivers/hwmon/hwmon.c
@@ -1260,6 +1260,9 @@ static char *__hwmon_sanitize_name(struct device *dev, const char *old_name)
*/
char *hwmon_sanitize_name(const char *name)
{
+ if (!name)
+ return ERR_PTR(-EINVAL);
+
return __hwmon_sanitize_name(NULL, name);
}
EXPORT_SYMBOL_GPL(hwmon_sanitize_name);
@@ -1276,7 +1279,7 @@ EXPORT_SYMBOL_GPL(hwmon_sanitize_name);
*/
char *devm_hwmon_sanitize_name(struct device *dev, const char *name)
{
- if (!dev)
+ if (!dev || !name)
return ERR_PTR(-EINVAL);
return __hwmon_sanitize_name(dev, name);
--
2.43.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] hwmon: Use sysfs_emit in show function callsbacks
2025-12-19 15:48 [PATCH 0/2] hwmon: Minor errno and sysfs fixes Kari Argillander
2025-12-19 15:48 ` [PATCH 1/2] hwmon: Fix wrong return errno in *sanitize_name() Kari Argillander
@ 2025-12-19 15:48 ` Kari Argillander
2025-12-19 16:47 ` Guenter Roeck
1 sibling, 1 reply; 5+ messages in thread
From: Kari Argillander @ 2025-12-19 15:48 UTC (permalink / raw)
To: Kari Argillander, Guenter Roeck; +Cc: linux-hwmon, linux-kernel
Use sysfs_emit() over sprintf() to prevent potential overflows. In
hwmon_attr_show() that is totally impossible but looking other places
many still use sysfs_emit().
Also according Documentation/filesystems/sysfs.rst code should use
sysfs_emit().
Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
---
drivers/hwmon/hwmon.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/hwmon/hwmon.c b/drivers/hwmon/hwmon.c
index 7a784d685d77..714caa6a36a3 100644
--- a/drivers/hwmon/hwmon.c
+++ b/drivers/hwmon/hwmon.c
@@ -73,7 +73,7 @@ struct hwmon_thermal_data {
static ssize_t
name_show(struct device *dev, struct device_attribute *attr, char *buf)
{
- return sprintf(buf, "%s\n", to_hwmon_device(dev)->name);
+ return sysfs_emit(buf, "%s\n", to_hwmon_device(dev)->name);
}
static DEVICE_ATTR_RO(name);
@@ -446,7 +446,7 @@ static ssize_t hwmon_attr_show(struct device *dev,
trace_hwmon_attr_show(hattr->index + hwmon_attr_base(hattr->type),
hattr->name, val64);
- return sprintf(buf, "%lld\n", val64);
+ return sysfs_emit(buf, "%lld\n", val64);
}
static ssize_t hwmon_attr_show_string(struct device *dev,
@@ -469,7 +469,7 @@ static ssize_t hwmon_attr_show_string(struct device *dev,
trace_hwmon_attr_show_string(hattr->index + hwmon_attr_base(type),
hattr->name, s);
- return sprintf(buf, "%s\n", s);
+ return sysfs_emit(buf, "%s\n", s);
}
static ssize_t hwmon_attr_store(struct device *dev,
--
2.43.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] hwmon: Fix wrong return errno in *sanitize_name()
2025-12-19 15:48 ` [PATCH 1/2] hwmon: Fix wrong return errno in *sanitize_name() Kari Argillander
@ 2025-12-19 16:46 ` Guenter Roeck
0 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2025-12-19 16:46 UTC (permalink / raw)
To: Kari Argillander; +Cc: linux-hwmon, linux-kernel
On Fri, Dec 19, 2025 at 05:48:14PM +0200, Kari Argillander wrote:
> Currently if user of *sanitize_name() function gives nullptr for name
> they get's ENOMEM. Logically it should be EINVAL.
>
> Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
Applied.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] hwmon: Use sysfs_emit in show function callsbacks
2025-12-19 15:48 ` [PATCH 2/2] hwmon: Use sysfs_emit in show function callsbacks Kari Argillander
@ 2025-12-19 16:47 ` Guenter Roeck
0 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2025-12-19 16:47 UTC (permalink / raw)
To: Kari Argillander; +Cc: linux-hwmon, linux-kernel
On Fri, Dec 19, 2025 at 05:48:15PM +0200, Kari Argillander wrote:
> Use sysfs_emit() over sprintf() to prevent potential overflows. In
> hwmon_attr_show() that is totally impossible but looking other places
> many still use sysfs_emit().
>
> Also according Documentation/filesystems/sysfs.rst code should use
> sysfs_emit().
>
> Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
Applied.
Thanks,
Guenter
> ---
> drivers/hwmon/hwmon.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/hwmon/hwmon.c b/drivers/hwmon/hwmon.c
> index 7a784d685d77..714caa6a36a3 100644
> --- a/drivers/hwmon/hwmon.c
> +++ b/drivers/hwmon/hwmon.c
> @@ -73,7 +73,7 @@ struct hwmon_thermal_data {
> static ssize_t
> name_show(struct device *dev, struct device_attribute *attr, char *buf)
> {
> - return sprintf(buf, "%s\n", to_hwmon_device(dev)->name);
> + return sysfs_emit(buf, "%s\n", to_hwmon_device(dev)->name);
> }
> static DEVICE_ATTR_RO(name);
>
> @@ -446,7 +446,7 @@ static ssize_t hwmon_attr_show(struct device *dev,
> trace_hwmon_attr_show(hattr->index + hwmon_attr_base(hattr->type),
> hattr->name, val64);
>
> - return sprintf(buf, "%lld\n", val64);
> + return sysfs_emit(buf, "%lld\n", val64);
> }
>
> static ssize_t hwmon_attr_show_string(struct device *dev,
> @@ -469,7 +469,7 @@ static ssize_t hwmon_attr_show_string(struct device *dev,
> trace_hwmon_attr_show_string(hattr->index + hwmon_attr_base(type),
> hattr->name, s);
>
> - return sprintf(buf, "%s\n", s);
> + return sysfs_emit(buf, "%s\n", s);
> }
>
> static ssize_t hwmon_attr_store(struct device *dev,
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-12-19 16:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-12-19 15:48 [PATCH 0/2] hwmon: Minor errno and sysfs fixes Kari Argillander
2025-12-19 15:48 ` [PATCH 1/2] hwmon: Fix wrong return errno in *sanitize_name() Kari Argillander
2025-12-19 16:46 ` Guenter Roeck
2025-12-19 15:48 ` [PATCH 2/2] hwmon: Use sysfs_emit in show function callsbacks Kari Argillander
2025-12-19 16:47 ` Guenter Roeck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®