summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/sio/sio.c4
-rw-r--r--sys/isa/sio.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c
index 0234b80..a1c8495 100644
--- a/sys/dev/sio/sio.c
+++ b/sys/dev/sio/sio.c
@@ -3335,10 +3335,14 @@ siocnputc(dev, c)
else
iobase = siocniobase;
s = spltty();
+ if (sio_inited)
+ mtx_lock_spin(&sio_lock);
siocnopen(&sp, iobase, comdefaultrate);
siocntxwait(iobase);
outb(iobase + com_data, c);
siocnclose(&sp, iobase);
+ if (sio_inited)
+ mtx_unlock_spin(&sio_lock);
splx(s);
}
diff --git a/sys/isa/sio.c b/sys/isa/sio.c
index 0234b80..a1c8495 100644
--- a/sys/isa/sio.c
+++ b/sys/isa/sio.c
@@ -3335,10 +3335,14 @@ siocnputc(dev, c)
else
iobase = siocniobase;
s = spltty();
+ if (sio_inited)
+ mtx_lock_spin(&sio_lock);
siocnopen(&sp, iobase, comdefaultrate);
siocntxwait(iobase);
outb(iobase + com_data, c);
siocnclose(&sp, iobase);
+ if (sio_inited)
+ mtx_unlock_spin(&sio_lock);
splx(s);
}
OpenPOWER on IntegriCloud