SysCall: Added FreeUserSpaceDriver().

This commit is contained in:
Mikhail Krichanov 2025-01-23 15:02:23 +03:00
parent 23b53c960d
commit 0e31c462fe
1 changed files with 22 additions and 0 deletions
MdeModulePkg/Core/Dxe/SysCall

View File

@ -326,6 +326,27 @@ FindUserInfo (
return NULL;
}
STATIC
VOID
EFIAPI
FreeUserSpaceDriver (
IN VOID *CoreWrapper
)
{
LIST_ENTRY *Link;
USER_SPACE_DRIVER *UserDriver;
for (Link = gUserSpaceDriversHead.ForwardLink; Link != &gUserSpaceDriversHead; Link = Link->ForwardLink) {
UserDriver = BASE_CR (Link, USER_SPACE_DRIVER, Link);
if (UserDriver->CoreWrapper == CoreWrapper) {
break;
}
}
RemoveEntryList (&UserDriver->Link);
}
EFI_STATUS
EFIAPI
CallBootService (
@ -498,6 +519,7 @@ CallBootService (
ForbidSupervisorAccessToUserMemory ();
while (Index > 0) {
FreeUserSpaceDriver (CoreArgList[Index - 1]);
FreePool (CoreArgList[Index - 1]);
Index -= 2;
}