When console input is forbidden but was previously allowed then it can happen that there are still characters left in the input fifo and tstc() consequently returns 1. Code which then tries to read the pending character will be stuck in getchar(). Fix this by returning 0 from tstc() when console input is forbidden.
Signed-off-by: Sascha Hauer <[email protected]> --- common/console.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/common/console.c b/common/console.c index 95e5fb4df3..fb75077812 100644 --- a/common/console.c +++ b/common/console.c @@ -568,6 +568,9 @@ EXPORT_SYMBOL(getchar); int tstc(void) { + if (!IS_ALLOWED(SCONFIG_CONSOLE_INPUT)) + return 0; + return kfifo_len(console_input_fifo) || tstc_raw(); } EXPORT_SYMBOL(tstc); -- 2.47.3
