From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751424AbbJGHmB (ORCPT ); Wed, 7 Oct 2015 03:42:01 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:49221 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750951AbbJGHmA (ORCPT ); Wed, 7 Oct 2015 03:42:00 -0400 From: Arnd Bergmann To: David Airlie Cc: Christian =?ISO-8859-1?Q?K=F6nig?= , Chunming Zhou , Alex Deucher , Jammy Zhou , "monk.liu" , marek.olsak@amd.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH] drm/amdgpu: fix 32-bit compiler warning Date: Wed, 07 Oct 2015 09:41:27 +0200 Message-ID: <14056299.vVOiOhUXfA@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:ZKSeu7/sf8pwlN3lN0oG2wDzds+ogVSSLe4R16QHFpSLYamFLO4 RjUSx3mPzIS1nMtNib3GBqAhzmjvisCX/wbXlZVMWpVpAe0/Bwr4VpvkkQpbWM9JLzpj7dh dhho80TcCbbQEHO0HmsWimyOgqd8hp/yAyMCklMu402O98Lt2wd2ICDItJ3qDERp+W6fwmW 3bTLfaMLenN/hjbJl0cnw== X-UI-Out-Filterresults: notjunk:1;V01:K0:4lh2b+7OtpE=:NhtwCHv98GNJCRHQbBQdol ibi/Jk0T1EQqHMmn38bcNdwwV+lCQpvdyEb21D7gmCs88zqj8b7jT7B8TH+2pGmKFN+tygX9U P2AaxVV9ET/OGOqee01OI/IVt7DD8Jt89oaQkaAwyfjbdisRvcYN9FwQEVx8IxjLpYL7Hr2LG EYrrSjboIqxU9AutYC428vQt1iHwTWlaRfVZgsm7GK/pRtnP0qpXb5Z/pCGWKT0Xkk71w5752 CR0t0G2gDlpTmebc2YzQEEQq52Lwsi5B2u2AcWN4GiXeRLCKmsKkPcw1yWsx3aPG/KEQDDgzM 1I72oIJzJpWjNTH0L6c2ks8t0TJIvkD7sEpgDaMkpVofZwxiomiCkE2tQ3cqD8QlIDG2chjcH JN4RNg8RdByV06FtgSiwY2AXPa00cd+to9jDCwX7Pl+YefZDdzV4bpVYFiAgMUziptiT9k7oa ePlTLXjEtVEZPjoN/miFde5nMHOMA+xRKzJ3NSRH5qHw9tjCtER7jTUC6vnbvg4MuNbIgid+m iHV0/IpvMuH12nI8mg2Vdl9HMzj9A5Bg2n1sQectcBsBQKoGTw6RfRlMIzat+THINEQ+LYkky zseBgEuXObmITtSxVA07qEbRXqyN9TbrVWr0iFKTua/YoZFwjHJdTVrziq7k3bAFWYzV8V1Bi 1xOgF2tSXJOzzqmGCPEPmupd4kdWDiNxPK2nfbZzOC2lSI0Bw7GLhmXdNoSPJgbL5uXRVf1/c D6peSQkaJSmHg4Gh Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The new amdgpu driver passes a user space pointer in a 64-bit structure member, which is the correct way to do it, but it attempts to directly cast it to a __user pointer in the kernel, which causes a warning in three places: drm/amd/amdgpu/amdgpu_cs.c: In function 'amdgpu_cs_parser_init': drm/amd/amdgpu/amdgpu_cs.c:180:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] chunk_array_user = (uint64_t __user *)(cs->in.chunks); This changes all three to add an intermediate cast to 'unsigned long' as other drivers do. This avoids the warning and works correctly on both 32-bit and 64-bit architectures. Signed-off-by: Arnd Bergmann diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index cb3c274edb0a..fd16652aa277 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c @@ -177,7 +177,7 @@ int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data) /* get chunks */ INIT_LIST_HEAD(&p->validated); - 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)) { ret = -EFAULT; @@ -197,7 +197,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))) { ret = -EFAULT; @@ -208,7 +208,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));