public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: christian.koenig@amd•com (Christian König)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH] drm/amdgpu: fix 32-bit compiler warning
Date: Wed, 7 Oct 2015 10:57:11 +0200	[thread overview]
Message-ID: <5614DE67.2070507@amd.com> (raw)
In-Reply-To: <14056299.vVOiOhUXfA@wuerfel>

On 07.10.2015 09:41, Arnd Bergmann wrote:
> 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 <arnd@arndb•de>

Well if I'm not completely mistaken this is the second time we need to 
fix this because somebody thought the cast was unnecessary.

Anyway the patch is Reviewed-by: Christian K?nig 
<christian.koenig@amd•com> and I'm going to keep an eye open for the 
next time somebody tries to remove this.

Regards,
Christian.

>
> 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));
>

  reply	other threads:[~2015-10-07  8:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-07  7:41 [PATCH] drm/amdgpu: fix 32-bit compiler warning Arnd Bergmann
2015-10-07  8:57 ` Christian König [this message]
2015-10-07  9:18   ` Arnd Bergmann
2015-10-07 14:00     ` Alex Deucher
2015-10-07  9:21   ` Chris Wilson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5614DE67.2070507@amd.com \
    --to=christian.koenig@amd$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox