[igt-dev] [PATCH i-g-t] i915/gem_ctx_sseu: Fix 32-bit build

Guillaume Tucker guillaume.tucker at collabora.com
Wed Feb 13 09:31:37 UTC 2019


This fixes a compiler warning treated as an error when building for
32-bit architectures since their pointer size does not match the size
of drm_i915_gem_context_param.value which is 64 bits:

  CC       i915/gem_ctx_sseu.o
  i915/gem_ctx_sseu.c: In function ‘test_ggtt_args’:
  i915/gem_ctx_sseu.c:384:9: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
    munmap((void *)arg.value, 4096);

It was found while building for arm with gcc 6.3.0 and I suspect the
same problem would arise for i386 or other 32-bit architectures.  The
uintptr_t type is by definition an unsigned integer of the same length
as a pointer on a given architecture, so this should fix the problem
for all architectures up to 64 bits.

Signed-off-by: Guillaume Tucker <guillaume.tucker at collabora.com>
---
 tests/i915/gem_ctx_sseu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/i915/gem_ctx_sseu.c b/tests/i915/gem_ctx_sseu.c
index 16609bee61c8..3afa5c152939 100644
--- a/tests/i915/gem_ctx_sseu.c
+++ b/tests/i915/gem_ctx_sseu.c
@@ -381,7 +381,7 @@ test_ggtt_args(int fd)
 	igt_assert_eq(__gem_context_get_param(fd, &arg), 0);
 	igt_assert_eq(__gem_context_set_param(fd, &arg), 0);
 
-	munmap((void *)arg.value, 4096);
+	munmap((void *)(uintptr_t)arg.value, 4096);
 	gem_close(fd, bo);
 	gem_context_destroy(fd, arg.ctx_id);
 }
-- 
2.11.0



More information about the igt-dev mailing list