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: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
f5c9803173
commit
d6ab1ed446
4 changed files with 4 additions and 9 deletions
|
@ -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)
|
||||||
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)
|
||||||
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)
|
||||||
* 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)
|
||||||
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 */
|
||||||
|
|
Loading…
Reference in a new issue