All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t] tests/gem_softpin: Fix compiler warning on 32bit systems
@ 2015-12-10 14:58 Mika Kuoppala
  2015-12-10 16:43 ` Tvrtko Ursulin
  0 siblings, 1 reply; 4+ messages in thread
From: Mika Kuoppala @ 2015-12-10 14:58 UTC (permalink / raw)
  To: intel-gfx; +Cc: Vinay Belgaumkar

We get build error as we try to cast from ptr to integer
of different size on 32 bit platforms. Use unsigned long
as the cast, it will work with both 32 and 64 bit
systems.

Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
---
 tests/gem_softpin.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/gem_softpin.c b/tests/gem_softpin.c
index 7bee16b..0919716 100644
--- a/tests/gem_softpin.c
+++ b/tests/gem_softpin.c
@@ -155,7 +155,7 @@ static uint32_t init_userptr(int fd, i915_gem_userptr *userptr, void *ptr,
 
 	memset((void*)userptr, 0, sizeof(i915_gem_userptr));
 
-	userptr->user_ptr = (uint64_t)ptr; /* Need the cast to overcome compiler warning */
+	userptr->user_ptr = (unsigned long)ptr; /* Need the cast to overcome compiler warning */
 	userptr->user_size = size;
 	userptr->flags = 0; /* use synchronized operation */
 
@@ -270,7 +270,7 @@ static void setup_execbuffer(struct drm_i915_gem_execbuffer2 *execbuf,
 			     struct drm_i915_gem_exec_object2 *exec_object,
 			     int ring, int buffer_count, int batch_length)
 {
-	execbuf->buffers_ptr = (uint64_t)exec_object;
+	execbuf->buffers_ptr = (unsigned long)exec_object;
 	execbuf->buffer_count = buffer_count;
 	execbuf->batch_start_offset = 0;
 	execbuf->batch_len = batch_length;
@@ -417,7 +417,7 @@ static void gem_pin_bo_test(void)
 		       EXEC_OBJECT_PINNED, pinning_offset);
 	setup_exec_obj(&exec_object2[1], batch_buf_handle, 0, 0);
 	exec_object2[1].relocation_count = 1;
-	exec_object2[1].relocs_ptr = (uint64_t)reloc;
+	exec_object2[1].relocs_ptr = (unsigned long)reloc;
 
 	ring = I915_EXEC_RENDER;
 
-- 
2.5.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH i-g-t] tests/gem_softpin: Fix compiler warning on 32bit systems
  2015-12-10 14:58 [PATCH i-g-t] tests/gem_softpin: Fix compiler warning on 32bit systems Mika Kuoppala
@ 2015-12-10 16:43 ` Tvrtko Ursulin
  2015-12-10 17:45   ` Dave Gordon
  2015-12-11 23:53   ` Belgaumkar, Vinay
  0 siblings, 2 replies; 4+ messages in thread
From: Tvrtko Ursulin @ 2015-12-10 16:43 UTC (permalink / raw)
  To: Mika Kuoppala, intel-gfx; +Cc: Vinay Belgaumkar


Hi,

On 10/12/15 14:58, Mika Kuoppala wrote:
> We get build error as we try to cast from ptr to integer
> of different size on 32 bit platforms. Use unsigned long
> as the cast, it will work with both 32 and 64 bit
> systems.
>
> Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>   tests/gem_softpin.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/tests/gem_softpin.c b/tests/gem_softpin.c
> index 7bee16b..0919716 100644
> --- a/tests/gem_softpin.c
> +++ b/tests/gem_softpin.c
> @@ -155,7 +155,7 @@ static uint32_t init_userptr(int fd, i915_gem_userptr *userptr, void *ptr,
>
>   	memset((void*)userptr, 0, sizeof(i915_gem_userptr));
>
> -	userptr->user_ptr = (uint64_t)ptr; /* Need the cast to overcome compiler warning */
> +	userptr->user_ptr = (unsigned long)ptr; /* Need the cast to overcome compiler warning */
>   	userptr->user_size = size;
>   	userptr->flags = 0; /* use synchronized operation */
>
> @@ -270,7 +270,7 @@ static void setup_execbuffer(struct drm_i915_gem_execbuffer2 *execbuf,
>   			     struct drm_i915_gem_exec_object2 *exec_object,
>   			     int ring, int buffer_count, int batch_length)
>   {
> -	execbuf->buffers_ptr = (uint64_t)exec_object;
> +	execbuf->buffers_ptr = (unsigned long)exec_object;
>   	execbuf->buffer_count = buffer_count;
>   	execbuf->batch_start_offset = 0;
>   	execbuf->batch_len = batch_length;
> @@ -417,7 +417,7 @@ static void gem_pin_bo_test(void)
>   		       EXEC_OBJECT_PINNED, pinning_offset);
>   	setup_exec_obj(&exec_object2[1], batch_buf_handle, 0, 0);
>   	exec_object2[1].relocation_count = 1;
> -	exec_object2[1].relocs_ptr = (uint64_t)reloc;
> +	exec_object2[1].relocs_ptr = (unsigned long)reloc;
>
>   	ring = I915_EXEC_RENDER;
>
>

I had to try it to believe it and indeed gcc complains with "warning: 
cast from pointer to integer of different size [-Wpointer-to-int-cast]", 
which I don't really understand since cast is to a wider or equally wide 
data type.

Vinay had uintptr_t there originally which does not suffer from this 
warning so this one is my fault. I don't get the gcc logic but whatever.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH i-g-t] tests/gem_softpin: Fix compiler warning on 32bit systems
  2015-12-10 16:43 ` Tvrtko Ursulin
@ 2015-12-10 17:45   ` Dave Gordon
  2015-12-11 23:53   ` Belgaumkar, Vinay
  1 sibling, 0 replies; 4+ messages in thread
From: Dave Gordon @ 2015-12-10 17:45 UTC (permalink / raw)
  To: Tvrtko Ursulin, Mika Kuoppala, intel-gfx; +Cc: Vinay Belgaumkar

On 10/12/15 16:43, Tvrtko Ursulin wrote:
>
> Hi,
>
> On 10/12/15 14:58, Mika Kuoppala wrote:
>> We get build error as we try to cast from ptr to integer
>> of different size on 32 bit platforms. Use unsigned long
>> as the cast, it will work with both 32 and 64 bit
>> systems.
>>
>> Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
>> ---
>>   tests/gem_softpin.c | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/tests/gem_softpin.c b/tests/gem_softpin.c
>> index 7bee16b..0919716 100644
>> --- a/tests/gem_softpin.c
>> +++ b/tests/gem_softpin.c
>> @@ -155,7 +155,7 @@ static uint32_t init_userptr(int fd,
>> i915_gem_userptr *userptr, void *ptr,
>>
>>       memset((void*)userptr, 0, sizeof(i915_gem_userptr));
>>
>> -    userptr->user_ptr = (uint64_t)ptr; /* Need the cast to overcome
>> compiler warning */
>> +    userptr->user_ptr = (unsigned long)ptr; /* Need the cast to
>> overcome compiler warning */
>>       userptr->user_size = size;
>>       userptr->flags = 0; /* use synchronized operation */
>>
>> @@ -270,7 +270,7 @@ static void setup_execbuffer(struct
>> drm_i915_gem_execbuffer2 *execbuf,
>>                    struct drm_i915_gem_exec_object2 *exec_object,
>>                    int ring, int buffer_count, int batch_length)
>>   {
>> -    execbuf->buffers_ptr = (uint64_t)exec_object;
>> +    execbuf->buffers_ptr = (unsigned long)exec_object;
>>       execbuf->buffer_count = buffer_count;
>>       execbuf->batch_start_offset = 0;
>>       execbuf->batch_len = batch_length;
>> @@ -417,7 +417,7 @@ static void gem_pin_bo_test(void)
>>                  EXEC_OBJECT_PINNED, pinning_offset);
>>       setup_exec_obj(&exec_object2[1], batch_buf_handle, 0, 0);
>>       exec_object2[1].relocation_count = 1;
>> -    exec_object2[1].relocs_ptr = (uint64_t)reloc;
>> +    exec_object2[1].relocs_ptr = (unsigned long)reloc;
>>
>>       ring = I915_EXEC_RENDER;
>
> I had to try it to believe it and indeed gcc complains with "warning:
> cast from pointer to integer of different size [-Wpointer-to-int-cast]",
> which I don't really understand since cast is to a wider or equally wide
> data type.

I think the warning is really there for the pointer-to-signed-int 
conversion, in case that does an unexpected sign extension -- yes, I 
have seen machines where pointers were considered signed :( I suppose 
the result of converting a signed-pointer to unsigned-long-long might be 
"surprising" ...

Or maybe the gcc writers just thought it was more general to check for 
dest_size != source_size rather than < :-?

> Vinay had uintptr_t there originally which does not suffer from this
> warning so this one is my fault. I don't get the gcc logic but whatever.

'uintptr_t' should be the right type for the cast; and you should then 
be able assign that to any larger unsigned type without getting compiler 
warnings!

[Aside: I've also seen at one machine where there simply wasn't any type 
that could be used for uintptr_t; it had 4-byte 'long's and no 'long 
long', but pointers were 6 bytes!]

.Dave.

> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> Regards,
>
> Tvrtko
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH i-g-t] tests/gem_softpin: Fix compiler warning on 32bit systems
  2015-12-10 16:43 ` Tvrtko Ursulin
  2015-12-10 17:45   ` Dave Gordon
@ 2015-12-11 23:53   ` Belgaumkar, Vinay
  1 sibling, 0 replies; 4+ messages in thread
From: Belgaumkar, Vinay @ 2015-12-11 23:53 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-gfx

On Thu, Dec 10, 2015 at 04:43:29PM +0000, Tvrtko Ursulin wrote:
> 
> Hi,
> 
> On 10/12/15 14:58, Mika Kuoppala wrote:
> >We get build error as we try to cast from ptr to integer
> >of different size on 32 bit platforms. Use unsigned long
> >as the cast, it will work with both 32 and 64 bit
> >systems.
> >
> >Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
> >Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> >---
> >  tests/gem_softpin.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> >diff --git a/tests/gem_softpin.c b/tests/gem_softpin.c
> >index 7bee16b..0919716 100644
> >--- a/tests/gem_softpin.c
> >+++ b/tests/gem_softpin.c
> >@@ -155,7 +155,7 @@ static uint32_t init_userptr(int fd, i915_gem_userptr *userptr, void *ptr,
> >
> >  	memset((void*)userptr, 0, sizeof(i915_gem_userptr));
> >
> >-	userptr->user_ptr = (uint64_t)ptr; /* Need the cast to overcome compiler warning */
> >+	userptr->user_ptr = (unsigned long)ptr; /* Need the cast to overcome compiler warning */
> >  	userptr->user_size = size;
> >  	userptr->flags = 0; /* use synchronized operation */
> >
> >@@ -270,7 +270,7 @@ static void setup_execbuffer(struct drm_i915_gem_execbuffer2 *execbuf,
> >  			     struct drm_i915_gem_exec_object2 *exec_object,
> >  			     int ring, int buffer_count, int batch_length)
> >  {
> >-	execbuf->buffers_ptr = (uint64_t)exec_object;
> >+	execbuf->buffers_ptr = (unsigned long)exec_object;
> >  	execbuf->buffer_count = buffer_count;
> >  	execbuf->batch_start_offset = 0;
> >  	execbuf->batch_len = batch_length;
> >@@ -417,7 +417,7 @@ static void gem_pin_bo_test(void)
> >  		       EXEC_OBJECT_PINNED, pinning_offset);
> >  	setup_exec_obj(&exec_object2[1], batch_buf_handle, 0, 0);
> >  	exec_object2[1].relocation_count = 1;
> >-	exec_object2[1].relocs_ptr = (uint64_t)reloc;
> >+	exec_object2[1].relocs_ptr = (unsigned long)reloc;
> >
> >  	ring = I915_EXEC_RENDER;
> >
> >
> 
> I had to try it to believe it and indeed gcc complains with
> "warning: cast from pointer to integer of different size
> [-Wpointer-to-int-cast]", which I don't really understand since cast
> is to a wider or equally wide data type.
> 
> Vinay had uintptr_t there originally which does not suffer from this
> warning so this one is my fault. I don't get the gcc logic but
> whatever.
> 
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> Regards,
> 
> Tvrtko
>
> Should have tested the build on 32-bit system as well. Thanks for the
> fix. 
> Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-12-11 23:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-10 14:58 [PATCH i-g-t] tests/gem_softpin: Fix compiler warning on 32bit systems Mika Kuoppala
2015-12-10 16:43 ` Tvrtko Ursulin
2015-12-10 17:45   ` Dave Gordon
2015-12-11 23:53   ` Belgaumkar, Vinay

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.