summaryrefslogtreecommitdiffstats
path: root/sys/arm/ti/ti_gpio.c
diff options
context:
space:
mode:
authorloos <loos@FreeBSD.org>2014-12-27 19:56:04 +0000
committerloos <loos@FreeBSD.org>2014-12-27 19:56:04 +0000
commit03487439a5c9270e1e3a2a8ed8972b6672d3677b (patch)
tree0279e81ed68815be1b43b38556e14634ab50bf1d /sys/arm/ti/ti_gpio.c
parent1ce1e01004752caaeccd4b53fc8751cf060ac5a5 (diff)
downloadFreeBSD-src-03487439a5c9270e1e3a2a8ed8972b6672d3677b.zip
FreeBSD-src-03487439a5c9270e1e3a2a8ed8972b6672d3677b.tar.gz
Fix a off-by-one bug.
Pointy hat to: loos
Diffstat (limited to 'sys/arm/ti/ti_gpio.c')
-rw-r--r--sys/arm/ti/ti_gpio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/arm/ti/ti_gpio.c b/sys/arm/ti/ti_gpio.c
index 5fe8094..ed24958 100644
--- a/sys/arm/ti/ti_gpio.c
+++ b/sys/arm/ti/ti_gpio.c
@@ -334,7 +334,7 @@ static int
ti_gpio_valid_pin(struct ti_gpio_softc *sc, int pin)
{
- if (pin > sc->sc_maxpin ||
+ if (pin >= sc->sc_maxpin ||
TI_GPIO_BANK(pin) >= ti_max_gpio_banks() ||
sc->sc_mem_res[TI_GPIO_BANK(pin)] == NULL) {
return (EINVAL);
@@ -755,6 +755,7 @@ ti_gpio_attach(device_t dev)
sc->sc_dev = dev;
TI_GPIO_LOCK_INIT(sc);
ti_gpio_pin_max(dev, &sc->sc_maxpin);
+ sc->sc_maxpin++;
/* There are up to 6 different GPIO register sets located in different
* memory areas on the chip. The memory range should have been set for
OpenPOWER on IntegriCloud