OSDN Git Service

gpio: gpio-mm: Mask read inputs for get_multiple
authorWilliam Breathitt Gray <vilhelm.gray@gmail.com>
Mon, 22 Oct 2018 12:09:31 +0000 (21:09 +0900)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 5 Nov 2018 07:54:41 +0000 (08:54 +0100)
This patch masks the read inputs with the word mask in order to ensure
only requested input states are returned in the bits array.

Suggested-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-gpio-mm.c

index b56ff2e..8c150fd 100644 (file)
@@ -211,7 +211,7 @@ static int gpiomm_gpio_get_multiple(struct gpio_chip *chip, unsigned long *mask,
                port_state = inb(gpiommgpio->base + ports[i]);
 
                /* store acquired bits at respective bits array offset */
-               bits[word_index] |= port_state << word_offset;
+               bits[word_index] |= (port_state << word_offset) & word_mask;
        }
 
        return 0;