Message ID | 20220705122455.3866745-8-gwan-gyeong.mun@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fixes integer overflow or integer truncation issues in page lookups, ttm place configuration and scatterlist creation | expand |
On Tue, 5 Jul 2022 15:24:55 +0300 Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> wrote: > From: Chris Wilson <chris@chris-wilson.co.uk> > > Having addressed the issues surrounding incorrect types for local > variables and potential integer truncation in using the scatterlist API, > we have closed all the loop holes we had previously identified with > dangerously large object creation. As such, we can eliminate the warning > put in place to remind us to complete the review. > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> > Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Cc: Brian Welty <brian.welty@intel.com> > Cc: Matthew Auld <matthew.auld@intel.com> > Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> > Testcase: igt@gem_create@create-massive > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4991 > Reviewed-by: Nirmoy Das <nirmoy.das@intel.com> Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > drivers/gpu/drm/i915/gem/i915_gem_object.h | 15 --------------- > 1 file changed, 15 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h > index 31bb09dccf2f..4d614e4c1c4e 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h > +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h > @@ -20,25 +20,10 @@ > > enum intel_region_id; > > -/* > - * XXX: There is a prevalence of the assumption that we fit the > - * object's page count inside a 32bit _signed_ variable. Let's document > - * this and catch if we ever need to fix it. In the meantime, if you do > - * spot such a local variable, please consider fixing! > - * > - * We can check for invalidly typed locals with typecheck(), see for example > - * i915_gem_object_get_sg(). > - */ > -#define GEM_CHECK_SIZE_OVERFLOW(sz) \ > - GEM_WARN_ON((sz) >> PAGE_SHIFT > INT_MAX) > - > static inline bool i915_gem_object_size_2big(u64 size) > { > struct drm_i915_gem_object *obj; > > - if (GEM_CHECK_SIZE_OVERFLOW(size)) > - return true; > - > if (overflows_type(size, obj->base.size)) > return true; >
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h index 31bb09dccf2f..4d614e4c1c4e 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h @@ -20,25 +20,10 @@ enum intel_region_id; -/* - * XXX: There is a prevalence of the assumption that we fit the - * object's page count inside a 32bit _signed_ variable. Let's document - * this and catch if we ever need to fix it. In the meantime, if you do - * spot such a local variable, please consider fixing! - * - * We can check for invalidly typed locals with typecheck(), see for example - * i915_gem_object_get_sg(). - */ -#define GEM_CHECK_SIZE_OVERFLOW(sz) \ - GEM_WARN_ON((sz) >> PAGE_SHIFT > INT_MAX) - static inline bool i915_gem_object_size_2big(u64 size) { struct drm_i915_gem_object *obj; - if (GEM_CHECK_SIZE_OVERFLOW(size)) - return true; - if (overflows_type(size, obj->base.size)) return true;