lkml.org 
[lkml]   [2023]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [Intel-gfx] [PATCH v2 01/27] drm/i915/gvt: Verify pfn is "valid" before dereferencing "struct page"
    From
    On Wed, Mar 15, 2023, Andrzej Hajda wrote:
    > On 13.03.2023 16:37, Wang, Wei W wrote:
    > > On Saturday, March 11, 2023 8:23 AM, Sean Christopherson wrote:
    > > > diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
    > > > index 4ec85308379a..58b9b316ae46 100644
    > > > --- a/drivers/gpu/drm/i915/gvt/gtt.c
    > > > +++ b/drivers/gpu/drm/i915/gvt/gtt.c
    > > > @@ -1183,6 +1183,10 @@ static int is_2MB_gtt_possible(struct intel_vgpu
    > > > *vgpu,
    > > > pfn = gfn_to_pfn(vgpu->vfio_device.kvm, ops->get_pfn(entry));
    > > > if (is_error_noslot_pfn(pfn))
    > > > return -EINVAL;
    > > > +
    > > > + if (!pfn_valid(pfn))
    > > > + return -EINVAL;
    > > > +
    > >
    > > Merge the two errors in one "if" to have less LOC?
    > > i.e.
    > > if (is_error_noslot_pfn(pfn) || !pfn_valid(pfn))
    > > return -EINVAL;
    >
    > you can just replace "if (is_error_noslot_pfn(pfn))" with "if
    > (!pfn_valid(pfn))", it covers both cases.

    Technically, yes, but the two checks are for very different things. Practically
    speaking, there can never be false negatives without KVM breaking horribly as
    overlap between struct page pfns and KVM's error/noslot would prevent mapping
    legal memory into a KVM guest. But I'd rather not hide the "did KVM find a valid
    mapping" in the "is this pfn backed by struct page" check, especially since this
    code goes away entirely by the end of the series.

    \
     
     \ /
      Last update: 2023-03-27 01:01    [W:4.148 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site