Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 44433
b: refs/heads/master
c: 7725f0b
h: refs/heads/master
i:
  44431: 70b3ea0
v: v3
  • Loading branch information
Avi Kivity authored and Linus Torvalds committed Dec 13, 2006
1 parent 394e33c commit 931e5ff
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f7fbf1fdf0d79241f5cc95310b96f0c52452ab39
refs/heads/master: 7725f0badd6682e5bcc06f38eedf0123712a3f60
21 changes: 2 additions & 19 deletions trunk/drivers/kvm/kvm_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,6 @@ static struct dentry *debugfs_dir;
#define CR8_RESEVED_BITS (~0x0fULL)
#define EFER_RESERVED_BITS 0xfffffffffffff2fe

struct vmx_msr_entry *find_msr_entry(struct kvm_vcpu *vcpu, u32 msr)
{
int i;

for (i = 0; i < vcpu->nmsrs; ++i)
if (vcpu->guest_msrs[i].index == msr)
return &vcpu->guest_msrs[i];
return 0;
}
EXPORT_SYMBOL_GPL(find_msr_entry);

#ifdef CONFIG_X86_64
// LDT or TSS descriptor in the GDT. 16 bytes.
struct segment_descriptor_64 {
Expand Down Expand Up @@ -1124,8 +1113,6 @@ static int get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata)

void set_efer(struct kvm_vcpu *vcpu, u64 efer)
{
struct vmx_msr_entry *msr;

if (efer & EFER_RESERVED_BITS) {
printk(KERN_DEBUG "set_efer: 0x%llx #GP, reserved bits\n",
efer);
Expand All @@ -1140,16 +1127,12 @@ void set_efer(struct kvm_vcpu *vcpu, u64 efer)
return;
}

kvm_arch_ops->set_efer(vcpu, efer);

efer &= ~EFER_LMA;
efer |= vcpu->shadow_efer & EFER_LMA;

vcpu->shadow_efer = efer;

msr = find_msr_entry(vcpu, MSR_EFER);

if (!(efer & EFER_LMA))
efer &= ~EFER_LME;
msr->data = efer;
}
EXPORT_SYMBOL_GPL(set_efer);

Expand Down
12 changes: 10 additions & 2 deletions trunk/drivers/kvm/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ static const u32 vmx_msr_index[] = {
};
#define NR_VMX_MSR (sizeof(vmx_msr_index) / sizeof(*vmx_msr_index))

struct vmx_msr_entry *find_msr_entry(struct kvm_vcpu *vcpu, u32 msr);

static inline int is_page_fault(u32 intr_info)
{
return (intr_info & (INTR_INFO_INTR_TYPE_MASK | INTR_INFO_VECTOR_MASK |
Expand All @@ -93,6 +91,16 @@ static inline int is_external_interrupt(u32 intr_info)
== (INTR_TYPE_EXT_INTR | INTR_INFO_VALID_MASK);
}

static struct vmx_msr_entry *find_msr_entry(struct kvm_vcpu *vcpu, u32 msr)
{
int i;

for (i = 0; i < vcpu->nmsrs; ++i)
if (vcpu->guest_msrs[i].index == msr)
return &vcpu->guest_msrs[i];
return 0;
}

static void vmcs_clear(struct vmcs *vmcs)
{
u64 phys_addr = __pa(vmcs);
Expand Down

0 comments on commit 931e5ff

Please sign in to comment.