aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/mtrr/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/cpu/mtrr/main.c')
-rw-r--r--arch/x86/kernel/cpu/mtrr/main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index beb45c9c0835..60af5ed2b5c0 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -311,7 +311,7 @@ static void set_mtrr(unsigned int reg, unsigned long base,
311 */ 311 */
312 312
313int mtrr_add_page(unsigned long base, unsigned long size, 313int mtrr_add_page(unsigned long base, unsigned long size,
314 unsigned int type, char increment) 314 unsigned int type, bool increment)
315{ 315{
316 int i, replace, error; 316 int i, replace, error;
317 mtrr_type ltype; 317 mtrr_type ltype;
@@ -394,7 +394,9 @@ int mtrr_add_page(unsigned long base, unsigned long size,
394 if (likely(replace < 0)) 394 if (likely(replace < 0))
395 usage_table[i] = 1; 395 usage_table[i] = 1;
396 else { 396 else {
397 usage_table[i] = usage_table[replace] + !!increment; 397 usage_table[i] = usage_table[replace];
398 if (increment)
399 usage_table[i]++;
398 if (unlikely(replace != i)) { 400 if (unlikely(replace != i)) {
399 set_mtrr(replace, 0, 0, 0); 401 set_mtrr(replace, 0, 0, 0);
400 usage_table[replace] = 0; 402 usage_table[replace] = 0;
@@ -460,7 +462,7 @@ static int mtrr_check(unsigned long base, unsigned long size)
460 462
461int 463int
462mtrr_add(unsigned long base, unsigned long size, unsigned int type, 464mtrr_add(unsigned long base, unsigned long size, unsigned int type,
463 char increment) 465 bool increment)
464{ 466{
465 if (mtrr_check(base, size)) 467 if (mtrr_check(base, size))
466 return -EINVAL; 468 return -EINVAL;