summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2009-11-01 20:29:01 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2009-11-01 20:29:01 +0000
commit7b2be92a2142061407f196176d4e83e62c233158 (patch)
tree5d363529f89d57ed9365644db4bcc4d9debdf7cc
parentc24179cc421a46edffa3069625dda1753dcb9d62 (diff)
Call selwakeup()/KNOTE() even if the queue has emptied completely.
ok miod
-rw-r--r--sys/arch/arm/s3c2xx0/sscom.c6
-rw-r--r--sys/arch/hp300/dev/apci.c6
-rw-r--r--sys/arch/hp300/dev/dca.c6
-rw-r--r--sys/dev/ic/com.c6
4 files changed, 12 insertions, 12 deletions
diff --git a/sys/arch/arm/s3c2xx0/sscom.c b/sys/arch/arm/s3c2xx0/sscom.c
index f016e49a7c3..f12a54f440a 100644
--- a/sys/arch/arm/s3c2xx0/sscom.c
+++ b/sys/arch/arm/s3c2xx0/sscom.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sscom.c,v 1.12 2009/10/31 06:40:16 deraadt Exp $ */
+/* $OpenBSD: sscom.c,v 1.13 2009/11/01 20:29:00 nicm Exp $ */
/* $NetBSD: sscom.c,v 1.29 2008/06/11 22:37:21 cegger Exp $ */
/*
@@ -1375,10 +1375,10 @@ sscomstart(struct tty *tp)
CLR(tp->t_state, TS_ASLEEP);
wakeup(&tp->t_outq);
}
- if (tp->t_outq.c_cc == 0)
- goto out;
selwakeup(&tp->t_wsel);
KNOTE(&tp->t_wsel.si_note, 0);
+ if (tp->t_outq.c_cc == 0)
+ goto out;
}
SET(tp->t_state, TS_BUSY);
diff --git a/sys/arch/hp300/dev/apci.c b/sys/arch/hp300/dev/apci.c
index 3f20e998d3b..82bfe395228 100644
--- a/sys/arch/hp300/dev/apci.c
+++ b/sys/arch/hp300/dev/apci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: apci.c,v 1.35 2009/10/31 12:00:05 fgsch Exp $ */
+/* $OpenBSD: apci.c,v 1.36 2009/11/01 20:29:00 nicm Exp $ */
/* $NetBSD: apci.c,v 1.9 2000/11/02 00:35:05 eeh Exp $ */
/*-
@@ -767,10 +767,10 @@ apcistart(tp)
tp->t_state &= ~TS_ASLEEP;
wakeup((caddr_t)&tp->t_outq);
}
- if (tp->t_outq.c_cc == 0)
- goto out;
selwakeup(&tp->t_wsel);
KNOTE(&tp->t_wsel.si_note, 0);
+ if (tp->t_outq.c_cc == 0)
+ goto out;
}
if (apci->ap_lsr & LSR_TXRDY) {
tp->t_state |= TS_BUSY;
diff --git a/sys/arch/hp300/dev/dca.c b/sys/arch/hp300/dev/dca.c
index 5e32b238f8d..3b9013aff8c 100644
--- a/sys/arch/hp300/dev/dca.c
+++ b/sys/arch/hp300/dev/dca.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dca.c,v 1.36 2009/10/31 12:00:05 fgsch Exp $ */
+/* $OpenBSD: dca.c,v 1.37 2009/11/01 20:29:00 nicm Exp $ */
/* $NetBSD: dca.c,v 1.35 1997/05/05 20:58:18 thorpej Exp $ */
/*
@@ -866,10 +866,10 @@ dcastart(tp)
tp->t_state &= ~TS_ASLEEP;
wakeup((caddr_t)&tp->t_outq);
}
- if (tp->t_outq.c_cc == 0)
- goto out;
selwakeup(&tp->t_wsel);
KNOTE(&tp->t_wsel.si_note, 0);
+ if (tp->t_outq.c_cc == 0)
+ goto out;
}
if (dca->dca_lsr & LSR_TXRDY) {
tp->t_state |= TS_BUSY;
diff --git a/sys/dev/ic/com.c b/sys/dev/ic/com.c
index 32fc4d2d8e7..f71a1c3316b 100644
--- a/sys/dev/ic/com.c
+++ b/sys/dev/ic/com.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: com.c,v 1.134 2009/10/31 12:00:07 fgsch Exp $ */
+/* $OpenBSD: com.c,v 1.135 2009/11/01 20:29:00 nicm Exp $ */
/* $NetBSD: com.c,v 1.82.4.1 1996/06/02 09:08:00 mrg Exp $ */
/*
@@ -899,10 +899,10 @@ comstart(struct tty *tp)
CLR(tp->t_state, TS_ASLEEP);
wakeup(&tp->t_outq);
}
- if (tp->t_outq.c_cc == 0)
- goto stopped;
selwakeup(&tp->t_wsel);
KNOTE(&tp->t_wsel.si_note, 0);
+ if (tp->t_outq.c_cc == 0)
+ goto stopped;
}
SET(tp->t_state, TS_BUSY);