From: Dan Carpenter Date: Sat, 12 Apr 2025 10:15:08 +0000 (+0300) Subject: gpio: aggregator: Fix gpio_aggregator_line_alloc() checking X-Git-Tag: v6.16-rc1~169^2~86 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2e8636ca340002f3ac31383622911a1aa75fb086;p=thirdparty%2Flinux.git gpio: aggregator: Fix gpio_aggregator_line_alloc() checking 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 Acked-by: Koichiro Den Link: https://lore.kernel.org/r/cc71d8cf6e9bb4bb8cd9ae5050100081891d9345.1744452787.git.dan.carpenter@linaro.org Signed-off-by: Bartosz Golaszewski --- diff --git a/drivers/gpio/gpio-aggregator.c b/drivers/gpio/gpio-aggregator.c index b4c9e373a6ecb..e1b2efc0df99f 100644 --- a/drivers/gpio/gpio-aggregator.c +++ b/drivers/gpio/gpio-aggregator.c @@ -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,