libpayload-x86: i8042: fix i8042_data_ready_ps2 and i8042_data_ready_aux
keyboard_disconnect was called without keyboard_init being called and in this
case keyboard_havechar returns true because i8042_data_ready_ps2 is
dereferencing uninitialized variable ps2_fifo from within fifo_is_empty causing
keyboard_disconnect to be stuck in this while loop.
while (keyboard_havechar())
keyboard_getchar();
BUG=b:80299098
TEST=Check if the normal mode path in depthcharge is not causing a hang
Change-Id: I944b4836005c887a2715717dff2df1b5a220818e
Signed-off-by: Hannah Williams <hannah.williams@intel.com>
Reviewed-on: https://review.coreboot.org/26590
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
committed by
Furquan Shaikh
parent
5474eb15ef
commit
b81362a82e
@@ -324,6 +324,9 @@ void keyboard_disconnect(void)
|
||||
if (inb(0x64) == 0xFF)
|
||||
return;
|
||||
|
||||
if (!i8042_has_ps2())
|
||||
return;
|
||||
|
||||
/* Empty keyboard buffer */
|
||||
while (keyboard_havechar())
|
||||
keyboard_getchar();
|
||||
|
||||
Reference in New Issue
Block a user