diff --git a/stand/efi/libefi/efi_console.c b/stand/efi/libefi/efi_console.c --- a/stand/efi/libefi/efi_console.c +++ b/stand/efi/libefi/efi_console.c @@ -96,7 +96,6 @@ #define KEYBUFSZ 10 static unsigned keybuf[KEYBUFSZ]; /* keybuf for extended codes */ -static int key_pending; static const unsigned char teken_color_to_efi_color[16] = { EFI_BLACK, @@ -1341,8 +1340,6 @@ if (!boot_services_active) return (-1); - key_pending = 0; - if (coninex == NULL) { if (efi_readkey()) return (keybuf_getchar()); @@ -1359,34 +1356,16 @@ { EFI_STATUS status; - if (keybuf_ischar() || key_pending) + if (keybuf_ischar()) return (1); if (!boot_services_active) return (0); - /* - * Some EFI implementation (u-boot for example) do not support - * WaitForKey(). - * CheckEvent() can clear the signaled state. - */ - if (coninex != NULL) { - if (coninex->WaitForKeyEx == NULL) { - key_pending = efi_readkey_ex(); - } else { - status = BS->CheckEvent(coninex->WaitForKeyEx); - key_pending = status == EFI_SUCCESS; - } - } else { - if (conin->WaitForKey == NULL) { - key_pending = efi_readkey(); - } else { - status = BS->CheckEvent(conin->WaitForKey); - key_pending = status == EFI_SUCCESS; - } - } + if (coninex != NULL) + return (efi_readkey_ex()); - return (key_pending); + return (efi_readkey()); } /* Plain direct access to EFI OutputString(). */