Skip to content

Commit

Permalink
hwmon: (core) Use device name as a fallback in devm_hwmon_device_regi…
Browse files Browse the repository at this point in the history
…ster_with_info

A number of network PHY drivers use the following code:

name = devm_hwmon_sanitize_name(dev, dev_name(dev));
if (IS_ERR(name))
	return PTR_ERR(name);
devm_hwmon_device_register_with_info(dev, name, ..);

Make this a generic fallback option and use the device name if no name
is provided to devm_hwmon_device_register_with_info(). This would allow
to simplify the affected drivers.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://lore.kernel.org/r/1ebe6961-6445-4408-bfb4-b56173af9db5@gmail.com
[groeck: Update API document]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
  • Loading branch information
Heiner Kallweit authored and Guenter Roeck committed Jan 9, 2025
1 parent 788bd79 commit c909e68
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
3 changes: 2 additions & 1 deletion Documentation/hwmon/hwmon-kernel-api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ hwmon_device_register_with_info.

All supported hwmon device registration functions only accept valid device
names. Device names including invalid characters (whitespace, '*', or '-')
will be rejected. The 'name' parameter is mandatory.
will be rejected. If NULL is passed as name parameter, the hardware monitoring
device name will be derived from the parent device name.

If the driver doesn't use a static device name (for example it uses
dev_name()), and therefore cannot make sure the name only contains valid
Expand Down
6 changes: 6 additions & 0 deletions drivers/hwmon/hwmon.c
Original file line number Diff line number Diff line change
Expand Up @@ -1170,6 +1170,12 @@ devm_hwmon_device_register_with_info(struct device *dev, const char *name,
if (!dev)
return ERR_PTR(-EINVAL);

if (!name) {
name = devm_hwmon_sanitize_name(dev, dev_name(dev));
if (IS_ERR(name))
return ERR_CAST(name);
}

ptr = devres_alloc(devm_hwmon_release, sizeof(*ptr), GFP_KERNEL);
if (!ptr)
return ERR_PTR(-ENOMEM);
Expand Down

0 comments on commit c909e68

Please sign in to comment.