efi_loader: Fix serial console size detection
authorMatthias Brugger <mbrugger@suse.com>
Tue, 5 Mar 2019 11:50:18 +0000 (12:50 +0100)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Sun, 10 Mar 2019 18:56:59 +0000 (19:56 +0100)
commitdd1a1ec2afa61c55c52e9389764037181f2c31ed
treeb311c7efcb3407a94506ba6b2b6c95f80aea7500
parente8e3f2d2d48f97b2c79b698eccedce8f4f880993
efi_loader: Fix serial console size detection

Function term_read_reply tries to read from the serial console until
the end_char was read. This can hang forever if we are, for some reason,
not able to read the full response (e.g. serial buffer too small,
frame error). This patch moves the timeout detection into
term_read_reply() to assure we will make progress.

Fixes: 6bb591f704 ("efi_loader: query serial console size reliably")
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Throw missing error when an incomplete reply for the cursor position is
received.

Change type of argument of term_get_char() *s32. This renders the function
reusable in efi_cin_read_key().

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_console.c