spi: bcm2835: fix reference leak to master in bcm2835_spi_remove()
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Fri, 15 Nov 2013 07:43:27 +0000 (15:43 +0800)
committerMark Brown <broonie@linaro.org>
Fri, 15 Nov 2013 10:22:53 +0000 (10:22 +0000)
Once a spi_master_get() call succeeds, we need an additional
spi_master_put() call to free the memory, otherwise we will
leak a reference to master. Fix by removing the unnecessary
spi_master_get() call.

Fixes: 247263dba208 ('spi: bcm2835: use devm_spi_register_master()')
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/spi/spi-bcm2835.c

index 4c332143a3100c52d916fc9887ffd11d96356892..3c5aca8d677a7cee2ac96211549c7352a068b956 100644 (file)
@@ -377,7 +377,7 @@ out_master_put:
 
 static int bcm2835_spi_remove(struct platform_device *pdev)
 {
-       struct spi_master *master = spi_master_get(platform_get_drvdata(pdev));
+       struct spi_master *master = platform_get_drvdata(pdev);
        struct bcm2835_spi *bs = spi_master_get_devdata(master);
 
        free_irq(bs->irq, master);