From: Michel Thierry Date: Thu, 30 Apr 2015 15:06:51 +0000 (+0100) Subject: drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories X-Git-Tag: v4.2-rc1~13^2~54^2~79 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=4dd738e9cd791ebac2a009f09f1761e85e7f0805;p=karo-tx-linux.git drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8: page directories rework allocation" added an overflow warning, but the mask had an extra 0. Use less typo-prone option suggested by Dave instead, to check for (start + length) >= 0x100000000ULL. This check will be unnecessary after gen8_alloc_va_range handles more than 4 PDPs (48b addressing). v2: Really check for 32b overflow (Ville) Reported-by: Dan Carpenter Cc: Dave Gordon Cc: Ville Syrjälä Signed-off-by: Michel Thierry Signed-off-by: Daniel Vetter --- diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index ce91314f2c0c..8fee6789fae2 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -756,8 +756,8 @@ static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt, WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES)); - /* FIXME: PPGTT container_of won't work for 64b */ - WARN_ON((start + length) > 0x800000000ULL); + /* FIXME: upper bound must not overflow 32 bits */ + WARN_ON((start + length) >= (1ULL << 32)); gen8_for_each_pdpe(pd, pdp, start, length, temp, pdpe) { if (pd)