|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 01/12] x86/mm: Avoid hard-coding PAT in get_page_from_l1e()
get_page_from_l1e() relied on Xen's choice of PAT, which is brittle in
the face of future PAT changes. Use the proper _PAGE_* constants
instead. Also, treat the two unused cases as if they are cacheable, as
future changes may make them cacheable.
Signed-off-by: Demi Marie Obenour <demi@xxxxxxxxxxxxxxxxxxxxxx>
---
xen/arch/x86/mm.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index
78b1972e4170cacccc9c37c6e64e76e66a7da87f..b73cb29327ba49703673886d09d79f2f8928a6c0
100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -959,14 +959,19 @@ get_page_from_l1e(
flip = _PAGE_RW;
}
+ /* Force cacheable memtypes to UC */
switch ( l1f & PAGE_CACHE_ATTRS )
{
- case 0: /* WB */
- flip |= _PAGE_PWT | _PAGE_PCD;
+ case _PAGE_UC:
+ case _PAGE_UCM:
+ case _PAGE_WC:
+ /* not cached */
break;
- case _PAGE_PWT: /* WT */
- case _PAGE_PWT | _PAGE_PAT: /* WP */
- flip |= _PAGE_PCD | (l1f & _PAGE_PAT);
+ case _PAGE_WB:
+ case _PAGE_WT:
+ case _PAGE_WP:
+ default:
+ flip |= (l1f & PAGE_CACHE_ATTRS) ^ _PAGE_UC;
break;
}
--
Sincerely,
Demi Marie Obenour (she/her/hers)
Invisible Things Lab
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |