summaryrefslogtreecommitdiff
path: root/sys/dev/syscons
diff options
context:
space:
mode:
authorMaksim Yevmenkin <emax@FreeBSD.org>2008-11-16 22:39:04 +0000
committerMaksim Yevmenkin <emax@FreeBSD.org>2008-11-16 22:39:04 +0000
commitae670dad61d0e714d076ece40302fe694d1bd382 (patch)
tree91cd47cdb7b335897f2a2f86464ae5f9d0bb0195 /sys/dev/syscons
parent6129343d5db4e3b6f03d4db5294afe1096f4c603 (diff)
Notes
Diffstat (limited to 'sys/dev/syscons')
-rw-r--r--sys/dev/syscons/syscons.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index 37b08b6b24ee..90b5afaa2dc9 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -1572,6 +1572,7 @@ sccngetch(int flags)
int s = spltty(); /* block sckbdevent and scrn_timer while we poll */
int c;
+ mtx_lock(&Giant);
/* assert(sc_console != NULL) */
/*
@@ -1583,11 +1584,13 @@ sccngetch(int flags)
sccnupdate(scp);
if (fkeycp < fkey.len) {
+ mtx_unlock(&Giant);
splx(s);
return fkey.str[fkeycp++];
}
if (scp->sc->kbd == NULL) {
+ mtx_unlock(&Giant);
splx(s);
return -1;
}
@@ -1610,6 +1613,7 @@ sccngetch(int flags)
scp->kbd_mode = cur_mode;
kbdd_ioctl(scp->sc->kbd, KDSKBMODE, (caddr_t)&scp->kbd_mode);
kbdd_disable(scp->sc->kbd);
+ mtx_unlock(&Giant);
splx(s);
switch (KEYFLAGS(c)) {