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