Messages in this thread | | | Date | Fri, 13 Jan 2023 15:34:36 +0100 | From | Borislav Petkov <> | Subject | Re: [PATCH RFC v7 04/64] KVM: x86: Add 'fault_is_private' x86 op |
| |
On Wed, Jan 04, 2023 at 08:42:56PM -0600, Michael Roth wrote: > Obviously I need to add some proper documentation for this, but a 1 > return basically means 'private_fault' pass-by-ref arg has been set > with the appropriate value, whereas 0 means "there's no platform-specific > handling for this, so if you have some generic way to determine this > then use that instead".
Still binary, tho, and can be bool, right?
I.e., you can just as well do:
if (static_call(kvm_x86_fault_is_private)(kvm, gpa, err, &private_fault)) goto out;
at the call site.
> This is mainly to handle CONFIG_HAVE_KVM_PRIVATE_MEM_TESTING, which > just parrots whatever kvm_mem_is_private() returns to support running > KVM selftests without needed hardware/platform support. If we don't > take care to skip this check where the above fault_is_private() hook > returns 1, then it ends up breaking SNP in cases where the kernel has > been compiled with CONFIG_HAVE_KVM_PRIVATE_MEM_TESTING, since SNP > relies on the page fault flags to make this determination, not > kvm_mem_is_private(), which normally only tracks the memory attributes > set by userspace via KVM_SET_MEMORY_ATTRIBUTES ioctl.
Some of that explanation belongs into the commit message, which is a bit lacking...
-- Regards/Gruss, Boris.
https://people.kernel.org/tglx/notes-about-netiquette
| |