Commit d6ab1ed4 authored by Gleb Natapov's avatar Gleb Natapov Committed by Avi Kivity

KVM: Drop kvm_get_gdt() in favor of generic linux function

Linux now has native_store_gdt() to do the same. Use it instead of
kvm local version.
Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent f5c98031
...@@ -723,11 +723,6 @@ static inline void kvm_get_idt(struct desc_ptr *table) ...@@ -723,11 +723,6 @@ static inline void kvm_get_idt(struct desc_ptr *table)
asm("sidt %0" : "=m"(*table)); asm("sidt %0" : "=m"(*table));
} }
static inline void kvm_get_gdt(struct desc_ptr *table)
{
asm("sgdt %0" : "=m"(*table));
}
static inline unsigned long kvm_read_tr_base(void) static inline unsigned long kvm_read_tr_base(void)
{ {
u16 tr; u16 tr;
......
...@@ -368,7 +368,7 @@ static int svm_hardware_enable(void *garbage) ...@@ -368,7 +368,7 @@ static int svm_hardware_enable(void *garbage)
sd->max_asid = cpuid_ebx(SVM_CPUID_FUNC) - 1; sd->max_asid = cpuid_ebx(SVM_CPUID_FUNC) - 1;
sd->next_asid = sd->max_asid + 1; sd->next_asid = sd->max_asid + 1;
kvm_get_gdt(&gdt_descr); native_store_gdt(&gdt_descr);
gdt = (struct desc_struct *)gdt_descr.address; gdt = (struct desc_struct *)gdt_descr.address;
sd->tss_desc = (struct kvm_ldttss_desc *)(gdt + GDT_ENTRY_TSS); sd->tss_desc = (struct kvm_ldttss_desc *)(gdt + GDT_ENTRY_TSS);
......
...@@ -603,7 +603,7 @@ static void reload_tss(void) ...@@ -603,7 +603,7 @@ static void reload_tss(void)
struct desc_ptr gdt; struct desc_ptr gdt;
struct desc_struct *descs; struct desc_struct *descs;
kvm_get_gdt(&gdt); native_store_gdt(&gdt);
descs = (void *)gdt.address; descs = (void *)gdt.address;
descs[GDT_ENTRY_TSS].type = 9; /* available TSS */ descs[GDT_ENTRY_TSS].type = 9; /* available TSS */
load_TR_desc(); load_TR_desc();
...@@ -767,7 +767,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu) ...@@ -767,7 +767,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
* processors. * processors.
*/ */
vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */ vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */
kvm_get_gdt(&dt); native_store_gdt(&dt);
vmcs_writel(HOST_GDTR_BASE, dt.address); /* 22.2.4 */ vmcs_writel(HOST_GDTR_BASE, dt.address); /* 22.2.4 */
rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp); rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
......
...@@ -233,7 +233,7 @@ unsigned long segment_base(u16 selector) ...@@ -233,7 +233,7 @@ unsigned long segment_base(u16 selector)
if (selector == 0) if (selector == 0)
return 0; return 0;
kvm_get_gdt(&gdt); native_store_gdt(&gdt);
table_base = gdt.address; table_base = gdt.address;
if (selector & 4) { /* from ldt */ if (selector & 4) { /* from ldt */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment