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

From: Greg KH
Date: Sat Jun 14 2014 - 10:35:40 EST


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@xxxxxxxxx>
> ---
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/