From 30d146175fb14d8d4650aed8981ce04ad83dcdca Mon Sep 17 00:00:00 2001 From: Ivan Shapovalov Date: Tue, 28 Jul 2026 17:30:18 +0300 Subject: [PATCH] OvmfPkg/VirtioInputDxe: ReadKeyStrokeEx must always expose KeyState Signed-off-by: Ivan Shapovalov Tested-by: Alexander Mikhalitsyn --- OvmfPkg/VirtioInputDxe/VirtioKeyboard.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OvmfPkg/VirtioInputDxe/VirtioKeyboard.c b/OvmfPkg/VirtioInputDxe/VirtioKeyboard.c index 58a45841c2..434b75b86f 100644 --- a/OvmfPkg/VirtioInputDxe/VirtioKeyboard.c +++ b/OvmfPkg/VirtioInputDxe/VirtioKeyboard.c @@ -570,6 +570,11 @@ VirtioKeyboardReadKeyStrokeEx ( OldTpl = gBS->RaiseTPL (TPL_NOTIFY); Status = PopEfikeyBufHead (&Dev->KeyQueue, KeyData); + // "There was no keystroke data available. Current KeyData.KeyState values are exposed." + if (Status == EFI_NOT_READY) { + ZeroMem (&KeyData->Key, sizeof (KeyData->Key)); + VirtioKeyboardInitializeKeyState (Dev, &KeyData->KeyState); + } gBS->RestoreTPL (OldTpl);