drm/i915/query: nospec expects no more than an unsigned long
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 22 May 2018 12:10:18 +0000 (13:10 +0100)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Tue, 29 May 2018 10:53:07 +0000 (13:53 +0300)
commit65b3bdc807ac7bd83f5b27bc2c29a3c631eed7dd
tree1c73cb1af6895ba299214d473c972057445776dd
parent540ead8c5a0e2910fc7bf0839982921c8f11b31c
drm/i915/query: nospec expects no more than an unsigned long

nospec quite reasonably asserts that it will never be used with an index
larger than unsigned long (that being the largest possibly index into an
C array). However, our ubi uses the convention of u64 for any large
integer, running afoul of the assertion on 32b. Reduce our index to an
unsigned long, checking for type overflow first.

  drivers/gpu/drm/i915/i915_query.c: In function 'i915_query_ioctl':
  include/linux/compiler.h:339:38: error: call to '__compiletime_assert_119' declared with attribute error: BUILD_BUG_ON failed: sizeof(_s) > sizeof(long)

Reported-by: kbuild-all@01.org
Fixes: 84b510e22da7 ("drm/i915/query: Protect tainted function pointer lookup")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180522121018.15199-1-chris@chris-wilson.co.uk
(cherry picked from commit a33b1dc8a732144e11cb4bf067d24ba51e6b8ab0)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/i915_query.c