On Tue, Jan 17, 2023 at 8:44 AM Pierluigi Passaro <pierluigi.p@xxxxxxxxxxxxx> wrote: > > On Tue, Jan 17, 2023 at 7:23 AM Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx> wrote: > > Hi, > > > > Am Montag, 16. Januar 2023, 15:08:11 CET schrieb Pierluigi Passaro: > > > Both the functions gpiochip_request_own_desc and > > > gpiochip_free_own_desc are exported from > > > drivers/gpio/gpiolib.c > > > but this file is compiled only when CONFIG_GPIOLIB is enabled. > > > Move the protototypes under "#ifdef CONFIG_GPIOLIB" and provide > > > reasonable definitions in the "#else" branch. > > > > > > Signed-off-by: Pierluigi Passaro <pierluigi.p@xxxxxxxxxxxxx> > > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > > --- > > > include/linux/gpio/driver.h | 20 ++++++++++++++++++-- > > > 1 file changed, 18 insertions(+), 2 deletions(-) > > > > > > diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h > > > index 44783fc16125..ed77c6fc0beb 100644 > > > --- a/include/linux/gpio/driver.h > > > +++ b/include/linux/gpio/driver.h > > > @@ -758,6 +758,8 @@ gpiochip_remove_pin_ranges(struct gpio_chip *gc) > > > > > > #endif /* CONFIG_PINCTRL */ > > > > > > +#ifdef CONFIG_GPIOLIB > > > + > > > struct gpio_desc *gpiochip_request_own_desc(struct gpio_chip *gc, > > > unsigned int hwnum, > > > const char *label, > > > @@ -765,8 +767,6 @@ struct gpio_desc *gpiochip_request_own_desc(struct > > > gpio_chip *gc, enum gpiod_flags dflags); > > > void gpiochip_free_own_desc(struct gpio_desc *desc); > > > > > > -#ifdef CONFIG_GPIOLIB > > > - > > > /* lock/unlock as IRQ */ > > > int gpiochip_lock_as_irq(struct gpio_chip *gc, unsigned int offset); > > > void gpiochip_unlock_as_irq(struct gpio_chip *gc, unsigned int offset); > > > @@ -776,6 +776,22 @@ struct gpio_chip *gpiod_to_chip(const struct gpio_desc > > > *desc); > > > > > > #else /* CONFIG_GPIOLIB */ > > > > > > +static inline struct gpio_desc *gpiochip_request_own_desc(struct gpio_chip > > > *gc, + unsigned int hwnum, > > > + const char *label, > > > + enum gpio_lookup_flags > > lflags, > > > + enum gpiod_flags dflags) > > > +{ > > > + /* GPIO can never have been requested */ > > > + WARN_ON(1); > > > > This will raise the warning on each invocation. How about using > > WARN_ON_ONCE(1), or even WARN_ONCE("Kernel compiled without CONFIG_GPIOLIB > > support")? > > > No problem on my side, but this would create a misalignment with all other > GPIOLIB "dummy" calls. > Personally I would prefer WARN_ONCE("Kernel compiled without CONFIG_GPIOLIB > support"). > Please confirm your preferences and I'll provide a patch v2. > Thanks > > > > > + return ERR_PTR(-ENODEV); > > > +} > > > + > > > +static inline void gpiochip_free_own_desc(struct gpio_desc *desc) > > > +{ > > > + WARN_ON(1); > > > > Same as above. > > > > Best regards, > > Alexander > > > > > +} > > > + > > > static inline struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc) > > > { > > > /* GPIO can never have been requested */ If someone calls these functions without GPIOLIB enabled then they deserve lots of warnings to remind them to fix their config. :) Let's keep it like in other places. Bart