Input: cyapa - switch to using devm_device_add_group()
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 13 Jul 2019 08:23:18 +0000 (01:23 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 24 Jul 2019 09:59:01 +0000 (12:59 +0300)
Instead of installing custom devm cleanup action to remove attribute
groups on failure, let's use the dedicated devm API.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/cyapa.c

index dfd3873513e4b5b635b492b83217b18f0ad96e01..c675f156948b5178ce9a7d3deb4f0ea4316d7b2a 100644 (file)
@@ -1238,13 +1238,6 @@ static const struct attribute_group cyapa_sysfs_group = {
        .attrs = cyapa_sysfs_entries,
 };
 
-static void cyapa_remove_sysfs_group(void *data)
-{
-       struct cyapa *cyapa = data;
-
-       sysfs_remove_group(&cyapa->client->dev.kobj, &cyapa_sysfs_group);
-}
-
 static void cyapa_disable_regulator(void *data)
 {
        struct cyapa *cyapa = data;
@@ -1312,19 +1305,12 @@ static int cyapa_probe(struct i2c_client *client,
                return error;
        }
 
-       error = sysfs_create_group(&dev->kobj, &cyapa_sysfs_group);
+       error = devm_device_add_group(dev, &cyapa_sysfs_group);
        if (error) {
                dev_err(dev, "failed to create sysfs entries: %d\n", error);
                return error;
        }
 
-       error = devm_add_action(dev, cyapa_remove_sysfs_group, cyapa);
-       if (error) {
-               cyapa_remove_sysfs_group(cyapa);
-               dev_err(dev, "failed to add sysfs cleanup action: %d\n", error);
-               return error;
-       }
-
        error = cyapa_prepare_wakeup_controls(cyapa);
        if (error) {
                dev_err(dev, "failed to prepare wakeup controls: %d\n", error);