Commit 866c0f25 authored by Guenter Roeck's avatar Guenter Roeck Committed by Mark Brown

spi/mpc52xx: Fix error handling in probe function

The call to spi_master_put() is needed to free device memory. It must be called
after spi_alloc_master, and must only be called after the device memory is no
longer used.
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 495e3ff3
...@@ -454,7 +454,7 @@ static int __devinit mpc52xx_spi_probe(struct platform_device *op) ...@@ -454,7 +454,7 @@ static int __devinit mpc52xx_spi_probe(struct platform_device *op)
GFP_KERNEL); GFP_KERNEL);
if (!ms->gpio_cs) { if (!ms->gpio_cs) {
rc = -ENOMEM; rc = -ENOMEM;
goto err_alloc; goto err_alloc_gpio;
} }
for (i = 0; i < ms->gpio_cs_count; i++) { for (i = 0; i < ms->gpio_cs_count; i++) {
...@@ -514,12 +514,13 @@ static int __devinit mpc52xx_spi_probe(struct platform_device *op) ...@@ -514,12 +514,13 @@ static int __devinit mpc52xx_spi_probe(struct platform_device *op)
err_register: err_register:
dev_err(&ms->master->dev, "initialization failed\n"); dev_err(&ms->master->dev, "initialization failed\n");
spi_master_put(master);
err_gpio: err_gpio:
while (i-- > 0) while (i-- > 0)
gpio_free(ms->gpio_cs[i]); gpio_free(ms->gpio_cs[i]);
kfree(ms->gpio_cs); kfree(ms->gpio_cs);
err_alloc_gpio:
spi_master_put(master);
err_alloc: err_alloc:
err_init: err_init:
iounmap(regs); iounmap(regs);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment