Since spltty() will not lower the spl, only raise it, we need to

use splx() to undo the effect of the splzs() in zstty_softint().
This commit is contained in:
scottr 1997-07-23 07:20:01 +00:00
parent 3518ffabce
commit ef7df42303
1 changed files with 4 additions and 4 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: z8530tty.c,v 1.11 1997/07/17 02:01:26 jtk Exp $ */ /* $NetBSD: z8530tty.c,v 1.12 1997/07/23 07:20:01 scottr Exp $ */
/* /*
* Copyright (c) 1994 Gordon W. Ross * Copyright (c) 1994 Gordon W. Ross
@ -1302,7 +1302,7 @@ zstty_softint(cs)
register struct zstty_softc *zst; register struct zstty_softc *zst;
register struct linesw *line; register struct linesw *line;
register struct tty *tp; register struct tty *tp;
register int get, c, s; register int get, c, s, t;
int ringmask, overrun; int ringmask, overrun;
register u_short ring_data; register u_short ring_data;
register u_char rr0, delta, flag; register u_char rr0, delta, flag;
@ -1360,11 +1360,11 @@ zstty_softint(cs)
* so unblock here ONLY if TS_TBLOCK has not been set. * so unblock here ONLY if TS_TBLOCK has not been set.
*/ */
if (zst->zst_rx_blocked && ((tp->t_state & TS_TBLOCK) == 0)) { if (zst->zst_rx_blocked && ((tp->t_state & TS_TBLOCK) == 0)) {
(void) splzs(); t = splzs();
zst->zst_rx_blocked = 0; zst->zst_rx_blocked = 0;
zs_hwiflow(zst, 0); /* unblock input */ zs_hwiflow(zst, 0); /* unblock input */
z8530tty_stats.ring_unblock++; z8530tty_stats.ring_unblock++;
(void) spltty(); splx(t);
} }
/* /*