Message ID | 20200221154837.18845-3-brgl@bgdev.pl |
---|---|
State | New |
Headers | show |
Series | nvmem/gpio: fix resource management | expand |
On Fri, Feb 21, 2020 at 4:48 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > We're about to add a public GPIO function that takes a descriptor as > argument and returns a pointer. Add a corresponding macro wrapping the > validate_desc() function that returns an ERR_PTR() on error. > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> (I expect to get this back as a pull request or something later.) Yours, Linus Walleij
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 4d0106ceeba7..da8ffd40aa97 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -2864,6 +2864,14 @@ static int validate_desc(const struct gpio_desc *desc, const char *func) return; \ } while (0) +#define VALIDATE_DESC_PTR(desc) do { \ + int __valid = validate_desc(desc, __func__); \ + if (__valid < 0) \ + return ERR_PTR(__valid); \ + if (__valid == 0) \ + return NULL; \ + } while (0) + int gpiod_request(struct gpio_desc *desc, const char *label) { int ret = -EPROBE_DEFER;