OSDN Git Service

drm/i915/selftests: Avoid choosing zero for phys_sz
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 12 Feb 2020 08:54:32 +0000 (08:54 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 12 Feb 2020 10:14:06 +0000 (10:14 +0000)
Make sure we avoid ending up with a phys_sz of 0, or for phys_sz to be
larger than the actual size.

Closes: https://patchwork.freedesktop.org/series/73320/
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200212085432.1250807-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/selftests/i915_gem_object_blt.c

index f29da45..31549ad 100644 (file)
@@ -247,10 +247,11 @@ static int igt_fill_blt_thread(void *arg)
 
                total = min(total, max);
                sz = i915_prandom_u32_max_state(total, prng) + 1;
-               phys_sz = sz % max_phys_size;
+               phys_sz = sz % max_phys_size + 1;
 
                sz = round_up(sz, PAGE_SIZE);
                phys_sz = round_up(phys_sz, PAGE_SIZE);
+               phys_sz = min(phys_sz, sz);
 
                pr_debug("%s with phys_sz= %x, sz=%x, val=%x\n", __func__,
                         phys_sz, sz, val);
@@ -364,10 +365,11 @@ static int igt_copy_blt_thread(void *arg)
 
                total = min(total, max);
                sz = i915_prandom_u32_max_state(total, prng) + 1;
-               phys_sz = sz % max_phys_size;
+               phys_sz = sz % max_phys_size + 1;
 
                sz = round_up(sz, PAGE_SIZE);
                phys_sz = round_up(phys_sz, PAGE_SIZE);
+               phys_sz = min(phys_sz, sz);
 
                pr_debug("%s with phys_sz= %x, sz=%x, val=%x\n", __func__,
                         phys_sz, sz, val);