diff options
Diffstat (limited to 'sys/dev/sio/sio.c')
-rw-r--r-- | sys/dev/sio/sio.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index badf07d..9f86bc8 100644 --- a/sys/dev/sio/sio.c +++ b/sys/dev/sio/sio.c @@ -778,8 +778,12 @@ sioprobe(dev, xrid) com->bst = rman_get_bustag(port); com->bsh = rman_get_bushandle(port); - if (atomic_cmpset_int(&sio_inited, 0, 1)) - mtx_init(&sio_lock, driver_name, MTX_SPIN); + while (sio_inited != 2) + if (atomic_cmpset_int(&sio_inited, 0, 1)) { + mtx_init(&sio_lock, driver_name, (comconsole != -1) ? + MTX_SPIN | MTX_QUIET : MTX_SPIN); + atomic_store_rel_int(&sio_inited, 2); + } #if 0 /* |