gpio: aggregator: Fix gpio_aggregator_line_alloc() checking
authorDan Carpenter <dan.carpenter@linaro.org>
Sat, 12 Apr 2025 10:15:08 +0000 (13:15 +0300)
committerBartosz Golaszewski <brgl@bgdev.pl>
Mon, 14 Apr 2025 20:25:20 +0000 (22:25 +0200)
The gpio_aggregator_line_alloc() function returns error pointers, but
the callers check for NULL.  Update the error checking in the callers.

Fixes: 83c8e3df642f ("gpio: aggregator: expose aggregator created via legacy sysfs to configfs")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Acked-by: Koichiro Den <koichiro.den@canonical.com>
Link: https://lore.kernel.org/r/cc71d8cf6e9bb4bb8cd9ae5050100081891d9345.1744452787.git.dan.carpenter@linaro.org
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
drivers/gpio/gpio-aggregator.c

index b4c9e373a6ecb22e2f462cfa2010690d47dbc361..e1b2efc0df99f98c4092a6fb5e2f422fb2e8cb25 100644 (file)
@@ -984,8 +984,8 @@ gpio_aggregator_device_make_group(struct config_group *group, const char *name)
                        return ERR_PTR(-EINVAL);
 
        line = gpio_aggregator_line_alloc(aggr, idx, NULL, -1);
-       if (!line)
-               return ERR_PTR(-ENOMEM);
+       if (IS_ERR(line))
+               return ERR_CAST(line);
 
        config_group_init_type_name(&line->group, name, &gpio_aggregator_line_type);
 
@@ -1074,8 +1074,8 @@ static int gpio_aggregator_parse(struct gpio_aggregator *aggr)
                        /* Named GPIO line */
                        scnprintf(name, sizeof(name), "line%u", n);
                        line = gpio_aggregator_line_alloc(aggr, n, key, -1);
-                       if (!line) {
-                               error = -ENOMEM;
+                       if (IS_ERR(line)) {
+                               error = PTR_ERR(line);
                                goto err;
                        }
                        config_group_init_type_name(&line->group, name,
@@ -1105,8 +1105,8 @@ static int gpio_aggregator_parse(struct gpio_aggregator *aggr)
                for_each_set_bit(i, bitmap, AGGREGATOR_MAX_GPIOS) {
                        scnprintf(name, sizeof(name), "line%u", n);
                        line = gpio_aggregator_line_alloc(aggr, n, key, i);
-                       if (!line) {
-                               error = -ENOMEM;
+                       if (IS_ERR(line)) {
+                               error = PTR_ERR(line);
                                goto err;
                        }
                        config_group_init_type_name(&line->group, name,