kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [kvm-unit-tests PATCH] x86: Reset lapic after boot
@ 2019-06-25 12:10 Nadav Amit
  2019-06-27  0:26 ` Krish Sadhukhan
  0 siblings, 1 reply; 4+ messages in thread
From: Nadav Amit @ 2019-06-25 12:10 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: kvm, Nadav Amit

Do not assume that the local APIC is in a xAPIC mode after reset.
Instead reset it first, since it might be in x2APIC mode, from which a
transition in xAPIC is invalid.

Note that we do not use the existing disable_apic() for the matter,
since it also re-initializes apic_ops.

Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
---
 x86/cstart64.S | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/x86/cstart64.S b/x86/cstart64.S
index 9791282..03726a6 100644
--- a/x86/cstart64.S
+++ b/x86/cstart64.S
@@ -118,6 +118,15 @@ MSR_GS_BASE = 0xc0000101
 	wrmsr
 .endm
 
+lapic_reset:
+	mov $0x1b, %ecx
+	rdmsr
+	and $~(APIC_EN | APIC_EXTD), %eax
+	wrmsr
+	or $(APIC_EN), %eax
+	wrmsr
+	ret
+
 .macro setup_segments
 	mov $MSR_GS_BASE, %ecx
 	rdmsr
@@ -228,6 +237,7 @@ save_id:
 	retq
 
 ap_start64:
+	call lapic_reset
 	call load_tss
 	call enable_apic
 	call save_id
@@ -240,6 +250,7 @@ ap_start64:
 	jmp 1b
 
 start64:
+	call lapic_reset
 	call load_tss
 	call mask_pic_interrupts
 	call enable_apic
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-06-27 17:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-25 12:10 [kvm-unit-tests PATCH] x86: Reset lapic after boot Nadav Amit
2019-06-27  0:26 ` Krish Sadhukhan
2019-06-27 17:09   ` Nadav Amit
2019-06-27 17:47   ` Nadav Amit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).