Messages in this thread | | | Subject | Re: [PATCH] gpio: Move gpiochip_.*lock_as_irq() to the proper ifdef | From | Yuehaibing <> | Date | Thu, 5 Sep 2019 10:04:27 +0800 |
| |
On 2019/9/4 23:46, Sebastian Andrzej Siewior wrote: > In a recent commit the gpiochip_.*lock_as_irq() were moved and ended up > in the wrong `ifdef' section. Now for !CONFIG_GPIOLIB the function is > defined twice leading to an compile error. > > Move the extern function declaration under CONFIG_GPIOLIB, the "static > inline" version is already under !CONFIG_GPIOLIB. > > Fixes: c7663fa2a6631 ("gpio: Move gpiochip_lock/unlock_as_irq to gpio/driver.h") > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > --- > include/linux/gpio/driver.h | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h > index b74a3bee85e5d..fb134ff20f6b2 100644 > --- a/include/linux/gpio/driver.h > +++ b/include/linux/gpio/driver.h > @@ -702,14 +702,14 @@ void gpiochip_free_own_desc(struct gpio_desc *desc); > void devprop_gpiochip_set_names(struct gpio_chip *chip, > const struct fwnode_handle *fwnode); > > -/* lock/unlock as IRQ */ > -int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset); > -void gpiochip_unlock_as_irq(struct gpio_chip *chip, unsigned int offset); > - > #ifdef CONFIG_GPIOLIB > > struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc); > > +/* lock/unlock as IRQ */ > +int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset); > +void gpiochip_unlock_as_irq(struct gpio_chip *chip, unsigned int offset); > + > #else /* CONFIG_GPIOLIB */
Interesting, my patch indeed do the correct thing:
+/* lock/unlock as IRQ */ +int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset); +void gpiochip_unlock_as_irq(struct gpio_chip *chip, unsigned int offset); + #else /* CONFIG_GPIOLIB */
however, now in include/linux/gpio/driver.h, it is:
/* lock/unlock as IRQ */ int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset); void gpiochip_unlock_as_irq(struct gpio_chip *chip, unsigned int offset);
#ifdef CONFIG_GPIOLIB
struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc);
#else /* CONFIG_GPIOLIB */
Maybe this caused by the fuzzing? Anyway, this fix the issue, so
Reviewed-by: YueHaibing <yuehaibing@huawei.com>
> > static inline struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc) >
| |