Skip to content

Commit

Permalink
KVM: MTRR: remove mtrr_state.have_fixed
Browse files Browse the repository at this point in the history
vMTRR does not depend on any host MTRR feature and fixed MTRRs have always
been implemented, so drop this field

Signed-off-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
Xiao Guangrong authored and Paolo Bonzini committed Jun 19, 2015
1 parent eb83991 commit 70109e7
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 6 deletions.
9 changes: 8 additions & 1 deletion arch/x86/include/asm/kvm_host.h
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,13 @@ enum {
KVM_DEBUGREG_RELOAD = 4,
};

struct kvm_mtrr {
struct mtrr_var_range var_ranges[MTRR_MAX_VAR_RANGES];
mtrr_type fixed_ranges[KVM_NR_FIXED_MTRR_REGION];
unsigned char enabled;
mtrr_type def_type;
};

struct kvm_vcpu_arch {
/*
* rip and regs accesses must go through
Expand Down Expand Up @@ -472,7 +479,7 @@ struct kvm_vcpu_arch {
bool nmi_injected; /* Trying to inject an NMI this entry */
bool smi_pending; /* SMI queued after currently running handler */

struct mtrr_state_type mtrr_state;
struct kvm_mtrr mtrr_state;
u64 pat;

unsigned switch_db_regs;
Expand Down
7 changes: 3 additions & 4 deletions arch/x86/kvm/mtrr.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ EXPORT_SYMBOL_GPL(kvm_mtrr_valid);

static void update_mtrr(struct kvm_vcpu *vcpu, u32 msr)
{
struct mtrr_state_type *mtrr_state = &vcpu->arch.mtrr_state;
struct kvm_mtrr *mtrr_state = &vcpu->arch.mtrr_state;
unsigned char mtrr_enabled = mtrr_state->enabled;
gfn_t start, end, mask;
int index;
Expand Down Expand Up @@ -247,7 +247,7 @@ int kvm_mtrr_get_msr(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
* The function is based on mtrr_type_lookup() in
* arch/x86/kernel/cpu/mtrr/generic.c
*/
static int get_mtrr_type(struct mtrr_state_type *mtrr_state,
static int get_mtrr_type(struct kvm_mtrr *mtrr_state,
u64 start, u64 end)
{
u64 base, mask;
Expand All @@ -262,8 +262,7 @@ static int get_mtrr_type(struct mtrr_state_type *mtrr_state,
end--;

/* Look in fixed ranges. Just return the type as per start */
if (mtrr_state->have_fixed && (mtrr_state->enabled & 0x1) &&
(start < 0x100000)) {
if ((mtrr_state->enabled & 0x1) && (start < 0x100000)) {
int idx;

if (start < 0x80000) {
Expand Down
1 change: 0 additions & 1 deletion arch/x86/kvm/x86.c
Original file line number Diff line number Diff line change
Expand Up @@ -7379,7 +7379,6 @@ int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
{
int r;

vcpu->arch.mtrr_state.have_fixed = 1;
r = vcpu_load(vcpu);
if (r)
return r;
Expand Down

0 comments on commit 70109e7

Please sign in to comment.