mirror of https://github.com/torvalds/linux.git
gpio: timberdale: fix off-by-one in IRQ type boundary check
timbgpio_irq_type() currently accepts offset == ngpio, violating gpiolib's [0..ngpio-1] contract. This can lead to undefined behavior when computing '1 << offset', and it is also inconsistent with users that iterate with for_each_set_bit(..., ngpio). Tighten the upper bound to reject offset == ngpio. No functional change for in-range offsets. Signed-off-by: Junjie Cao <junjie.cao@intel.com> Link: https://lore.kernel.org/r/20250825090850.127163-1-junjie.cao@intel.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
1b237f190e
commit
810e154d90
|
|
@ -137,7 +137,7 @@ static int timbgpio_irq_type(struct irq_data *d, unsigned trigger)
|
|||
u32 ver;
|
||||
int ret = 0;
|
||||
|
||||
if (offset < 0 || offset > tgpio->gpio.ngpio)
|
||||
if (offset < 0 || offset >= tgpio->gpio.ngpio)
|
||||
return -EINVAL;
|
||||
|
||||
ver = ioread32(tgpio->membase + TGPIO_VER);
|
||||
|
|
|
|||
Loading…
Reference in New Issue