diff options
| author | ad <ad@NetBSD.org> | 2007-02-16 13:55:42 +0000 |
|---|---|---|
| committer | ad <ad@NetBSD.org> | 2007-02-16 13:55:42 +0000 |
| commit | 36bb413e0d5fee51fd7100e26170ce90ddf1240c (patch) | |
| tree | a7802f9e6ddae6588802d9afd27b3b38d68a353c /sys/arch/sun2/dev | |
| parent | c9962e639eceb016b9ad384e4fe548ccd5e9add8 (diff) | |
More spllowersoftclock() fallout.
Diffstat (limited to 'sys/arch/sun2/dev')
| -rw-r--r-- | sys/arch/sun2/dev/kd.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/sys/arch/sun2/dev/kd.c b/sys/arch/sun2/dev/kd.c index 9acc5f4289e..fa66747d1b9 100644 --- a/sys/arch/sun2/dev/kd.c +++ b/sys/arch/sun2/dev/kd.c @@ -1,4 +1,4 @@ -/* $NetBSD: kd.c,v 1.14 2006/10/01 18:56:22 elad Exp $ */ +/* $NetBSD: kd.c,v 1.15 2007/02/16 13:55:42 ad Exp $ */ /*- * Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -46,7 +46,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kd.c,v 1.14 2006/10/01 18:56:22 elad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kd.c,v 1.15 2007/02/16 13:55:42 ad Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -359,9 +359,10 @@ static void kdstart(struct tty *tp) { struct clist *cl; - int s; + int s1, s2; - s = spltty(); + s1 = splsoftclock(); + s2 = spltty(); if (tp->t_state & (TS_BUSY|TS_TTSTOP|TS_TIMEOUT)) goto out; @@ -369,11 +370,11 @@ kdstart(struct tty *tp) if (cl->c_cc) { if (kd_is_console) { tp->t_state |= TS_BUSY; - if (is_spl0(s)) { + if (is_spl0(s1)) { /* called at level zero - update screen now. */ - (void) spllowersoftclock(); + splx(s2); kd_putfb(tp); - (void) spltty(); + s2 = spltty(); tp->t_state &= ~TS_BUSY; } else { /* called at interrupt level - do it later */ @@ -398,7 +399,8 @@ kdstart(struct tty *tp) selwakeup(&tp->t_wsel); } out: - splx(s); + splx(s2); + splx(s1); } /* |
