Commit 8c13e6a3 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Bartosz Golaszewski
Browse files

gpiolib: Call validate_desc() when VALIDATE_DESC() can't be used



Call validate_desc() directly when VALIDATE_DESC() can't be used.
It will print additional information useful for debugging.

Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20250416095645.2027695-7-andriy.shevchenko@linux.intel.com


Signed-off-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
parent 35d9bb5f
Loading
Loading
Loading
Loading
+5 −11
Original line number Diff line number Diff line
@@ -421,11 +421,8 @@ int gpiod_get_direction(struct gpio_desc *desc)
	unsigned int offset;
	int ret;

	/*
	 * We cannot use VALIDATE_DESC() as we must not return 0 for a NULL
	 * descriptor like we usually do.
	 */
	if (IS_ERR_OR_NULL(desc))
	ret = validate_desc(desc, __func__);
	if (ret <= 0)
		return -EINVAL;

	CLASS(gpio_chip_guard, guard)(desc);
@@ -3982,13 +3979,10 @@ int gpiod_to_irq(const struct gpio_desc *desc)
	struct gpio_device *gdev;
	struct gpio_chip *gc;
	int offset;
	int ret;

	/*
	 * Cannot VALIDATE_DESC() here as gpiod_to_irq() consumer semantics
	 * requires this function to not return zero on an invalid descriptor
	 * but rather a negative error number.
	 */
	if (IS_ERR_OR_NULL(desc))
	ret = validate_desc(desc, __func__);
	if (ret <= 0)
		return -EINVAL;

	gdev = desc->gdev;