leds: ncp5623: Use common error handling code in ncp5623_probe()
authorMarkus Elfring <elfring@users.sourceforge.net>
Wed, 5 Jun 2024 14:19:26 +0000 (16:19 +0200)
committerLee Jones <lee@kernel.org>
Wed, 26 Jun 2024 15:56:02 +0000 (16:56 +0100)
Add a label so that a bit of exception handling can be better reused
at the end of this function implementation.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Link: https://lore.kernel.org/r/5faec5de-fc36-4b38-abcb-c61954a824cd@web.de
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/rgb/leds-ncp5623.c

index 2be4ff9185169c87931e7942cf064a0c8c3cd66e..f181566833758dcbf165492cbad6419b6c8b404d 100644 (file)
@@ -183,16 +183,12 @@ static int ncp5623_probe(struct i2c_client *client)
 
        fwnode_for_each_available_child_node(mc_node, led_node) {
                ret = fwnode_property_read_u32(led_node, "color", &color_index);
-               if (ret) {
-                       fwnode_handle_put(led_node);
-                       goto release_mc_node;
-               }
+               if (ret)
+                       goto release_led_node;
 
                ret = fwnode_property_read_u32(led_node, "reg", &reg);
-               if (ret) {
-                       fwnode_handle_put(led_node);
-                       goto release_mc_node;
-               }
+               if (ret)
+                       goto release_led_node;
 
                subled_info[ncp->mc_dev.num_colors].channel = reg;
                subled_info[ncp->mc_dev.num_colors++].color_index = color_index;
@@ -223,6 +219,10 @@ release_mc_node:
        fwnode_handle_put(mc_node);
 
        return ret;
+
+release_led_node:
+       fwnode_handle_put(led_node);
+       goto release_mc_node;
 }
 
 static void ncp5623_remove(struct i2c_client *client)