Skip to content

Commit 45e38cf

Browse files
committed
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM fixes from Paolo Bonzini: "Just two very small & simple patches" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: x86: Use adjustment in guest cycles when handling MSR_IA32_TSC_ADJUST KVM: x86: zero IDT limit on entry to SMM
2 parents 8394a1b + d7add05 commit 45e38cf

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

arch/x86/kvm/x86.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2105,7 +2105,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
21052105
if (guest_cpuid_has_tsc_adjust(vcpu)) {
21062106
if (!msr_info->host_initiated) {
21072107
s64 adj = data - vcpu->arch.ia32_tsc_adjust_msr;
2108-
kvm_x86_ops->adjust_tsc_offset(vcpu, adj, true);
2108+
adjust_tsc_offset_guest(vcpu, adj);
21092109
}
21102110
vcpu->arch.ia32_tsc_adjust_msr = data;
21112111
}
@@ -6327,6 +6327,7 @@ static void process_smi_save_state_64(struct kvm_vcpu *vcpu, char *buf)
63276327
static void process_smi(struct kvm_vcpu *vcpu)
63286328
{
63296329
struct kvm_segment cs, ds;
6330+
struct desc_ptr dt;
63306331
char buf[512];
63316332
u32 cr0;
63326333

@@ -6359,6 +6360,10 @@ static void process_smi(struct kvm_vcpu *vcpu)
63596360

63606361
kvm_x86_ops->set_cr4(vcpu, 0);
63616362

6363+
/* Undocumented: IDT limit is set to zero on entry to SMM. */
6364+
dt.address = dt.size = 0;
6365+
kvm_x86_ops->set_idt(vcpu, &dt);
6366+
63626367
__kvm_set_dr(vcpu, 7, DR7_FIXED_1);
63636368

63646369
cs.selector = (vcpu->arch.smbase >> 4) & 0xffff;

0 commit comments

Comments
 (0)