[Intel-gfx] [PATCH] drm/i915: Reject set-tiling-ioctl with stride==0 and a tiling mode
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Fri Feb 3 11:34:00 UTC 2017
On 03/02/2017 10:56, Chris Wilson wrote:
> In commit 957870f93412 ("drm/i915: Split out i915_gem_object_set_tiling()"),
> I swapped an alignment check for IS_ALIGNED and in the process removed
> the less-than check. That check turns out to be important as it was the
> only rejection for stride == 0. Tvrtko did spot it, but I was
> overconfident in the IS_ALIGNED() conversion.
>
> Fixes: 957870f93412 ("drm/i915: Split out i915_gem_object_set_tiling()")
> Testcase: igt/gem_tiling_max_stride
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem_tiling.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
> index c96140cf47e7..a80f362d2ac1 100644
> --- a/drivers/gpu/drm/i915/i915_gem_tiling.c
> +++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
> @@ -173,7 +173,7 @@ i915_tiling_ok(struct drm_i915_gem_object *obj,
> else
> tile_width = 512;
>
> - if (!IS_ALIGNED(stride, tile_width))
> + if (!stride || !IS_ALIGNED(stride, tile_width))
> return false;
>
> /* 965+ just needs multiples of tile width */
>
Not sure that I spotted this in the original review, maybe. I got thrown
off just now by the strange ending of this function in thinking
is_power_of_2(stride) is last. Perhaps the special case of gen < 4
should be an exception and return true the last statement.
if (INTEL_GEN(i915) < 4)
return is_power_of_2(stride);
return true;
Anyway,
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list