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

From: Sachin Kamat
Date: Thu Jun 13 2013 - 01:41:17 EST


On 13 June 2013 11:00, Tushar Behera <tushar.behera@xxxxxxxxxx> wrote:
> 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 <tushar.behera@xxxxxxxxxx>
>> CC: netdev@xxxxxxxxxxxxxxx
>> CC: linux-can@xxxxxxxxxxxxxxx
>> CC: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
>> CC: Wolfgang Grandegger <wg@xxxxxxxxxxxxxx>
>> ---
>> 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
>

This is a known issue since the time devm_ioremap_resource was
introduced. Thierry had already submitted some fixes for this.
I am not sure if they have been applied yet.
More details here:
https://patchwork.kernel.org/patch/2071361/

--
With warm regards,
Sachin
--
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/