>From 8eea502750fa642ff9f74e91466646e669eb5791 Mon Sep 17 00:00:00 2001 From: Thomas Schlichter Date: Sat, 17 Oct 2009 21:36:37 +0200 Subject: [PATCH 6/6] Set up MTRR entries within set_memory_wc If PAT is not enabled, set up write combining MTRR entries in set_memory_wc(). Signed-off-by: Thomas Schlichter --- arch/x86/mm/pageattr.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index dd38bfb..c25f697 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c @@ -23,6 +23,7 @@ #include #include #include +#include /* * The current flushing context - we pass it instead of 5 arguments: @@ -1010,8 +1011,13 @@ int set_memory_wc(unsigned long addr, int numpages) { int ret; - if (!pat_enabled) - return set_memory_uc(addr, numpages); + if (!pat_enabled) { + ret = set_memory_uc(addr, numpages); + if (!ret) + mtrr_add_unaligned(__pa(addr), numpages * PAGE_SIZE, + MTRR_TYPE_WRCOMB, false); + return ret; + } ret = reserve_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE, _PAGE_CACHE_WC, NULL); -- 1.6.5