From f7c655c7e0590089e3de5bb71198fe02cd4afb21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sun, 8 Jun 2008 01:11:29 +0000 Subject: [PATCH] find_nearest() now saves a solution when reaching the max number of solutions and not near enough git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25859 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/arch/x86/arch_vm.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/system/kernel/arch/x86/arch_vm.cpp b/src/system/kernel/arch/x86/arch_vm.cpp index 7746915c23..ce0ad1663e 100644 --- a/src/system/kernel/arch/x86/arch_vm.cpp +++ b/src/system/kernel/arch/x86/arch_vm.cpp @@ -223,11 +223,18 @@ static int64 sPropositions[MTRR_MAX_SOLUTIONS]; static void find_nearest(uint64 value, int iteration) { - TRACE_MTRR("find_nearest %Lx %d\n", value, iteration); - if (iteration > (MTRR_MAX_SOLUTIONS - 1) || (iteration + 1) >= sSolutionCount) - return; - uint64 down, up; int i; + uint64 down, up; + TRACE_MTRR("find_nearest %Lx %d\n", value, iteration); + if (iteration > (MTRR_MAX_SOLUTIONS - 1) || (iteration + 1) >= sSolutionCount) { + if (sSolutionCount > MTRR_MAX_SOLUTIONS) { + // no solutions yet, save something + for (i=0; i