]> Zhao Yanbai Git Server - minix.git/commitdiff
i386 rs232: do full write in out_int
authorBen Gras <ben@minix3.org>
Thu, 10 Jul 2014 19:07:43 +0000 (21:07 +0200)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:06:14 +0000 (17:06 +0200)
. in kvm, this does the full output without truncating
  and gets rid of the messy 'enough!' case

drivers/tty/arch/i386/rs232.c

index 0e29628e38501265424fdfd3c6fbc5d57237c97d..d65107740d958827c1670b94839311fcd5c37022 100644 (file)
@@ -820,7 +820,7 @@ static void out_int(register rs232_t *rs)
  * Notify TTY when the buffer goes empty.
  */
 
-  if (rs->ostate >= (ODEVREADY | OQUEUED | OSWREADY)) {
+  while (txready(rs) && rs->ostate >= (ODEVREADY | OQUEUED | OSWREADY)) {
        /* Bit test allows ORAW and requires the others. */
        sys_outb(rs->xmit_port, *rs->otail);
        if (++rs->otail == bufend(rs->obuf)) rs->otail = rs->obuf;