i'm not suggesting the current order is easy to hit problems with,
but i think diff below would make sense anyway, so the 'owchild'
doesn't get even a remote chance in theory to endure any gpio failures?


diff --git sys/dev/gpio/gpioow.c sys/dev/gpio/gpioow.c
index 64d79ab0cb8..d37dcc60762 100644
--- sys/dev/gpio/gpioow.c
+++ sys/dev/gpio/gpioow.c
@@ -161,11 +161,11 @@ gpioow_detach(struct device *self, int flags)
        struct gpioow_softc *sc = (struct gpioow_softc *)self;
        int rv = 0;
-       gpio_pin_unmap(sc->sc_gpio, &sc->sc_map);
        if (sc->sc_ow_dev != NULL)
                rv = config_detach(sc->sc_ow_dev, flags);
+       gpio_pin_unmap(sc->sc_gpio, &sc->sc_map);
        return (rv);

Reply via email to