untrusted comment: verify with openbsd-66-base.pub
RWSvK/c+cFe24CxYjW+8VVH7seLUmOL9/IEH+YhcJ8EwelQpa4moJGz5HI1D6COggZp1nyYJ4ggE1w/pgg8PkZnZDL4NvWnxsgU=

OpenBSD 6.6 errata 035, July 22, 2020:

Only pty devices need reprint delays.

Apply by doing:
   signify -Vep /etc/signify/openbsd-66-base.pub -x 035_tty.patch.sig \
       -m - | (cd /usr/src && patch -p0)

And then rebuild and install a new kernel:
   KK=`sysctl -n kern.osversion | cut -d# -f1`
   cd /usr/src/sys/arch/`machine`/compile/$KK
   make obj
   make config
   make
   make install

Index: sys/kern/tty.c
===================================================================
RCS file: /cvs/src/sys/kern/tty.c,v
diff -u -p -u -r1.148.2.1 tty.c
--- sys/kern/tty.c      15 Jul 2020 21:55:31 -0000      1.148.2.1
+++ sys/kern/tty.c      20 Jul 2020 19:07:05 -0000
@@ -227,8 +227,8 @@ ttyclose(struct tty *tp)


/*
- * Process input of a single character received on a tty.  Returns 0 for
- * simple operations, 1 for costly ones (ptcwrite needs to know).
+ * Process input of a single character received on a tty.  Returns 0 normally,
+ * 1 if a costly operation was reached.
 */
int
ttyinput(int c, struct tty *tp)
@@ -2005,11 +2005,7 @@ ttyretype(struct tty *tp)

       tp->t_rocount = tp->t_rawq.c_cc;
       tp->t_rocol = 0;
-       /*
-        * Yield because of expense, or possible ptcwrite() injection flood.
-        * Also check for interrupt, and return upwards.
-        */
-       return tsleep_nsec(tp, TTIPRI | PCATCH, "ttyretype", 1);
+       return (1);
}

/*
Index: sys/kern/tty_pty.c
===================================================================
RCS file: /cvs/src/sys/kern/tty_pty.c,v
diff -u -p -u -r1.94.2.1 tty_pty.c
--- sys/kern/tty_pty.c  15 Jul 2020 21:55:31 -0000      1.94.2.1
+++ sys/kern/tty_pty.c  20 Jul 2020 14:34:27 -0000
@@ -564,7 +564,8 @@ again:
                               wakeup(&tp->t_rawq);
                               goto block;
                       }
-                       if ((*linesw[tp->t_line].l_rint)(*cp++, tp) == EINTR)
+                       if ((*linesw[tp->t_line].l_rint)(*cp++, tp) == 1 &&
+                           tsleep(tp, TTIPRI | PCATCH, "ttyretype", 1) == EINTR)
                               goto interrupt;
                       cnt++;
                       cc--;