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