From 2dd7ea9b7a34fd02c10b67bccebfb3c04b7ab3bf Mon Sep 17 00:00:00 2001 From: root Date: Wed, 15 Mar 2017 13:50:51 +0000 Subject: patch up C99isms and a missing define --- tboot/mtrrs.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'tboot/mtrrs.c') diff --git a/tboot/mtrrs.c b/tboot/mtrrs.c index 0d02b90..f50b31a 100644 --- a/tboot/mtrrs.c +++ b/tboot/mtrrs.c @@ -157,6 +157,7 @@ bool set_mtrrs_for_acmod(const acm_hdr_t *hdr) void save_mtrrs(mtrr_state_t *saved_state) { + unsigned int ndx; mtrr_cap_t mtrr_cap; /* IA32_MTRR_DEF_TYPE MSR */ @@ -175,7 +176,7 @@ void save_mtrrs(mtrr_state_t *saved_state) saved_state->num_var_mtrrs = mtrr_cap.vcnt; /* physmask's and physbase's */ - for ( unsigned int ndx = 0; ndx < saved_state->num_var_mtrrs; ndx++ ) { + for ( ndx = 0; ndx < saved_state->num_var_mtrrs; ndx++ ) { saved_state->mtrr_physmasks[ndx].raw = rdmsr(MTRR_PHYS_MASK0_MSR + ndx*2); saved_state->mtrr_physbases[ndx].raw = @@ -187,12 +188,13 @@ void save_mtrrs(mtrr_state_t *saved_state) static void print_mtrrs(const mtrr_state_t *saved_state) { + unsigned int i; printk(TBOOT_DETA"mtrr_def_type: e = %d, fe = %d, type = %x\n", saved_state->mtrr_def_type.e, saved_state->mtrr_def_type.fe, saved_state->mtrr_def_type.type ); printk(TBOOT_DETA"mtrrs:\n"); printk(TBOOT_DETA"\t\t base mask type v\n"); - for ( unsigned int i = 0; i < saved_state->num_var_mtrrs; i++ ) { + for ( i = 0; i < saved_state->num_var_mtrrs; i++ ) { printk(TBOOT_DETA"\t\t%13.13Lx %13.13Lx %2.2x %d\n", (uint64_t)saved_state->mtrr_physbases[i].base, (uint64_t)saved_state->mtrr_physmasks[i].mask, @@ -204,6 +206,7 @@ static void print_mtrrs(const mtrr_state_t *saved_state) /* base should be 4k-bytes aligned, no invalid overlap combination */ static int get_page_type(const mtrr_state_t *saved_state, uint32_t base) { + unsigned int i; int type = -1; bool wt = false; uint64_t maxphyaddr_mask = get_maxphyaddr_mask(); @@ -211,7 +214,7 @@ static int get_page_type(const mtrr_state_t *saved_state, uint32_t base) /* omit whether the fix mtrrs are enabled, just check var mtrrs */ base >>= PAGE_SHIFT; - for ( unsigned int i = 0; i < saved_state->num_var_mtrrs; i++ ) { + for ( i = 0; i < saved_state->num_var_mtrrs; i++ ) { const mtrr_physbase_t *base_i = &saved_state->mtrr_physbases[i]; const mtrr_physmask_t *mask_i = &saved_state->mtrr_physmasks[i]; @@ -342,6 +345,7 @@ bool validate_mtrrs(const mtrr_state_t *saved_state) mtrr_cap_t mtrr_cap; uint64_t maxphyaddr_mask = get_maxphyaddr_mask(); uint64_t max_pages = maxphyaddr_mask + 1; /* max # 4k pages supported */ + unsigned int ndx, i; /* check is meaningless if MTRRs were disabled */ if ( saved_state->mtrr_def_type.e == 0 ) @@ -356,7 +360,7 @@ bool validate_mtrrs(const mtrr_state_t *saved_state) } /* variable MTRRs describing non-contiguous memory regions */ - for ( unsigned int ndx = 0; ndx < saved_state->num_var_mtrrs; ndx++ ) { + for ( ndx = 0; ndx < saved_state->num_var_mtrrs; ndx++ ) { uint64_t tb; if ( saved_state->mtrr_physmasks[ndx].v == 0 ) @@ -384,14 +388,14 @@ bool validate_mtrrs(const mtrr_state_t *saved_state) } /* overlaping regions with invalid memory type combinations */ - for ( unsigned int ndx = 0; ndx < saved_state->num_var_mtrrs; ndx++ ) { + for ( ndx = 0; ndx < saved_state->num_var_mtrrs; ndx++ ) { const mtrr_physbase_t *base_ndx = &saved_state->mtrr_physbases[ndx]; const mtrr_physmask_t *mask_ndx = &saved_state->mtrr_physmasks[ndx]; if ( mask_ndx->v == 0 ) continue; - for ( unsigned int i = ndx + 1; i < saved_state->num_var_mtrrs; i++ ) { + for ( i = ndx + 1; i < saved_state->num_var_mtrrs; i++ ) { const mtrr_physbase_t *base_i = &saved_state->mtrr_physbases[i]; const mtrr_physmask_t *mask_i = &saved_state->mtrr_physmasks[i]; @@ -464,6 +468,7 @@ bool validate_mtrrs(const mtrr_state_t *saved_state) void restore_mtrrs(const mtrr_state_t *saved_state) { + unsigned int ndx; /* called by apply_policy() so use saved ptr */ if ( saved_state == NULL ) saved_state = g_saved_mtrrs; @@ -475,7 +480,7 @@ void restore_mtrrs(const mtrr_state_t *saved_state) set_all_mtrrs(false); /* physmask's and physbase's */ - for ( unsigned int ndx = 0; ndx < saved_state->num_var_mtrrs; ndx++ ) { + for ( ndx = 0; ndx < saved_state->num_var_mtrrs; ndx++ ) { wrmsr(MTRR_PHYS_MASK0_MSR + ndx*2, saved_state->mtrr_physmasks[ndx].raw); wrmsr(MTRR_PHYS_BASE0_MSR + ndx*2, @@ -494,6 +499,7 @@ bool set_mem_type(const void *base, uint32_t size, uint32_t mem_type) { int num_pages; int ndx; + int j; mtrr_def_type_t mtrr_def_type; mtrr_cap_t mtrr_cap; mtrr_physmask_t mtrr_physmask; @@ -540,7 +546,7 @@ bool set_mem_type(const void *base, uint32_t size, uint32_t mem_type) base_v = base_v >>1 ; } - for (int j=i-12; j>0; j--) mtrr_s =mtrr_s*2; //mtrr_s = mtrr_s << 1 + for (j=i-12; j>0; j--) mtrr_s =mtrr_s*2; //mtrr_s = mtrr_s << 1 printk(TBOOT_DETA"The maximum allowed MTRR range size=%d Pages \n", mtrr_s); while (num_pages >= mtrr_s){ -- cgit v1.2.3