aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpio/gpiolib.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 7f138c6195ff..beaf6b3a37dc 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -127,7 +127,7 @@ int __init gpiochip_reserve(int start, int ngpio)
127 unsigned long flags; 127 unsigned long flags;
128 int i; 128 int i;
129 129
130 if (!gpio_is_valid(start) || !gpio_is_valid(start + ngpio)) 130 if (!gpio_is_valid(start) || !gpio_is_valid(start + ngpio - 1))
131 return -EINVAL; 131 return -EINVAL;
132 132
133 spin_lock_irqsave(&gpio_lock, flags); 133 spin_lock_irqsave(&gpio_lock, flags);
@@ -170,7 +170,7 @@ int gpiochip_add(struct gpio_chip *chip)
170 unsigned id; 170 unsigned id;
171 int base = chip->base; 171 int base = chip->base;
172 172
173 if ((!gpio_is_valid(base) || !gpio_is_valid(base + chip->ngpio)) 173 if ((!gpio_is_valid(base) || !gpio_is_valid(base + chip->ngpio - 1))
174 && base >= 0) { 174 && base >= 0) {
175 status = -EINVAL; 175 status = -EINVAL;
176 goto fail; 176 goto fail;
@@ -207,7 +207,7 @@ fail:
207 /* failures here can mean systems won't boot... */ 207 /* failures here can mean systems won't boot... */
208 if (status) 208 if (status)
209 pr_err("gpiochip_add: gpios %d..%d (%s) not registered\n", 209 pr_err("gpiochip_add: gpios %d..%d (%s) not registered\n",
210 chip->base, chip->base + chip->ngpio, 210 chip->base, chip->base + chip->ngpio - 1,
211 chip->label ? : "generic"); 211 chip->label ? : "generic");
212 return status; 212 return status;
213} 213}