4.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Andy Shevchenko <andriy.shevche...@linux.intel.com>

[ Upstream commit 36b312792b97933dc07abe074f50941199bd357c ]

In case we try to lock GPIO pin as IRQ when something going wrong
we print a misleading message.

Correct this by checking an error code from ->get_direction() in
gpiochip_lock_as_irq() and printing a corresponding message.

Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com>
Cc: Mika Westerberg <mika.westerb...@linux.intel.com>
Signed-off-by: Linus Walleij <linus.wall...@linaro.org>
Signed-off-by: Sasha Levin <alexander.le...@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/gpio/gpiolib.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -3257,6 +3257,12 @@ int gpiochip_lock_as_irq(struct gpio_chi
        if (!chip->can_sleep && chip->get_direction) {
                int dir = chip->get_direction(chip, offset);
 
+               if (dir < 0) {
+                       chip_err(chip, "%s: cannot get GPIO direction\n",
+                                __func__);
+                       return dir;
+               }
+
                if (dir)
                        clear_bit(FLAG_IS_OUT, &desc->flags);
                else


Reply via email to