summaryrefslogtreecommitdiffstats
path: root/sys/dev/gpio
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2011-12-20 03:25:11 +0000
committeradrian <adrian@FreeBSD.org>2011-12-20 03:25:11 +0000
commit5e51e76f4266418b08c4d7da0f85f3e18952cddd (patch)
tree717db28c23f78fd88b271678b804494c5139f6dd /sys/dev/gpio
parent943f0fd2d31fd1a7dd68ffe51021b477003ce1be (diff)
downloadFreeBSD-src-5e51e76f4266418b08c4d7da0f85f3e18952cddd.zip
FreeBSD-src-5e51e76f4266418b08c4d7da0f85f3e18952cddd.tar.gz
Fix broken locking that I introduced in the previous commit.
Diffstat (limited to 'sys/dev/gpio')
-rw-r--r--sys/dev/gpio/gpioiic.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/gpio/gpioiic.c b/sys/dev/gpio/gpioiic.c
index 923b21f..2a6d093 100644
--- a/sys/dev/gpio/gpioiic.c
+++ b/sys/dev/gpio/gpioiic.c
@@ -203,11 +203,13 @@ gpioiic_reset(device_t dev, u_char speed, u_char addr, u_char *oldaddr)
{
struct gpioiic_softc *sc = device_get_softc(dev);
+ GPIOBUS_LOCK_BUS(sc->sc_busdev);
GPIOBUS_ACQUIRE_BUS(sc->sc_busdev, sc->sc_dev);
gpioiic_reset_bus(sc->sc_dev);
GPIOBUS_RELEASE_BUS(sc->sc_busdev, sc->sc_dev);
+ GPIOBUS_UNLOCK_BUS(sc->sc_busdev);
return (IIC_ENOADDR);
}
OpenPOWER on IntegriCloud