summaryrefslogtreecommitdiffstats
path: root/sys/dev/sio/sio.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1994-02-02 16:41:26 +0000
committerache <ache@FreeBSD.org>1994-02-02 16:41:26 +0000
commite844cf9bb7bad83124948194e7e392230c3c461a (patch)
tree7538fffd65a9b670b6120e0416ea7bacff440a35 /sys/dev/sio/sio.c
parent164b10596fc5d87428f0b2d6db54ae0779c184b8 (diff)
downloadFreeBSD-src-e844cf9bb7bad83124948194e7e392230c3c461a.zip
FreeBSD-src-e844cf9bb7bad83124948194e7e392230c3c461a.tar.gz
Fix error in multiport part:
while input char not entered, output was suspended
Diffstat (limited to 'sys/dev/sio/sio.c')
-rw-r--r--sys/dev/sio/sio.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c
index bd63fa3..fdb91f9 100644
--- a/sys/dev/sio/sio.c
+++ b/sys/dev/sio/sio.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
- * $Id: sio.c,v 1.24 1994/01/31 08:52:12 ache Exp $
+ * $Id: sio.c,v 1.25 1994/01/31 19:07:59 ache Exp $
*/
#include "sio.h"
@@ -872,16 +872,15 @@ siointr(unit)
possibly_more_intrs = FALSE;
for (unit = 0; unit < NSIO; ++unit) {
com = com_addr(unit);
- if (com != NULL
- && (inb(com->int_id_port) & IIR_IMASK)
- != IIR_NOPEND) {
+ if (com != NULL) {
/*
* XXX call comintr1() instead of here from
* comwakeup(). The interrupt edge problem
* only exists for real interrupts.
*/
comintr1(com);
- possibly_more_intrs = TRUE;
+ if ((inb(com->int_id_port) & IIR_IMASK) != IIR_NOPEND)
+ possibly_more_intrs = TRUE;
}
}
} while (possibly_more_intrs);
OpenPOWER on IntegriCloud