diff options
Diffstat (limited to 'arch/x86/kernel/cpu/mtrr/main.c')
-rw-r--r-- | arch/x86/kernel/cpu/mtrr/main.c | 8 |
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 | ||
313 | int mtrr_add_page(unsigned long base, unsigned long size, | 313 | int 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 | ||
461 | int | 463 | int |
462 | mtrr_add(unsigned long base, unsigned long size, unsigned int type, | 464 | mtrr_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; |