diff options
Diffstat (limited to 'common/autoboot.c')
-rw-r--r-- | common/autoboot.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/common/autoboot.c b/common/autoboot.c index 2564ef8a561..35ef526c42f 100644 --- a/common/autoboot.c +++ b/common/autoboot.c @@ -297,6 +297,15 @@ static int passwd_abort_key(uint64_t etime) return abort; } +/** + * flush_stdin() - drops all pending characters from stdin + */ +static void flush_stdin(void) +{ + while (tstc()) + (void)getchar(); +} + /*************************************************************************** * Watch for 'delay' seconds for autoboot stop or autoboot delay string. * returns: 0 - no key string, allow autoboot 1 - got key string, abort @@ -306,6 +315,8 @@ static int abortboot_key_sequence(int bootdelay) int abort; uint64_t etime = endtick(bootdelay); + if (IS_ENABLED(CONFIG_AUTOBOOT_FLUSH_STDIN)) + flush_stdin(); # ifdef CONFIG_AUTOBOOT_PROMPT /* * CONFIG_AUTOBOOT_PROMPT includes the %d for all boards. |