diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-10-05 01:50:33 +0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-10-05 07:10:22 +0400 |
commit | dd5523552c2897e3fde16fc2fc8f6332addf66ab (patch) | |
tree | 28b2b671d46a01344d24b7f73bfdd016f30eac60 | |
parent | 99e1aa17ce434010dd820b583628370cc15f10f3 (diff) | |
download | linux-dd5523552c2897e3fde16fc2fc8f6332addf66ab.tar.xz |
x86: mtrr_cleanup: treat WRPROT as UNCACHEABLE
For the purpose of MTRR canonicalization, treat WRPROT as UNCACHEABLE.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | arch/x86/kernel/cpu/mtrr/main.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c index 663e530e08e0..5994a9f78f3d 100644 --- a/arch/x86/kernel/cpu/mtrr/main.c +++ b/arch/x86/kernel/cpu/mtrr/main.c @@ -759,7 +759,8 @@ x86_get_mtrr_mem_range(struct res_range *range, int nr_range, /* take out UC ranges */ for (i = 0; i < num_var_ranges; i++) { type = range_state[i].type; - if (type != MTRR_TYPE_UNCACHABLE) + if (type != MTRR_TYPE_UNCACHABLE && + type != MTRR_TYPE_WRPROT) continue; size = range_state[i].size_pfn; if (!size) @@ -1248,6 +1249,8 @@ static int __init mtrr_cleanup(unsigned address_bits) continue; if (!size) type = MTRR_NUM_TYPES; + if (type == MTRR_TYPE_WRPROT) + type = MTRR_TYPE_UNCACHABLE; num[type]++; } |