On Wed, Dec 28, 2022, Yan Zhao wrote: > On Fri, Dec 23, 2022 at 12:57:31AM +0000, Sean Christopherson wrote: > > diff --git a/arch/x86/kvm/mmu/page_track.c b/arch/x86/kvm/mmu/page_track.c > > index 2b302fd2c5dd..f932909aa9b5 100644 > > --- a/arch/x86/kvm/mmu/page_track.c > > +++ b/arch/x86/kvm/mmu/page_track.c > > @@ -193,6 +193,7 @@ bool kvm_slot_page_track_is_active(struct kvm *kvm, > > return !!READ_ONCE(slot->arch.gfn_track[mode][index]); > > } > > > > +#ifdef CONFIG_KVM_EXTERNAL_WRITE_TRACKING > > void kvm_page_track_cleanup(struct kvm *kvm) > > { > > struct kvm_page_track_notifier_head *head; > > @@ -208,6 +209,7 @@ int kvm_page_track_init(struct kvm *kvm) > > head = &kvm->arch.track_notifier_head; > > INIT_HLIST_HEAD(&head->track_notifier_list); > > return init_srcu_struct(&head->track_srcu); > > + return 0; > Double "return"s. Huh, I'm surprised this didn't throw a warning. I'm pretty sure I screwed up a refactoring, I originally had the "return 0" in an #else branch. > > +#endif /* CONFIG_KVM_EXTERNAL_WRITE_TRACKING */ > > + > > +static inline void kvm_page_track_write(struct kvm_vcpu *vcpu, gpa_t gpa, > > + const u8 *new, int bytes) > > +{ > > + __kvm_page_track_write(vcpu, gpa, new, bytes); > > + > Why not convert "vcpu" to "kvm" in __kvm_page_track_write() ? No reason, I just overlooked the opportunistic cleanup. I'll do this in the next version. Thanks much for the reviews!