diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-12-12 13:56:09 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-12-12 14:33:59 +0000 |
commit | b1ee03c540af86708a8dd1674032712cba7aa1f1 (patch) | |
tree | 87d042e6d769cabc83adfb189f9ca0b9d208cc4f | |
parent | 4cd21795d2ba882a4197769e516b021a5a4c806d (diff) |
tests/gem_tiled_swapping: Don't needless crash on 32-bit systems
Only 32-bit of mmap address space, but with PAE we may be trying to
allocate more than 4 GiB of memory.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | tests/gem_tiled_swapping.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/tests/gem_tiled_swapping.c b/tests/gem_tiled_swapping.c index c04a3bc..14f5f40 100644 --- a/tests/gem_tiled_swapping.c +++ b/tests/gem_tiled_swapping.c @@ -79,6 +79,9 @@ create_bo_and_fill(int fd) /* Fill the BO with dwords starting at start_val */ data = gem_mmap(fd, handle, LINEAR_DWORDS, PROT_READ | PROT_WRITE); + if (data == NULL && errno == ENOSPC) + return 0; + for (i = 0; i < WIDTH*HEIGHT; i++) data[i] = i; munmap(data, LINEAR_DWORDS); @@ -117,8 +120,13 @@ main(int argc, char **argv) return 77; } - for (i = 0; i < count; i++) + for (i = 0; i < count; i++) { bo_handles[i] = create_bo_and_fill(fd); + if (bo_handles[i] == 0) { + printf("insufficient address space\n"); + return 77; + } + } for (i = 0; i < count; i++) idx_arr[i] = i; |