Eliminate unnecessary page map commits
This commit is contained in:
@@ -480,7 +480,7 @@ Xtos::InitializeLoaderBlock(IN PXTBL_PAGE_MAPPING PageMap,
|
|||||||
XtLdrProtocol->Memory.CopyMemory((PVOID)((UINT_PTR)LoaderBlock + sizeof(KERNEL_INITIALIZATION_BLOCK)),
|
XtLdrProtocol->Memory.CopyMemory((PVOID)((UINT_PTR)LoaderBlock + sizeof(KERNEL_INITIALIZATION_BLOCK)),
|
||||||
Parameters->Parameters, ParametersSize);
|
Parameters->Parameters, ParametersSize);
|
||||||
|
|
||||||
/* HACK: Commit page map to avoid memory leaks (AGAIN!) */
|
/* Commit mappings */
|
||||||
XtLdrProtocol->Memory.CommitPageMap(PageMap);
|
XtLdrProtocol->Memory.CommitPageMap(PageMap);
|
||||||
|
|
||||||
/* Initialize system resources list */
|
/* Initialize system resources list */
|
||||||
@@ -725,14 +725,6 @@ Xtos::RunBootSequence(IN PEFI_FILE_HANDLE BootDir,
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Commit mappings */
|
|
||||||
Status = XtLdrProtocol->Memory.CommitPageMap(&PageMap);
|
|
||||||
if(Status != STATUS_EFI_SUCCESS)
|
|
||||||
{
|
|
||||||
XtLdrProtocol->Debug.Print(L"Failed to commit hardware mappings (Pass 1)\n");
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Store virtual address of kernel initialization block for future kernel call */
|
/* Store virtual address of kernel initialization block for future kernel call */
|
||||||
KernelParameters = (PKERNEL_INITIALIZATION_BLOCK)VirtualAddress;
|
KernelParameters = (PKERNEL_INITIALIZATION_BLOCK)VirtualAddress;
|
||||||
|
|
||||||
@@ -745,15 +737,6 @@ Xtos::RunBootSequence(IN PEFI_FILE_HANDLE BootDir,
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HACK: Commit mappings again to include the kernel initialization block */
|
|
||||||
Status = XtLdrProtocol->Memory.CommitPageMap(&PageMap);
|
|
||||||
if(Status != STATUS_EFI_SUCCESS)
|
|
||||||
{
|
|
||||||
/* Failed to build page map */
|
|
||||||
XtLdrProtocol->Debug.Print(L"Failed to build page map (Status code: %zX)\n", Status);
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Get kernel entry point */
|
/* Get kernel entry point */
|
||||||
PeCoffProtocol->GetEntryPoint(ImageContext, (PVOID*)&KernelEntryPoint);
|
PeCoffProtocol->GetEntryPoint(ImageContext, (PVOID*)&KernelEntryPoint);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user