From 0053182d351d3a3fd6c094b223021eab6531f59c Mon Sep 17 00:00:00 2001 From: Andy Green Date: Sun, 10 Aug 2008 09:27:05 +0100 Subject: [PATCH] One of the error paths on s3cmci_probe() was doing the wrong thing, by jumping to the wrong label. The correct label was missing, together with the function call it should do in the sequence; I created it by copying the correct line from s3cmci_remove(). Also renamed some of the labels, which varied from not following the pattern to being somewhat misleading. Signed-off-by: Cesar Eduardo Barros --- drivers/mmc/host/s3cmci.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c index edba055..9ef4d5b 100644 --- a/drivers/mmc/host/s3cmci.c +++ b/drivers/mmc/host/s3cmci.c @@ -1252,13 +1252,13 @@ static int s3cmci_probe(struct platform_device *pdev, int is2440) dev_err(&pdev->dev, "failed to find clock source.\n"); ret = PTR_ERR(host->clk); host->clk = NULL; - goto probe_free_host; + goto probe_free_dma; } ret = clk_enable(host->clk); if (ret) { dev_err(&pdev->dev, "failed to enable clock source.\n"); - goto clk_free; + goto probe_free_clk; } host->clk_rate = clk_get_rate(host->clk); @@ -1284,7 +1284,7 @@ static int s3cmci_probe(struct platform_device *pdev, int is2440) ret = mmc_add_host(mmc); if (ret) { dev_err(&pdev->dev, "failed to add mmc host.\n"); - goto free_dmabuf; + goto probe_disable_clk; } platform_set_drvdata(pdev, mmc); @@ -1292,14 +1292,17 @@ static int s3cmci_probe(struct platform_device *pdev, int is2440) dev_info(&pdev->dev, "initialisation done.\n"); return 0; - free_dmabuf: + probe_disable_clk: clk_disable(host->clk); - clk_free: + probe_free_clk: clk_put(host->clk); probe_free_irq_cd: free_irq(host->irq_cd, host); + + probe_free_dma: + s3c2410_dma_free(host->dma, &s3cmci_dma_client); probe_free_irq: free_irq(host->irq, host); -- 1.5.6.3