Subject: Re: [PATCH 09/15] net: can: Convert to use devm_ioremap_resource

From: Tushar Behera <[email-masked]>
Date: Thu, 13 Jun 2013 11:00:00 +0530

On 06/10/2013 05:05 PM, Tushar Behera wrote:
> Commit 75096579c3ac ("lib: devres: Introduce devm_ioremap_resource()")
> introduced devm_ioremap_resource() and deprecated the use of
> devm_request_and_ioremap().
> 
> Signed-off-by: Tushar Behera <[email-masked]>
> CC: [email-masked]
> CC: [email-masked]
> CC: Marc Kleine-Budde <[email-masked]>
> CC: Wolfgang Grandegger <[email-masked]>
> ---
>  drivers/net/can/c_can/c_can_platform.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/can/c_can/c_can_platform.c b/drivers/net/can/c_can/c_can_platform.c
> index 6b6130b..b918c73 100644
> --- a/drivers/net/can/c_can/c_can_platform.c
> +++ b/drivers/net/can/c_can/c_can_platform.c
> @@ -201,8 +201,8 @@ static int c_can_plat_probe(struct platform_device *pdev)
>  			priv->instance = pdev->id;
>  
>  		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> -		priv->raminit_ctrlreg =	devm_request_and_ioremap(&pdev->dev, res);
> -		if (!priv->raminit_ctrlreg || priv->instance < 0)
> +		priv->raminit_ctrlreg = devm_ioremap_resource(&pdev->dev, res);
> +		if (IS_ERR(priv->raminit_ctrlreg) || priv->instance < 0)
>  			dev_info(&pdev->dev, "control memory is not used for raminit\n");
>  		else
>  			priv->raminit = c_can_hw_raminit;
> 

IS_ERR() check on the return value of devm_ioremap_resource produces
following sparse warning. This is because of the __iomem address space
attribute. How should we fix this?

drivers/net/can/c_can/c_can_platform.c:205:32: warning: incorrect type
in argument 1 (different address spaces)
drivers/net/can/c_can/c_can_platform.c:205:32:    expected void const *ptr
drivers/net/can/c_can/c_can_platform.c:205:32:    got unsigned int
[noderef] [usertype] <asn:2>*raminit_ctrlreg

-- 
Tushar Behera