]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Input: iqs62x-keys - use cleanup facility for fwnodes
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 25 Aug 2024 05:16:12 +0000 (22:16 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 6 Sep 2024 05:53:28 +0000 (22:53 -0700)
Use __free(fwnode_handle) cleanup facility to ensure that references
to acquired fwnodes are dropped at appropriate times automatically.

Reviewed-by: Jeff LaBundy <jeff@labundy.com>
Link: https://lore.kernel.org/r/20240825051627.2848495-9-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/keyboard/iqs62x-keys.c

index 688d61244b5fdf6640777adeb6aea536e94d35f0..1315b0f0862fc0b3c4018755e8bae464ceb9ea42 100644 (file)
@@ -45,7 +45,6 @@ struct iqs62x_keys_private {
 static int iqs62x_keys_parse_prop(struct platform_device *pdev,
                                  struct iqs62x_keys_private *iqs62x_keys)
 {
-       struct fwnode_handle *child;
        unsigned int val;
        int ret, i;
 
@@ -68,7 +67,8 @@ static int iqs62x_keys_parse_prop(struct platform_device *pdev,
        }
 
        for (i = 0; i < ARRAY_SIZE(iqs62x_keys->switches); i++) {
-               child = device_get_named_child_node(&pdev->dev,
+               struct fwnode_handle *child __free(fwnode_handle) =
+                       device_get_named_child_node(&pdev->dev,
                                                    iqs62x_switch_names[i]);
                if (!child)
                        continue;
@@ -77,7 +77,6 @@ static int iqs62x_keys_parse_prop(struct platform_device *pdev,
                if (ret) {
                        dev_err(&pdev->dev, "Failed to read switch code: %d\n",
                                ret);
-                       fwnode_handle_put(child);
                        return ret;
                }
                iqs62x_keys->switches[i].code = val;
@@ -91,8 +90,6 @@ static int iqs62x_keys_parse_prop(struct platform_device *pdev,
                        iqs62x_keys->switches[i].flag = (i == IQS62X_SW_HALL_N ?
                                                         IQS62X_EVENT_HALL_N_T :
                                                         IQS62X_EVENT_HALL_S_T);
-
-               fwnode_handle_put(child);
        }
 
        return 0;