Don't treat UnicodeChar == 0 as a keyboard input. The same fix was
authoryasuoka <yasuoka@openbsd.org>
Sat, 25 Aug 2018 00:12:14 +0000 (00:12 +0000)
committeryasuoka <yasuoka@openbsd.org>
Sat, 25 Aug 2018 00:12:14 +0000 (00:12 +0000)
done on amd64 already.  Original diff from Frank Groeneveld

ok tb patrick

sys/arch/arm64/stand/efiboot/efiboot.c
sys/arch/armv7/stand/efiboot/efiboot.c

index 3f335f0..4dc9d7e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: efiboot.c,v 1.20 2018/08/23 15:31:12 patrick Exp $    */
+/*     $OpenBSD: efiboot.c,v 1.21 2018/08/25 00:12:14 yasuoka Exp $    */
 
 /*
  * Copyright (c) 2015 YASUOKA Masahiko <yasuoka@yasuoka.net>
@@ -129,7 +129,7 @@ efi_cons_getc(dev_t dev)
        }
 
        status = conin->ReadKeyStroke(conin, &key);
-       while (status == EFI_NOT_READY) {
+       while (status == EFI_NOT_READY || key.UnicodeChar == 0) {
                if (dev & 0x80)
                        return (0);
                /*
index 9d2768e..ebd8bbb 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: efiboot.c,v 1.22 2018/08/23 15:31:12 patrick Exp $    */
+/*     $OpenBSD: efiboot.c,v 1.23 2018/08/25 00:12:14 yasuoka Exp $    */
 
 /*
  * Copyright (c) 2015 YASUOKA Masahiko <yasuoka@yasuoka.net>
@@ -126,7 +126,7 @@ efi_cons_getc(dev_t dev)
        }
 
        status = conin->ReadKeyStroke(conin, &key);
-       while (status == EFI_NOT_READY) {
+       while (status == EFI_NOT_READY || key.UnicodeChar == 0) {
                if (dev & 0x80)
                        return (0);
                /*