diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2009-12-14 21:01:17 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-15 11:53:34 -0500 |
commit | c0521baf0d369074daf3623b5a112a0212012846 (patch) | |
tree | 7a9f3202288fcebdd50379db750f03dc44a327cb /drivers/mmc/host | |
parent | 9b6e3e42a48ea535c0ed79df32d1353d5e547bed (diff) |
mxcmmc: fix error path in mxcmci_probe
After a failing allocation of mmc or a failed ioremap in mxcmci_probe host was
used uninitialized.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pierre Ossman <pierre@ossman.eu>
Cc: Martin Fuzzey <mfuzzey@gmail.com>
Cc: Pierre Ossman <drzeus@drzeus.cx>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/mmc/host')
-rw-r--r-- | drivers/mmc/host/mxcmmc.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/mmc/host/mxcmmc.c b/drivers/mmc/host/mxcmmc.c index 88671529c45d..60a2b69e54f5 100644 --- a/drivers/mmc/host/mxcmmc.c +++ b/drivers/mmc/host/mxcmmc.c | |||
@@ -679,17 +679,17 @@ static int mxcmci_probe(struct platform_device *pdev) | |||
679 | { | 679 | { |
680 | struct mmc_host *mmc; | 680 | struct mmc_host *mmc; |
681 | struct mxcmci_host *host = NULL; | 681 | struct mxcmci_host *host = NULL; |
682 | struct resource *r; | 682 | struct resource *iores, *r; |
683 | int ret = 0, irq; | 683 | int ret = 0, irq; |
684 | 684 | ||
685 | printk(KERN_INFO "i.MX SDHC driver\n"); | 685 | printk(KERN_INFO "i.MX SDHC driver\n"); |
686 | 686 | ||
687 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 687 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
688 | irq = platform_get_irq(pdev, 0); | 688 | irq = platform_get_irq(pdev, 0); |
689 | if (!r || irq < 0) | 689 | if (!iores || irq < 0) |
690 | return -EINVAL; | 690 | return -EINVAL; |
691 | 691 | ||
692 | r = request_mem_region(r->start, resource_size(r), pdev->name); | 692 | r = request_mem_region(iores->start, resource_size(iores), pdev->name); |
693 | if (!r) | 693 | if (!r) |
694 | return -EBUSY; | 694 | return -EBUSY; |
695 | 695 | ||
@@ -809,7 +809,7 @@ out_iounmap: | |||
809 | out_free: | 809 | out_free: |
810 | mmc_free_host(mmc); | 810 | mmc_free_host(mmc); |
811 | out_release_mem: | 811 | out_release_mem: |
812 | release_mem_region(host->res->start, resource_size(host->res)); | 812 | release_mem_region(iores->start, resource_size(iores)); |
813 | return ret; | 813 | return ret; |
814 | } | 814 | } |
815 | 815 | ||