From a8cfbf3e93e333b0a9e3839a4b99aa7f1d335cd3 Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Mon, 29 Aug 2011 01:49:19 -0700 Subject: [PATCH] disable MPE flag (=> using L2 cache) for readonly regions --- arch/x86/mm/page.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/page.c b/arch/x86/mm/page.c index dad71657..cecbab61 100644 --- a/arch/x86/mm/page.c +++ b/arch/x86/mm/page.c @@ -413,10 +413,19 @@ int change_page_permissions(size_t start, size_t end, uint32_t flags) newflags &= ~PG_PRESENT; // update flags - if (!(flags & VMA_WRITE)) + if (!(flags & VMA_WRITE)) { newflags &= ~PG_RW; - else +#ifdef CONFIG_ROCKCREEK + if (newflags & (PG_SVM_STRONG|PG_SVM_LAZYRELEASE)) + newflags &= ~PG_MPE; +#endif + } else { newflags |= PG_RW; +#ifdef CONFIG_ROCKCREEK + if (newflags & (PG_SVM_STRONG|PG_SVM_LAZYRELEASE)) + newflags |= PG_MPE; +#endif + } pgt->entries[index2] = (newflags & 0xFFF) | (phyaddr & 0xFFFFF000);