[PATCH v3] staging: comedi: fix cast warning in comedi_compat32.c

Ian Abbott abbotti at mev.co.uk
Mon Jun 22 16:08:00 UTC 2015


On 22/06/15 16:33, Geliang Tang wrote:
> This patch fixes the following sparse warning:
>
> drivers/staging/comedi/comedi_compat32.c:205:16: warning: cast removes
> address space of expression
>
> Signed-off-by: Geliang Tang <geliangtang at 163.com>
> ---
> Changes in v3:
>    - fix the 80 character line limit.
>
> Changes in v2:
>    - compat_ptr() is substituted by 'unsigned long'.
> ---
>   drivers/staging/comedi/comedi_compat32.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/comedi/comedi_compat32.c b/drivers/staging/comedi/comedi_compat32.c
> index 2584824..f356386 100644
> --- a/drivers/staging/comedi/comedi_compat32.c
> +++ b/drivers/staging/comedi/comedi_compat32.c
> @@ -202,7 +202,8 @@ static int get_compat_cmd(struct comedi_cmd __user *cmd,
>   	err |= __get_user(temp.uint, &cmd32->stop_arg);
>   	err |= __put_user(temp.uint, &cmd->stop_arg);
>   	err |= __get_user(temp.uptr, &cmd32->chanlist);
> -	err |= __put_user(compat_ptr(temp.uptr), &cmd->chanlist);
> +	err |= __put_user((unsigned int __force *)compat_ptr(temp.uptr),
> +			&cmd->chanlist);
>   	err |= __get_user(temp.uint, &cmd32->chanlist_len);
>   	err |= __put_user(temp.uint, &cmd->chanlist_len);
>   	err |= __get_user(temp.uptr, &cmd32->data);
>

Looks okay now apart from it being ugly, but that can't be helped since 
comedi uses that chanlist member for both user and kernel addresses!

Reviewed-by: Ian Abbott <abbotti at mev.co.uk>

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk> )=-
-=(                          Web: http://www.mev.co.uk/  )=-


More information about the devel mailing list