From 01030ea5709050abd7bd54e681b1aff32098c2e1 Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Mon, 13 Apr 2026 09:17:24 +0200 Subject: [PATCH] OvmfPkg/VirtioScsiDxe: protect against interrupts (e.g., timer) --- OvmfPkg/VirtioScsiDxe/VirtioScsi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c index ac8c57660ebb..11371d14422a 100644 --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c @@ -446,6 +446,7 @@ VirtioScsiPassThru ( VOID *InDataBuffer; UINTN InDataNumPages; BOOLEAN OutDataBufferIsMapped; + EFI_TPL CurrentTpl; // // Set InDataMapping,OutDataMapping,InDataDeviceAddress and OutDataDeviceAddress to @@ -596,6 +597,8 @@ VirtioScsiPassThru ( goto FreeResponseBuffer; } + CurrentTpl = gBS->RaiseTPL (TPL_NOTIFY); + VirtioPrepare (&Dev->Ring, &Indices); // @@ -664,10 +667,12 @@ VirtioScsiPassThru ( NULL ) != EFI_SUCCESS) { + gBS->RestoreTPL (CurrentTpl); Status = ReportHostAdapterError (Packet); goto UnmapResponseBuffer; } + gBS->RestoreTPL (CurrentTpl); Status = ParseResponse (Packet, Response); //