Commit d359192f authored by Avi Kivity's avatar Avi Kivity
Browse files

KVM: VMX: Use host_gdt variable wherever we need the host gdt



Now that we have the host gdt conveniently stored in a variable, make use
of it instead of querying the cpu.

Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent e071edd5
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -706,11 +706,10 @@ static void reload_tss(void)
	/*
	 * VT restores TR but not its size.  Useless.
	 */
	struct desc_ptr gdt;
	struct desc_ptr *gdt = &__get_cpu_var(host_gdt);
	struct desc_struct *descs;

	native_store_gdt(&gdt);
	descs = (void *)gdt.address;
	descs = (void *)gdt->address;
	descs[GDT_ENTRY_TSS].type = 9; /* available TSS */
	load_TR_desc();
}
@@ -753,7 +752,7 @@ static bool update_transition_efer(struct vcpu_vmx *vmx, int efer_offset)

static unsigned long segment_base(u16 selector)
{
	struct desc_ptr gdt;
	struct desc_ptr *gdt = &__get_cpu_var(host_gdt);
	struct desc_struct *d;
	unsigned long table_base;
	unsigned long v;
@@ -761,8 +760,7 @@ static unsigned long segment_base(u16 selector)
	if (!(selector & ~3))
		return 0;

	native_store_gdt(&gdt);
	table_base = gdt.address;
	table_base = gdt->address;

	if (selector & 4) {           /* from ldt */
		u16 ldt_selector = kvm_read_ldt();
@@ -897,7 +895,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
	}

	if (vcpu->cpu != cpu) {
		struct desc_ptr dt;
		struct desc_ptr *gdt = &__get_cpu_var(host_gdt);
		unsigned long sysenter_esp;

		kvm_migrate_timers(vcpu);
@@ -913,8 +911,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
		 * processors.
		 */
		vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */
		native_store_gdt(&dt);
		vmcs_writel(HOST_GDTR_BASE, dt.address);   /* 22.2.4 */
		vmcs_writel(HOST_GDTR_BASE, gdt->address);   /* 22.2.4 */

		rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
		vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */