@@ -245,6 +245,7 @@ static int igt_sg_alloc(void *ignored)
const unsigned long max_order = 20; /* approximating a 4GiB object */
struct rnd_state prng;
unsigned long prime;
+ int alloc_error = -ENOMEM;
for_each_prime_number(prime, max_order) {
unsigned long size = BIT(prime);
@@ -260,7 +261,7 @@ static int igt_sg_alloc(void *ignored)
prandom_seed_state(&prng,
i915_selftest.random_seed);
if (!alloc_table(&pt, sz, sz, *npages, &prng))
- return 0; /* out of memory, give up */
+ return alloc_error;
prandom_seed_state(&prng,
i915_selftest.random_seed);
@@ -270,6 +271,8 @@ static int igt_sg_alloc(void *ignored)
sg_free_table(&pt.st);
if (err)
return err;
+
+ alloc_error = 0;
}
}
}