From 9fcee65eafeef7419d272ed23f29cbb7b501dae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Thu, 27 Mar 2008 22:31:42 +0000 Subject: [PATCH] take into account areas starting or ending equally git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24612 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/arch/x86/arch_vm.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/system/kernel/arch/x86/arch_vm.cpp b/src/system/kernel/arch/x86/arch_vm.cpp index 231995cb8b..a7486fce93 100644 --- a/src/system/kernel/arch/x86/arch_vm.cpp +++ b/src/system/kernel/arch/x86/arch_vm.cpp @@ -93,15 +93,15 @@ is_memory_overlapping(uint64 base, uint64 length, int32 *extendedIndex) x86_get_mtrr(index, &b, &l, &t); // check first for write combining extensions - if (base < b - && (base + length) > (b + l) + if (base <= b + && (base + length) >= (b + l) && t == IA32_MTR_WRITE_COMBINING) { *extendedIndex = index; return true; } - if ((base > b && base < (b + l)) + if ((base >= b && base < (b + l)) || ((base + length) > b - && (base + length) < (b + l))) + && (base + length) <= (b + l))) return true; } }