[PATCH] staging: ced1401: fix sparse warning for ced1401

Greg KH gregkh at linuxfoundation.org
Sat Jun 14 14:35:29 UTC 2014


On Sat, Jun 14, 2014 at 02:04:38PM +0900, Seunghun Lee wrote:
> This patch fixes below warning.
> 
> drivers/staging/ced1401/ced_ioc.c:703:30: warning: incorrect type in assignment (different address spaces)
> 	drivers/staging/ced1401/ced_ioc.c:703:30:    expected void *[usertype] lpvBuff
> 	drivers/staging/ced1401/ced_ioc.c:703:30:    got char [noderef] <asn:1>*puBuf
> 
> Signed-off-by: Seunghun Lee <waydi1 at gmail.com>
> ---
>  drivers/staging/ced1401/ced_ioc.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/ced1401/ced_ioc.c b/drivers/staging/ced1401/ced_ioc.c
> index ebbc509..963b941 100644
> --- a/drivers/staging/ced1401/ced_ioc.c
> +++ b/drivers/staging/ced1401/ced_ioc.c
> @@ -700,7 +700,7 @@ static int SetArea(DEVICE_EXTENSION *pdx, int nArea, char __user *puBuf,
>  		/*  kmap() or kmap_atomic() to get a virtual address. page_address will give you */
>  		/*  (null) or at least it does in this context with an x86 machine. */
>  		spin_lock_irq(&pdx->stagedLock);
> -		pTA->lpvBuff = puBuf;	/*  keep start of region (user address) */
> +		pTA->lpvBuff = (__force void *)puBuf;	/*  keep start of region (user address) */

It's usually not good to use __force unless you have to.  Can't you fix
the type of the variable instead?

thanks,

greg k-h


More information about the devel mailing list