Messages in this thread | | | Date | Tue, 1 Aug 2023 14:25:49 +0300 | Subject | Re: [PATCH v4 05/29] drm/i915/gvt: Put the page reference obtained by KVM's gfn_to_pfn() | From | "Wang, Zhi A" <> |
| |
On 7/29/2023 4:35 AM, Sean Christopherson wrote: > Put the struct page reference acquired by gfn_to_pfn(), KVM's API is that > the caller is ultimately responsible for dropping any reference. > > Note, kvm_release_pfn_clean() ensures the pfn is actually a refcounted > struct page before trying to put any references. > > Fixes: b901b252b6cf ("drm/i915/gvt: Add 2M huge gtt support") > Reviewed-by: Yan Zhao <yan.y.zhao@intel.com> > Tested-by: Yongwei Ma <yongwei.ma@intel.com> > Signed-off-by: Sean Christopherson <seanjc@google.com> > --- > drivers/gpu/drm/i915/gvt/gtt.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c > index f30922c55a0c..5426a27c1b71 100644 > --- a/drivers/gpu/drm/i915/gvt/gtt.c > +++ b/drivers/gpu/drm/i915/gvt/gtt.c > @@ -1158,6 +1158,7 @@ static int is_2MB_gtt_possible(struct intel_vgpu *vgpu, > { > const struct intel_gvt_gtt_pte_ops *ops = vgpu->gvt->gtt.pte_ops; > kvm_pfn_t pfn; > + int ret; > > if (!HAS_PAGE_SIZES(vgpu->gvt->gt->i915, I915_GTT_PAGE_SIZE_2M)) > return 0; > @@ -1171,7 +1172,9 @@ static int is_2MB_gtt_possible(struct intel_vgpu *vgpu, > if (!pfn_valid(pfn)) > return -EINVAL; > > - return PageTransHuge(pfn_to_page(pfn)); > + ret = PageTransHuge(pfn_to_page(pfn)); > + kvm_release_pfn_clean(pfn); > + return ret; > } > > static int split_2MB_gtt_entry(struct intel_vgpu *vgpu,
Reviewed-by: Zhi Wang <zhi.a.wang@intel.com>
| |