More and more drivers will check for bad characters in the hwmon name and all are using the same code snippet. Consolidate that code by adding a new hwmon_sanitize_name() function. Signed-off-by: Michael Walle <michael@xxxxxxxx> --- drivers/hwmon/intel-m10-bmc-hwmon.c | 5 +---- include/linux/hwmon.h | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/drivers/hwmon/intel-m10-bmc-hwmon.c b/drivers/hwmon/intel-m10-bmc-hwmon.c index 7a08e4c44a4b..e6e55fc30153 100644 --- a/drivers/hwmon/intel-m10-bmc-hwmon.c +++ b/drivers/hwmon/intel-m10-bmc-hwmon.c @@ -515,7 +515,6 @@ static int m10bmc_hwmon_probe(struct platform_device *pdev) struct intel_m10bmc *m10bmc = dev_get_drvdata(pdev->dev.parent); struct device *hwmon_dev, *dev = &pdev->dev; struct m10bmc_hwmon *hw; - int i; hw = devm_kzalloc(dev, sizeof(*hw), GFP_KERNEL); if (!hw) @@ -532,9 +531,7 @@ static int m10bmc_hwmon_probe(struct platform_device *pdev) if (!hw->hw_name) return -ENOMEM; - for (i = 0; hw->hw_name[i]; i++) - if (hwmon_is_bad_char(hw->hw_name[i])) - hw->hw_name[i] = '_'; + hwmon_sanitize_name(hw->hw_name); hwmon_dev = devm_hwmon_device_register_with_info(dev, hw->hw_name, hw, &hw->chip, NULL); diff --git a/include/linux/hwmon.h b/include/linux/hwmon.h index eba380b76d15..210b8c0b2827 100644 --- a/include/linux/hwmon.h +++ b/include/linux/hwmon.h @@ -484,4 +484,20 @@ static inline bool hwmon_is_bad_char(const char ch) } } +/** + * hwmon_sanitize_name - Replaces invalid characters in a hwmon name + * @name: NUL-terminated name + * + * Invalid characters in the name will be overwritten in-place by an + * underscore. + */ +static inline void hwmon_sanitize_name(char *name) +{ + while (*name) { + if (hwmon_is_bad_char(*name)) + *name = '_'; + name++; + }; +} + #endif -- 2.30.2