From c855d93030e4edb9353f40e210a97c0c2fd44132 Mon Sep 17 00:00:00 2001 From: Mikhail Krichanov Date: Thu, 29 Feb 2024 12:42:54 +0300 Subject: [PATCH] SysCall: Fixed bug in BlockIo, DiskIo Write functions. --- MdeModulePkg/Core/Dxe/SysCall/BootServices.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/MdeModulePkg/Core/Dxe/SysCall/BootServices.c b/MdeModulePkg/Core/Dxe/SysCall/BootServices.c index 5cb08ce4fa..2fa445ceab 100644 --- a/MdeModulePkg/Core/Dxe/SysCall/BootServices.c +++ b/MdeModulePkg/Core/Dxe/SysCall/BootServices.c @@ -456,6 +456,10 @@ CallBootService ( return EFI_OUT_OF_RESOURCES; } + DisableSMAP (); + CopyMem ((VOID *)Argument5,(VOID *)UserRsp->Arguments[5], Argument4); + EnableSMAP (); + Status = mCoreBlockIoProtocol->WriteBlocks ( mCoreBlockIoProtocol, (UINT32)CoreRbp->Argument2, @@ -463,9 +467,6 @@ CallBootService ( Argument4, (VOID *)Argument5 ); - DisableSMAP (); - CopyMem ((VOID *)UserRsp->Arguments[5], (VOID *)Argument5, Argument4); - EnableSMAP (); FreePool ((VOID *)Argument5); @@ -528,6 +529,10 @@ CallBootService ( return EFI_OUT_OF_RESOURCES; } + DisableSMAP (); + CopyMem ((VOID *)Argument5, (VOID *)UserRsp->Arguments[5], Argument4); + EnableSMAP (); + Status = mCoreDiskIoProtocol->WriteDisk ( mCoreDiskIoProtocol, (UINT32)CoreRbp->Argument2, @@ -535,9 +540,6 @@ CallBootService ( Argument4, (VOID *)Argument5 ); - DisableSMAP (); - CopyMem ((VOID *)UserRsp->Arguments[5], (VOID *)Argument5, Argument4); - EnableSMAP (); FreePool ((VOID *)Argument5);