Commit f40f7307 authored by Colin Ian King's avatar Colin Ian King Committed by Linus Walleij

gpio: ep93xx: fix incorrect array element size check

Currently the while loop checks for the end of the array using
the size of egp->gc rather that the number of elements in the array,
so fix this. Also, perform the array size check first as stylistically
it is always good to bounds check on an array first before referencing
the array (in this case, we're just computing the address of an
element in an array so this is a moot point).

Fixes: fd935fc4 ("gpio: ep93xx: Do not pingpong irq numbers")
Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 02ad0437
...@@ -76,7 +76,7 @@ static int ep93xx_gpio_port(struct gpio_chip *gc) ...@@ -76,7 +76,7 @@ static int ep93xx_gpio_port(struct gpio_chip *gc)
struct ep93xx_gpio *epg = gpiochip_get_data(gc); struct ep93xx_gpio *epg = gpiochip_get_data(gc);
int port = 0; int port = 0;
while (gc != &epg->gc[port] && port < sizeof(epg->gc)) while (port < ARRAY_SIZE(epg->gc) && gc != &epg->gc[port])
port++; port++;
/* This should not happen but is there as a last safeguard */ /* This should not happen but is there as a last safeguard */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment