vmm(4): fix flawed physical cpu tracking logic in svm_run_vcpu
authordv <dv@openbsd.org>
Tue, 11 May 2021 22:04:10 +0000 (22:04 +0000)
committerdv <dv@openbsd.org>
Tue, 11 May 2021 22:04:10 +0000 (22:04 +0000)
commit97ad4f7f93830151ea04ac20ee6bfaaea2593cb4
tree5664deeec31f1c5c594ffb15f165171a9e926890
parent2766a6ff14eac6b03215e9c614be0b800e429ac7
vmm(4): fix flawed physical cpu tracking logic in svm_run_vcpu

Replace the overly complicated logic used to track which CPU we are on
in svm_run_vcpu. This fixes an issue where ltr causes a #GP on exit in
certain conditions due to referencing the wrong GDT.

This was primarily witnessed with NixOS guests that performed a heavy
amount of disk io.

Reported by Josh Rickmar. Tested by Josh & abieber@. OK mlarkin@.
sys/arch/amd64/amd64/vmm.c