On 08/14/2012 10:32 PM, Jonathan Cameron wrote: > Lars-Peter, > > Are you happy with this updated version? Can't immediately find any response > from you to it. > I think it is ok, you can add my Reviewed-by: Lars-Peter Clausen <lars@xxxxxxxxxx>. One minor nitpick though. > Jonathan >> From: Julia Lawall <Julia.Lawall@xxxxxxx> >> >> The various devm_ functions allocate memory that is released when a driver >> detaches. This patch uses these functions for data that is allocated in >> the probe function of a platform device and is only freed in the remove >> function. >> >> The call to platform_get_resource(pdev, IORESOURCE_MEM, 0) is moved coser >> to the call to devm_request_and_ioremap, which is th first use of the >> result of platform_get_resource. >> >> This does not use devm_request_irq to ensure that free_irq is executed >> before its idev argument is freed. >> >> Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx> >> >> --- >> drivers/iio/adc/at91_adc.c | 41 ++++++++--------------------------------- >> 1 file changed, 8 insertions(+), 33 deletions(-) >> >> diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c >> index f61780a..3506e3d 100644 >> --- a/drivers/iio/adc/at91_adc.c >> +++ b/drivers/iio/adc/at91_adc.c >> @@ -545,13 +545,6 @@ static int __devinit at91_adc_probe(struct platform_device *pdev) >> goto error_free_device; >> } >> >> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >> - if (!res) { >> - dev_err(&pdev->dev, "No resource defined\n"); >> - ret = -ENXIO; >> - goto error_ret; >> - } >> - >> platform_set_drvdata(pdev, idev); >> >> idev->dev.parent = &pdev->dev; >> @@ -566,18 +559,13 @@ static int __devinit at91_adc_probe(struct platform_device *pdev) >> goto error_free_device; >> } >> >> - if (!request_mem_region(res->start, resource_size(res), >> - "AT91 adc registers")) { >> - dev_err(&pdev->dev, "Resources are unavailable.\n"); >> - ret = -EBUSY; >> - goto error_free_device; >> - } >> + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >> >> - st->reg_base = ioremap(res->start, resource_size(res)); >> + st->reg_base = devm_request_and_ioremap(&pdev->dev, res); >> if (!st->reg_base) { >> dev_err(&pdev->dev, "Failed to map registers.\n"); devm_request_and_ioremap will already print a error messages on it's own if something goes wrong. So strictly speaking this one is redundant, but I don't think it is necessary to do a resend just for this, maybe you can remove the extra dev_err when you apply the patch. -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html