]> git.ipfire.org Git - thirdparty/linux.git/commit
KVM: x86/mmu: Return RET_PF* instead of 1 in kvm_mmu_page_fault()
authorYan Zhao <yan.y.zhao@intel.com>
Mon, 13 Jan 2025 02:11:38 +0000 (10:11 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 15 Jan 2025 16:45:26 +0000 (11:45 -0500)
commit7c54803863002989ac979adc14847fea5c80bf4b
tree460f34d6ce4368c85856eac1b22af58ae5317105
parent2c3412e999738bfd60859c493ff47f5c268814a3
KVM: x86/mmu: Return RET_PF* instead of 1 in kvm_mmu_page_fault()

Return RET_PF* (excluding RET_PF_EMULATE/RET_PF_CONTINUE/RET_PF_INVALID)
instead of 1 in kvm_mmu_page_fault().

The callers of kvm_mmu_page_fault() are KVM page fault handlers (i.e.,
npf_interception(), handle_ept_misconfig(), __vmx_handle_ept_violation(),
kvm_handle_page_fault()). They either check if the return value is > 0 (as
in npf_interception()) or pass it further to vcpu_run() to decide whether
to break out of the kernel loop and return to the user when r <= 0.
Therefore, returning any positive value is equivalent to returning 1.

Warn if r == RET_PF_CONTINUE (which should not be a valid value) to ensure
a positive return value.

This is a preparation to allow TDX's EPT violation handler to check the
RET_PF* value and retry internally for RET_PF_RETRY.

No functional changes are intended.

Signed-off-by: Yan Zhao <yan.y.zhao@intel.com>
Message-ID: <20250113021138.18875-1-yan.y.zhao@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/mmu.c
arch/x86/kvm/mmu/mmu_internal.h