On AMD vmm(4) set SVM_INTERCEPT_INVLPGA in intercept1.
authorbluhm <bluhm@openbsd.org>
Fri, 26 Jul 2024 15:59:04 +0000 (15:59 +0000)
committerbluhm <bluhm@openbsd.org>
Fri, 26 Jul 2024 15:59:04 +0000 (15:59 +0000)
commit35c0c3c8be824570446ab151ac94dddf975de69d
treea6a527dc694eec75f5eeb022877ffd9b3aa58658
parent8fd4ba52df7f1fd1439d8c6931d89892a69344ae
On AMD vmm(4) set SVM_INTERCEPT_INVLPGA in intercept1.

According to the AMD64 Architecture Programmer's Manual volume 2
the intercept SVM_INTERCEPT_INVLPGA needs to be set in vmcb.intercept1
(vector 3, offest 00Ch) instead of intercept2 (vector 4, offset
010h).  SVM_INTERCEPT_INVLPGA is bit 26, so before vcpu_reset_regs_svm()
was actually setting an intercept for CR10, which does not exist.

from hshoexer@; OK mlarkin@
sys/arch/amd64/amd64/vmm_machdep.c