From ec4e5ccd4b8be576f9cd8bfc3cb8651565ed87ef Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 9 Sep 2010 11:48:20 +0900 Subject: [PATCH] fbdev: sh_mobile_hdmi: add new label for sound error path This patch solve below report from Guennadi > /* External video parameter settings */ > static void hdmi_external_video_param(struct sh_hdmi *hdmi) > { > @@ -804,6 +862,11 @@ static int __init sh_hdmi_probe(struct platform_device *pdev) > return -ENOMEM; > } > > + ret = snd_soc_register_codec(&pdev->dev, > + &soc_codec_dev_sh_hdmi, &sh_hdmi_dai, 1); > + if (ret < 0) > + goto egetclk; > + > hdmi->dev = &pdev->dev; > > hdmi->hdmi_clk = clk_get(&pdev->dev, "ick"); NAK. This breaks the error path and has to be fixed. Firstly, please, use a new label like "esndreg," secondly, you have to add clk_disable(hdmi->hdmi_clk); erate: clk_put(hdmi->hdmi_clk); egetclk: + snd_soc_unregister_codec(&pdev->dev); +esndreg: mutex_destroy(&hdmi->mutex); kfree(hdmi); Reported-by: Guennadi Liakhovetski Signed-off-by: Kuninori Morimoto Reviewed-by: Guennadi Liakhovetski Acked-by: Liam Girdwood Signed-off-by: Mark Brown --- drivers/video/sh_mobile_hdmi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/video/sh_mobile_hdmi.c b/drivers/video/sh_mobile_hdmi.c index a2cb4925..ef989d9 100644 --- a/drivers/video/sh_mobile_hdmi.c +++ b/drivers/video/sh_mobile_hdmi.c @@ -967,7 +967,7 @@ static int __init sh_hdmi_probe(struct platform_device *pdev) ret = snd_soc_register_codec(&pdev->dev, &soc_codec_dev_sh_hdmi, &sh_hdmi_dai, 1); if (ret < 0) - goto egetclk; + goto esndreg; hdmi->dev = &pdev->dev; @@ -1054,6 +1054,8 @@ eclkenable: erate: clk_put(hdmi->hdmi_clk); egetclk: + snd_soc_unregister_codec(&pdev->dev); +esndreg: kfree(hdmi); return ret; -- 2.7.4