[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 |