DF-1846 / fix.diff
diff --git a/sys/dev/misc/gpio/gpio.c b/sys/dev/misc/gpio/gpio.c --- a/sys/dev/misc/gpio/gpio.c +++ b/sys/dev/misc/gpio/gpio.c @@ -213,6 +213,9 @@ pin = offset + i; if (pin < 0 || pin >= gp->npins || gp->pins[pin].pin_mapped || gp->pins[pin].pin_opened) { + int p2; + for (p2 = 0; p2 < npins; p2++) + gp->pins[gmp->map[p2]].pin_mapped = 0; if (map == NULL) kfree(gmp->map, M_TEMP); kfree(gmp, M_TEMP); |