|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 10/14] x86: Remove remaining uses of MTRR_* constants
No functional change intended.
Suggested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Signed-off-by: Demi Marie Obenour <demi@xxxxxxxxxxxxxxxxxxxxxx>
---
xen/arch/x86/cpu/mtrr/generic.c | 2 +-
xen/arch/x86/cpu/mtrr/main.c | 7 +++++--
xen/arch/x86/hvm/mtrr.c | 22 +++++++++++-----------
xen/arch/x86/include/asm/mtrr.h | 4 ----
xen/arch/x86/mm/p2m-ept.c | 18 +++++++++---------
xen/arch/x86/mm/shadow/multi.c | 2 +-
6 files changed, 27 insertions(+), 28 deletions(-)
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index
660ae26c2350b3436a471155fc0426699ba8ac1d..85744fd881f888c9a1b92d2d99f24d8cad1395bd
100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -125,7 +125,7 @@ boolean_param("mtrr.show", mtrr_show);
static const char *__init mtrr_attrib_to_str(mtrr_type x)
{
- static const char __initconst strings[MTRR_NUM_TYPES][16] =
+ static const char __initconst strings[X86_NUM_MT - 1][16] =
{
[X86_MT_UC] = "uncachable",
[X86_MT_WC] = "write-combining",
diff --git a/xen/arch/x86/cpu/mtrr/main.c b/xen/arch/x86/cpu/mtrr/main.c
index
2946003b84938f3b83c98b62dfaa3ace90822983..61e514e557106b09b317766e104feaa0fd838106
100644
--- a/xen/arch/x86/cpu/mtrr/main.c
+++ b/xen/arch/x86/cpu/mtrr/main.c
@@ -62,7 +62,7 @@ const struct mtrr_ops *__read_mostly mtrr_if = NULL;
static void set_mtrr(unsigned int reg, unsigned long base,
unsigned long size, mtrr_type type);
-static const char *const mtrr_strings[MTRR_NUM_TYPES] =
+static const char *const mtrr_strings[X86_NUM_MT] =
{
"uncachable", /* 0 */
"write-combining", /* 1 */
@@ -71,6 +71,7 @@ static const char *const mtrr_strings[MTRR_NUM_TYPES] =
"write-through", /* 4 */
"write-protect", /* 5 */
"write-back", /* 6 */
+ "?", /* 7 */
};
static const char *mtrr_attrib_to_str(int x)
@@ -322,7 +323,9 @@ int mtrr_add_page(unsigned long base, unsigned long size,
if ((error = mtrr_if->validate_add_page(base,size,type)))
return error;
- if (type >= MTRR_NUM_TYPES) {
+ if (type == X86_MT_RESERVED_1 ||
+ type == X86_MT_RESERVED_2 ||
+ type >= X86_MT_UCM) {
printk(KERN_WARNING "mtrr: type: %u invalid\n", type);
return -EINVAL;
}
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
index
31756e4e8b0a5c73400f5f12f2c88197eb68c474..81f33947bc7513d6b403eef6c485160ec8a6ba92
100644
--- a/xen/arch/x86/hvm/mtrr.c
+++ b/xen/arch/x86/hvm/mtrr.c
@@ -37,8 +37,8 @@ static const uint8_t pat_entry_2_pte_flags[8] = {
_PAGE_PAT | _PAGE_PCD, _PAGE_PAT | _PAGE_PCD | _PAGE_PWT };
/* Effective mm type lookup table, according to MTRR and PAT. */
-static const uint8_t mm_type_tbl[MTRR_NUM_TYPES][X86_NUM_MT] = {
-#define RS MEMORY_NUM_TYPES
+static const uint8_t mm_type_tbl[X86_NUM_MT - 1][X86_NUM_MT] = {
+#define RS X86_MT_UCM
#define UC X86_MT_UC
#define WB X86_MT_WB
#define WC X86_MT_WC
@@ -66,9 +66,9 @@ static const uint8_t mm_type_tbl[MTRR_NUM_TYPES][X86_NUM_MT]
= {
* Reverse lookup table, to find a pat type according to MTRR and effective
* memory type. This table is dynamically generated.
*/
-static uint8_t __read_mostly mtrr_epat_tbl[MTRR_NUM_TYPES][MEMORY_NUM_TYPES] =
- { [0 ... MTRR_NUM_TYPES-1] =
- { [0 ... MEMORY_NUM_TYPES-1] = INVALID_MEM_TYPE }
+static uint8_t __read_mostly mtrr_epat_tbl[X86_NUM_MT - 1][X86_NUM_MT] =
+ { [0 ... X86_NUM_MT - 2] =
+ { [0 ... X86_NUM_MT - 2] = INVALID_MEM_TYPE }
};
/* Lookup table for PAT entry of a given PAT value in host PAT. */
@@ -79,13 +79,13 @@ static int __init cf_check hvm_mtrr_pat_init(void)
{
unsigned int i, j;
- for ( i = 0; i < MTRR_NUM_TYPES; i++ )
+ for ( i = 0; i < X86_NUM_MT - 1; i++ )
{
for ( j = 0; j < X86_NUM_MT; j++ )
{
unsigned int tmp = mm_type_tbl[i][j];
- if ( tmp < MEMORY_NUM_TYPES )
+ if ( tmp < X86_NUM_MT - 1 )
mtrr_epat_tbl[i][tmp] = j;
}
}
@@ -317,11 +317,11 @@ static uint8_t effective_mm_type(struct mtrr_state *m,
uint8_t gmtrr_mtype)
{
uint8_t mtrr_mtype, pat_value;
-
+
/* if get_pat_flags() gives a dedicated MTRR type,
* just use it
- */
- if ( gmtrr_mtype == NO_HARDCODE_MEM_TYPE )
+ */
+ if ( gmtrr_mtype == X86_MT_UCM )
mtrr_mtype = mtrr_get_type(m, gpa, 0);
else
mtrr_mtype = gmtrr_mtype;
@@ -346,7 +346,7 @@ uint32_t get_pat_flags(struct vcpu *v,
/* 1. Get the effective memory type of guest physical address,
* with the pair of guest MTRR and PAT
*/
- guest_eff_mm_type = effective_mm_type(g, pat, gpaddr,
+ guest_eff_mm_type = effective_mm_type(g, pat, gpaddr,
gl1e_flags, gmtrr_mtype);
/* 2. Get the memory type of host physical address, with MTRR */
shadow_mtrr_type = mtrr_get_type(&mtrr_state, spaddr, 0);
diff --git a/xen/arch/x86/include/asm/mtrr.h b/xen/arch/x86/include/asm/mtrr.h
index
23f908063fb987ee8a5b2dd3d772106d3a55e644..b82d4587a3c4a1aac12f961b63c9e5b56a1be72a
100644
--- a/xen/arch/x86/include/asm/mtrr.h
+++ b/xen/arch/x86/include/asm/mtrr.h
@@ -3,10 +3,6 @@
#include <xen/mm.h>
-#define MTRR_NUM_TYPES 7
-#define MEMORY_NUM_TYPES MTRR_NUM_TYPES
-#define NO_HARDCODE_MEM_TYPE MTRR_NUM_TYPES
-
#define NORMAL_CACHE_MODE 0
#define NO_FILL_CACHE_MODE 2
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index
aa7a3287c46ace715106385151e1834b3cd64508..9f048a5680eb87518c1ac6b6bf25178d82ebc018
100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -394,10 +394,10 @@ static bool ept_invalidate_emt_subtree(struct p2m_domain
*p2m, mfn_t mfn,
ept_entry_t e = atomic_read_ept_entry(&epte[i]);
if ( !is_epte_valid(&e) || !is_epte_present(&e) ||
- (e.emt == MTRR_NUM_TYPES && (e.recalc || !recalc)) )
+ (e.emt == X86_MT_UCM && (e.recalc || !recalc)) )
continue;
- e.emt = MTRR_NUM_TYPES;
+ e.emt = X86_MT_UCM;
if ( recalc )
e.recalc = 1;
rc = atomic_write_ept_entry(p2m, &epte[i], e, level - 1);
@@ -470,9 +470,9 @@ static int ept_invalidate_emt_range(struct p2m_domain *p2m,
ept_entry_t e = atomic_read_ept_entry(&table[index]);
if ( is_epte_valid(&e) && is_epte_present(&e) &&
- (e.emt != MTRR_NUM_TYPES || !e.recalc) )
+ (e.emt != X86_MT_UCM || !e.recalc) )
{
- e.emt = MTRR_NUM_TYPES;
+ e.emt = X86_MT_UCM;
e.recalc = 1;
wrc = atomic_write_ept_entry(p2m, &table[index], e, target);
ASSERT(wrc == 0);
@@ -655,7 +655,7 @@ static int cf_check resolve_misconfig(struct p2m_domain
*p2m, unsigned long gfn)
{
bool ipat;
- if ( e.emt != MTRR_NUM_TYPES )
+ if ( e.emt != X86_MT_UCM )
break;
if ( level == 0 )
@@ -665,7 +665,7 @@ static int cf_check resolve_misconfig(struct p2m_domain
*p2m, unsigned long gfn)
p2m_type_t nt;
e = atomic_read_ept_entry(&epte[i]);
- if ( e.emt == MTRR_NUM_TYPES )
+ if ( e.emt == X86_MT_UCM )
e.emt = 0;
if ( !is_epte_valid(&e) || !is_epte_present(&e) )
continue;
@@ -741,7 +741,7 @@ static int cf_check resolve_misconfig(struct p2m_domain
*p2m, unsigned long gfn)
break;
}
- if ( e.emt == MTRR_NUM_TYPES )
+ if ( e.emt == X86_MT_UCM )
{
ASSERT(is_epte_present(&e));
ept_invalidate_emt_subtree(p2m, _mfn(e.mfn), e.recalc, level);
@@ -931,7 +931,7 @@ ept_set_entry(struct p2m_domain *p2m, gfn_t gfn_, mfn_t mfn,
if ( emt >= 0 )
new_entry.emt = emt;
else /* ept_handle_misconfig() will need to take care of this. */
- new_entry.emt = MTRR_NUM_TYPES;
+ new_entry.emt = X86_NUM_MT - 1;
new_entry.ipat = ipat;
new_entry.sp = !!i;
@@ -1471,7 +1471,7 @@ static void cf_check ept_dump_p2m_table(unsigned char key)
for ( i = ept->wl; i > 0; i-- )
{
ept_entry = table + (gfn_remainder >> (i * EPT_TABLE_ORDER));
- if ( ept_entry->emt == MTRR_NUM_TYPES )
+ if ( ept_entry->emt == X86_MT_UCM )
c = '?';
ret = ept_next_level(p2m, 1, &table, &gfn_remainder, i);
if ( ret != GUEST_TABLE_NORMAL_PAGE )
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index
f5f7ff021bd9e057c5b6f6329de7acb5ef05d58f..964f21829841777156aa9bfc24490ea4e052c344
100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -578,7 +578,7 @@ _sh_propagate(struct vcpu *v,
gflags,
gfn_to_paddr(target_gfn),
mfn_to_maddr(target_mfn),
- NO_HARDCODE_MEM_TYPE);
+ X86_MT_UCM);
}
}
--
Sincerely,
Demi Marie Obenour (she/her/hers)
Invisible Things Lab
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |