diff mbox

amdgpu 32-bit arm warnings

Message ID CADnq5_NBZANV4+Oj+yxs6rAs5VggVui6uzt=3xYo_3m7-xpSCQ@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Alex Deucher Aug. 20, 2015, 8:49 p.m. UTC
On Wed, Aug 19, 2015 at 11:38 PM, Michel Dänzer <michel@daenzer.net> wrote:
> On 20.08.2015 08:50, Dave Airlie wrote:
>>   CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.o
>> /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c:
>> In function ‘amdgpu_cs_parser_init’:
>> /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c:211:21:
>> warning: cast to pointer from integer of different size
>> [-Wint-to-pointer-cast]
>>   chunk_array_user = (uint64_t __user *)(cs->in.chunks);
>>                      ^
>> /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c:231:15:
>> warning: cast to pointer from integer of different size
>> [-Wint-to-pointer-cast]
>>    chunk_ptr = (void __user *)chunk_array[i];
>>                ^
>> /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c:241:11:
>> warning: cast to pointer from integer of different size
>> [-Wint-to-pointer-cast]
>>    cdata = (void __user *)user_chunk.chunk_data;
>>            ^
>
> Looks like the (unsigned long) casts removed by commit e60b344f
> ("drm/amdgpu: optimize amdgpu_parser_init") need to stay.
>

Attached patch should fix it.

Alex
diff mbox

Patch

From 29fdbf46aa6ac708260566b01bfa2baa0183b49c Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexander.deucher@amd.com>
Date: Thu, 20 Aug 2015 16:47:07 -0400
Subject: [PATCH] drm/amdgpu: fix warnings on 32bit ARM

Restore missing cast.

Reported-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index e4424b4..3232c16 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -208,7 +208,7 @@  int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data)
 		goto out;
 	}
 
-	chunk_array_user = (uint64_t __user *)(cs->in.chunks);
+	chunk_array_user = (uint64_t __user *)(unsigned long)(cs->in.chunks);
 	if (copy_from_user(chunk_array, chunk_array_user,
 			   sizeof(uint64_t)*cs->in.num_chunks)) {
 		r = -EFAULT;
@@ -228,7 +228,7 @@  int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data)
 		struct drm_amdgpu_cs_chunk user_chunk;
 		uint32_t __user *cdata;
 
-		chunk_ptr = (void __user *)chunk_array[i];
+		chunk_ptr = (void __user *)(unsigned long)chunk_array[i];
 		if (copy_from_user(&user_chunk, chunk_ptr,
 				       sizeof(struct drm_amdgpu_cs_chunk))) {
 			r = -EFAULT;
@@ -238,7 +238,7 @@  int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data)
 		p->chunks[i].length_dw = user_chunk.length_dw;
 
 		size = p->chunks[i].length_dw;
-		cdata = (void __user *)user_chunk.chunk_data;
+		cdata = (void __user *)(unsigned long)user_chunk.chunk_data;
 		p->chunks[i].user_ptr = cdata;
 
 		p->chunks[i].kdata = drm_malloc_ab(size, sizeof(uint32_t));
-- 
1.8.3.1