Module Name:    src
Committed By:   mlelstv
Date:           Wed May  1 07:38:01 UTC 2013

Modified Files:
        src/sys/arch/arm/imx: imxuart.c
        src/sys/arch/arm/s3c2xx0: sscom.c
        src/sys/arch/evbarm/dev: plcom.c
        src/sys/dev/ic: com.c

Log Message:
For a polled console incoming characters are buffered on output.
The buffer is never passed to the regular tty routines and can
survive from early boot to halt where it is read by the "press
any continue to reboot" loops.
As a workaround, just kill the read-ahead buffer when switching
from and to polled mode.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/imx/imxuart.c
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/arm/s3c2xx0/sscom.c
cvs rdiff -u -r1.44 -r1.45 src/sys/arch/evbarm/dev/plcom.c
cvs rdiff -u -r1.309 -r1.310 src/sys/dev/ic/com.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/imx/imxuart.c
diff -u src/sys/arch/arm/imx/imxuart.c:1.9 src/sys/arch/arm/imx/imxuart.c:1.10
--- src/sys/arch/arm/imx/imxuart.c:1.9	Thu Feb  2 19:42:58 2012
+++ src/sys/arch/arm/imx/imxuart.c	Wed May  1 07:38:01 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: imxuart.c,v 1.9 2012/02/02 19:42:58 tls Exp $ */
+/* $NetBSD: imxuart.c,v 1.10 2013/05/01 07:38:01 mlelstv Exp $ */
 
 /*
  * Copyright (c) 2009, 2010  Genetec Corporation.  All rights reserved.
@@ -96,7 +96,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: imxuart.c,v 1.9 2012/02/02 19:42:58 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: imxuart.c,v 1.10 2013/05/01 07:38:01 mlelstv Exp $");
 
 #include "opt_imxuart.h"
 #include "opt_ddb.h"
@@ -2372,6 +2372,8 @@ void
 imxucnpollc(dev_t dev, int on)
 {
 
+	imxuart_readahead_in = 0;
+	imxuart_readahead_out = 0;
 }
 
 #endif	/* IMXUARTCONSOLE */

Index: src/sys/arch/arm/s3c2xx0/sscom.c
diff -u src/sys/arch/arm/s3c2xx0/sscom.c:1.38 src/sys/arch/arm/s3c2xx0/sscom.c:1.39
--- src/sys/arch/arm/s3c2xx0/sscom.c:1.38	Sat Oct 27 17:17:40 2012
+++ src/sys/arch/arm/s3c2xx0/sscom.c	Wed May  1 07:38:01 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: sscom.c,v 1.38 2012/10/27 17:17:40 chs Exp $ */
+/*	$NetBSD: sscom.c,v 1.39 2013/05/01 07:38:01 mlelstv Exp $ */
 
 /*
  * Copyright (c) 2002, 2003 Fujitsu Component Limited
@@ -98,7 +98,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sscom.c,v 1.38 2012/10/27 17:17:40 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sscom.c,v 1.39 2013/05/01 07:38:01 mlelstv Exp $");
 
 #include "opt_sscom.h"
 #include "opt_ddb.h"
@@ -1977,6 +1977,7 @@ void
 sscomcnpollc(dev_t dev, int on)
 {
 
+	sscom_readaheadcount = 0;
 }
 
 #endif /* SSCOM0CONSOLE||SSCOM1CONSOLE */

Index: src/sys/arch/evbarm/dev/plcom.c
diff -u src/sys/arch/evbarm/dev/plcom.c:1.44 src/sys/arch/evbarm/dev/plcom.c:1.45
--- src/sys/arch/evbarm/dev/plcom.c:1.44	Sun Mar  3 10:26:18 2013
+++ src/sys/arch/evbarm/dev/plcom.c	Wed May  1 07:38:01 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: plcom.c,v 1.44 2013/03/03 10:26:18 mlelstv Exp $	*/
+/*	$NetBSD: plcom.c,v 1.45 2013/05/01 07:38:01 mlelstv Exp $	*/
 
 /*-
  * Copyright (c) 2001 ARM Ltd
@@ -94,7 +94,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: plcom.c,v 1.44 2013/03/03 10:26:18 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: plcom.c,v 1.45 2013/05/01 07:38:01 mlelstv Exp $");
 
 #include "opt_plcom.h"
 #include "opt_ddb.h"
@@ -2450,6 +2450,7 @@ void
 plcomcnpollc(dev_t dev, int on)
 {
 
+	plcom_readaheadcount = 0;
 }
 
 #ifdef KGDB

Index: src/sys/dev/ic/com.c
diff -u src/sys/dev/ic/com.c:1.309 src/sys/dev/ic/com.c:1.310
--- src/sys/dev/ic/com.c:1.309	Sat Apr 20 11:52:40 2013
+++ src/sys/dev/ic/com.c	Wed May  1 07:38:00 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: com.c,v 1.309 2013/04/20 11:52:40 rkujawa Exp $ */
+/* $NetBSD: com.c,v 1.310 2013/05/01 07:38:00 mlelstv Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999, 2004, 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: com.c,v 1.309 2013/04/20 11:52:40 rkujawa Exp $");
+__KERNEL_RCSID(0, "$NetBSD: com.c,v 1.310 2013/05/01 07:38:00 mlelstv Exp $");
 
 #include "opt_com.h"
 #include "opt_ddb.h"
@@ -2352,6 +2352,7 @@ void
 comcnpollc(dev_t dev, int on)
 {
 
+	com_readaheadcount = 0;
 }
 
 #ifdef KGDB

Reply via email to