devm free functions should not have to be explicitly used.
A semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
@@
(
* devm_kfree(...);
|
* devm_free_irq(...);
|
* devm_iounmap(...);
|
* devm_release_region(...);
|
* devm_release_mem_region(...);
)
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
        ret = spi_register_master(master);
        if (ret < 0) {
                dev_err(&pdev->dev, "spi_register_master error.\n");
-               goto error2;
+               goto error1;
        }
 
        pm_runtime_enable(&pdev->dev);
 
        return 0;
 
- error2:
-       devm_iounmap(hspi->dev, hspi->addr);
  error1:
        clk_put(clk);
  error0:
 
        clk_put(hspi->clk);
        spi_unregister_master(hspi->master);
-       devm_iounmap(hspi->dev, hspi->addr);
 
        return 0;
 }