diff options
author | Axel Lin <axel.lin@ingics.com> | 2014-03-24 11:46:55 +0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-03-24 14:57:02 +0400 |
commit | b86e81d9a7d28a658904d8b14da7b5cb0d8f8a21 (patch) | |
tree | 3248a8d2a95aad9d351400eea7011387ac664a0f /drivers/spi | |
parent | c1b20aa5d3b164a860e13b1bc5e85a24e45f0072 (diff) | |
download | linux-b86e81d9a7d28a658904d8b14da7b5cb0d8f8a21.tar.xz |
spi: topcliff-pch: Properly unregister platform devices on probe() error paths
Ensure all registered platform devices are unregistered on probe() error paths.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-topcliff-pch.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c index dc5d2d489953..372811aa5fb2 100644 --- a/drivers/spi/spi-topcliff-pch.c +++ b/drivers/spi/spi-topcliff-pch.c @@ -1568,8 +1568,7 @@ static struct platform_driver pch_spi_pd_driver = { .resume = pch_spi_pd_resume }; -static int pch_spi_probe(struct pci_dev *pdev, - const struct pci_device_id *id) +static int pch_spi_probe(struct pci_dev *pdev, const struct pci_device_id *id) { struct pch_spi_board_data *board_dat; struct platform_device *pd_dev = NULL; @@ -1639,6 +1638,8 @@ static int pch_spi_probe(struct pci_dev *pdev, return 0; err_platform_device: + while (--i >= 0) + platform_device_unregister(pd_dev_save->pd_save[i]); pci_disable_device(pdev); pci_enable_device: pci_release_regions(pdev); |