diff --git a/src/system/kernel/arch/x86/arch_vm.cpp b/src/system/kernel/arch/x86/arch_vm.cpp index 60c595dbb4..a212fc8fc3 100644 --- a/src/system/kernel/arch/x86/arch_vm.cpp +++ b/src/system/kernel/arch/x86/arch_vm.cpp @@ -573,6 +573,11 @@ add_memory_type_range(area_id areaID, uint64 base, uint64 size, uint32 type, continue; } + if (range->area == -1 && !x86_use_pat()) { + // Physical memory range in MTRRs; permit overlapping. + continue; + } + if (effectiveType != NULL) { type = *effectiveType = range->type; effectiveType = NULL;