On Thu, Aug 11, 2022, Peter Xu wrote: > On Thu, Aug 11, 2022 at 08:12:38PM +0000, Sean Christopherson wrote: > > > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c > > > index 17252f39bd7c..aeafe0e9cfbf 100644 > > > --- a/arch/x86/kvm/mmu/mmu.c > > > +++ b/arch/x86/kvm/mmu/mmu.c > > > @@ -3012,6 +3012,13 @@ static int kvm_handle_bad_page(struct kvm_vcpu *vcpu, gfn_t gfn, kvm_pfn_t pfn) > > > static int handle_abnormal_pfn(struct kvm_vcpu *vcpu, struct kvm_page_fault *fault, > > > unsigned int access) > > > { > > > + /* NOTE: not all error pfn is fatal; handle sigpending pfn first */ > > > + if (unlikely(is_sigpending_pfn(fault->pfn))) { > > > > Move this into kvm_handle_bad_page(), then there's no need for a comment to call > > out that this needs to come before the is_error_pfn() check. This _is_ a "bad" > > PFN, it just so happens that userspace might be able to resolve the "bad" PFN. > > It's a pity it needs to be in "bad pfn" category since that's the only > thing we can easily use, but true it is now. Would renaming that to kvm_handle_error_pfn() help? I agree that "bad" is poor terminology now that it handles a variety of errors, hence the quotes.