hwmon: Use device_show_string() helper for sysfs attributes
authorLukas Wunner <lukas@wunner.de>
Sat, 20 Apr 2024 20:00:02 +0000 (22:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 4 May 2024 15:37:03 +0000 (17:37 +0200)
Deduplicate sysfs ->show() callbacks which expose a string at a static
memory location.  Use the newly introduced device_show_string() helper
in the driver core instead by declaring those sysfs attributes with
DEVICE_STRING_ATTR_RO().

No functional change intended.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/23c2031acaa64f1c02f00e817c3f7e4466d17ab2.1713608122.git.lukas@wunner.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hwmon/i5k_amb.c
drivers/hwmon/ibmpex.c

index ff48913fe6bf62c13a5620e2dac257076e2599bd..02f5d35dd3199091c90208266e7cfb422be718f0 100644 (file)
@@ -101,14 +101,7 @@ struct i5k_amb_data {
        unsigned int num_attrs;
 };
 
-static ssize_t name_show(struct device *dev, struct device_attribute *devattr,
-                        char *buf)
-{
-       return sprintf(buf, "%s\n", DRVNAME);
-}
-
-
-static DEVICE_ATTR_RO(name);
+static DEVICE_STRING_ATTR_RO(name, 0444, DRVNAME);
 
 static struct platform_device *amb_pdev;
 
@@ -373,7 +366,7 @@ static int i5k_amb_hwmon_init(struct platform_device *pdev)
                }
        }
 
-       res = device_create_file(&pdev->dev, &dev_attr_name);
+       res = device_create_file(&pdev->dev, &dev_attr_name.attr);
        if (res)
                goto exit_remove;
 
@@ -386,7 +379,7 @@ static int i5k_amb_hwmon_init(struct platform_device *pdev)
        return res;
 
 exit_remove:
-       device_remove_file(&pdev->dev, &dev_attr_name);
+       device_remove_file(&pdev->dev, &dev_attr_name.attr);
        for (i = 0; i < data->num_attrs; i++)
                device_remove_file(&pdev->dev, &data->attrs[i].s_attr.dev_attr);
        kfree(data->attrs);
@@ -561,7 +554,7 @@ static void i5k_amb_remove(struct platform_device *pdev)
        struct i5k_amb_data *data = platform_get_drvdata(pdev);
 
        hwmon_device_unregister(data->hwmon_dev);
-       device_remove_file(&pdev->dev, &dev_attr_name);
+       device_remove_file(&pdev->dev, &dev_attr_name.attr);
        for (i = 0; i < data->num_attrs; i++)
                device_remove_file(&pdev->dev, &data->attrs[i].s_attr.dev_attr);
        kfree(data->attrs);
index db066b3689187d810c1734ecedfbbbcbe7516305..228c5f6c6f383688752caa7dc6a8a52b20261d50 100644 (file)
@@ -256,12 +256,7 @@ static struct ibmpex_bmc_data *get_bmc_data(int iface)
        return NULL;
 }
 
-static ssize_t name_show(struct device *dev, struct device_attribute *devattr,
-                        char *buf)
-{
-       return sprintf(buf, "%s\n", DRVNAME);
-}
-static SENSOR_DEVICE_ATTR_RO(name, name, 0);
+static DEVICE_STRING_ATTR_RO(name, 0444, DRVNAME);
 
 static ssize_t ibmpex_show_sensor(struct device *dev,
                                  struct device_attribute *devattr,
@@ -415,8 +410,7 @@ static int ibmpex_find_sensors(struct ibmpex_bmc_data *data)
        if (err)
                goto exit_remove;
 
-       err = device_create_file(data->bmc_device,
-                       &sensor_dev_attr_name.dev_attr);
+       err = device_create_file(data->bmc_device, &dev_attr_name.attr);
        if (err)
                goto exit_remove;
 
@@ -425,7 +419,7 @@ static int ibmpex_find_sensors(struct ibmpex_bmc_data *data)
 exit_remove:
        device_remove_file(data->bmc_device,
                           &sensor_dev_attr_reset_high_low.dev_attr);
-       device_remove_file(data->bmc_device, &sensor_dev_attr_name.dev_attr);
+       device_remove_file(data->bmc_device, &dev_attr_name.attr);
        for (i = 0; i < data->num_sensors; i++)
                for (j = 0; j < PEX_NUM_SENSOR_FUNCS; j++) {
                        if (!data->sensors[i].attr[j].dev_attr.attr.name)
@@ -516,7 +510,7 @@ static void ibmpex_bmc_delete(struct ibmpex_bmc_data *data)
 
        device_remove_file(data->bmc_device,
                           &sensor_dev_attr_reset_high_low.dev_attr);
-       device_remove_file(data->bmc_device, &sensor_dev_attr_name.dev_attr);
+       device_remove_file(data->bmc_device, &dev_attr_name.attr);
        for (i = 0; i < data->num_sensors; i++)
                for (j = 0; j < PEX_NUM_SENSOR_FUNCS; j++) {
                        if (!data->sensors[i].attr[j].dev_attr.attr.name)