diff options
author | loos <loos@FreeBSD.org> | 2014-12-27 19:56:04 +0000 |
---|---|---|
committer | loos <loos@FreeBSD.org> | 2014-12-27 19:56:04 +0000 |
commit | 03487439a5c9270e1e3a2a8ed8972b6672d3677b (patch) | |
tree | 0279e81ed68815be1b43b38556e14634ab50bf1d /sys/arm/ti/ti_gpio.c | |
parent | 1ce1e01004752caaeccd4b53fc8751cf060ac5a5 (diff) | |
download | FreeBSD-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.c | 3 |
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 |