Properly handle bad physical pages
This commit is contained in:
@@ -260,6 +260,9 @@ MM::Pfn::LinkFreePage(IN PFN_NUMBER PageFrameIndex)
|
|||||||
/* Update cache attribute to not mapped */
|
/* Update cache attribute to not mapped */
|
||||||
PfnEntry->u3.e1.CacheAttribute = PfnNotMapped;
|
PfnEntry->u3.e1.CacheAttribute = PfnNotMapped;
|
||||||
|
|
||||||
|
/* Insert the page into the bad page list instead */
|
||||||
|
LinkPage(&BadPagesList, PageFrameIndex);
|
||||||
|
|
||||||
/* Do not add it to the free list */
|
/* Do not add it to the free list */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -693,8 +696,8 @@ MM::Pfn::ProcessMemoryDescriptor(IN PFN_NUMBER BasePage,
|
|||||||
switch(MemoryType)
|
switch(MemoryType)
|
||||||
{
|
{
|
||||||
case LoaderBad:
|
case LoaderBad:
|
||||||
/* This memory is marked as bad and should not be used */
|
/* This memory is marked as bad and should not be used, add it to the bad pages list */
|
||||||
UNIMPLEMENTED;
|
LinkPage(&BadPagesList, BasePage);
|
||||||
break;
|
break;
|
||||||
case LoaderXIPRom:
|
case LoaderXIPRom:
|
||||||
/* This memory range contains Read-Only Memory (ROM) */
|
/* This memory range contains Read-Only Memory (ROM) */
|
||||||
|
|||||||
Reference in New Issue
Block a user