Index: sys/dev/gpio/gpioled.c =================================================================== --- sys/dev/gpio/gpioled.c (revision 221961) +++ sys/dev/gpio/gpioled.c (working copy) @@ -37,7 +37,7 @@ #include #include #include -#include +#include #include #include @@ -48,18 +48,17 @@ */ #define GPIOLED_PIN 0 -#define GPIOLED_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) -#define GPIOLED_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define GPIOLED_LOCK(_sc) sx_xlock(&(_sc)->sc_sx) +#define GPIOLED_UNLOCK(_sc) sx_xunlock(&(_sc)->sc_sx) #define GPIOLED_LOCK_INIT(_sc) \ - mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ - "gpioled", MTX_DEF) -#define GPIOLED_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); + sx_init(&_sc->sc_sx, device_get_nameunit(_sc->sc_dev)) +#define GPIOLED_LOCK_DESTROY(_sc) sx_destroy(&_sc->sc_sx); struct gpioled_softc { device_t sc_dev; device_t sc_busdev; - struct mtx sc_mtx; + struct sx sc_sx; struct cdev *sc_leddev; };