Re: [PATCH 04/10] KVM: Avoid pfn_to_page() and vice versa when releasing pages

From: Paolo Bonzini
Date: Thu Jun 16 2022 - 11:00:35 EST


On 4/29/22 03:04, Sean Christopherson wrote:
-
+/*
+ * Note, checking for an error/noslot pfn is the caller's responsibility when
+ * directly marking a page dirty/accessed. Unlike the "release" helpers, the
+ * "set" helpers are not to be unused when the pfn might point at garbage.
+ */

s/unused/unused/

But while at it, I'd rather add a WARN_ON(is_error_noslot_pfn(pfn)).

Paolo

void kvm_set_pfn_dirty(kvm_pfn_t pfn)
{
- if (kvm_is_ad_tracked_pfn(pfn))
- SetPageDirty(pfn_to_page(pfn));
+ if (pfn_valid(pfn))
+ kvm_set_page_dirty(pfn_to_page(pfn));
}
EXPORT_SYMBOL_GPL(kvm_set_pfn_dirty);
void kvm_set_pfn_accessed(kvm_pfn_t pfn)
{
- if (kvm_is_ad_tracked_pfn(pfn))
- mark_page_accessed(pfn_to_page(pfn));
+ if (pfn_valid(pfn))
+ kvm_set_page_accessed(pfn_to_page(pfn));
}
EXPORT_SYMBOL_GPL(kvm_set_pfn_accessed);