Quoting Matthew Auld (2020-01-16 19:28:09) > If we create a rather large userptr object(e.g 1ULL << 32) we might > shift past the type-width of num_pages: (int)num_pages << PAGE_SHIFT, > resulting in a totally bogus sg_table, which fortunately will eventually > manifest as: > > gen8_ppgtt_insert_huge:463 GEM_BUG_ON(iter->sg->length < page_size) > kernel BUG at drivers/gpu/drm/i915/gt/gen8_ppgtt.c:463! > > Fixes: 5cc9ed4b9a7a ("drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl") > Signed-off-by: Matthew Auld <matthew.auld@xxxxxxxxx> > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 3 ++- > drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 1 + > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c > index fef96a303d9d..81fa53495c9d 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c > @@ -405,6 +405,7 @@ static struct sg_table * > __i915_gem_userptr_alloc_pages(struct drm_i915_gem_object *obj, > struct page **pvec, int num_pages) Well that answers that question. Why not use unsigned long? That's what the comment is all about, fixing the code! Not continuing to bodge it. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx