Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp2727277ybk; Tue, 12 May 2020 06:45:57 -0700 (PDT) X-Google-Smtp-Source: APiQypK71N7tsnqJJO880Rer/oj1iyymy/8zdFtCBRYF5Xr1V+XUVr4KLGxMemY/APrEaQc3Ltst X-Received: by 2002:a50:8750:: with SMTP id 16mr12088107edv.309.1589291156880; Tue, 12 May 2020 06:45:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589291156; cv=none; d=google.com; s=arc-20160816; b=SNkn2/6YCtFcSn9PgK8ZFFNy8wa9DqHkxqDKjAWnx+EXkFtkhJN4zyQcf5bEBPMxM1 HXT/zyi+QMywi6B+g4EVkvT2g5mtOyNkzQqPzSLLiyjz30HGRx8R7YTVarEL80d4vgBh VN+LbQ3xV5qY0yoIxmam1L1+eXh4fSNmdpZtve5dl/mJJsFkLJ1vML9ylwUl2wVzid+Z nS1WzlpqRvUW9dnUL/4an/bv8ij4PDOmy4dZGypSQs5LIyuZ/MPPi7asqUNv4y4ep+bd JN8NUS2KB7Bnfp2tlpAfmYkaP0knivGmhMuA0FGazGJLCIH2Io7MhLrn8Ij8hwGK6Tm/ KuUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=erfea+VqorRaNKmwCbwU1NBz4o0BS4IZRwmeNDpI7N8=; b=YSkcULOviotCN4GD+QOpQipq56wr4mgzbxh+iQTO4OB0zfpfUzmX66ytsTbDecinQl HBeg6VpSkJ4vvqT4faQta8s1Y2jJkR+J106fHNcTIqBbjhHVlps+bk6HRv2+ipbIX/F5 jC7W/lH0OZy04Nd8c2wyrfPhbxDDVRhNgwPWKWvb3Tlg5IfTtiz9+1C+FyKj+fJreh6x rm9qinQ8ve0ykJmv1LNGHM37eGFsvLCyFVO1QKcf/5/RX9XrbVtIVH86Ez50oiBxh+wm cJjWRSaeslI4o6jEq29ht0FtULoJkI7jHaACP2RO2n6qU6SZbvmOrRAQlOdTXKa8F4aw l6sA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f24si8039097eja.417.2020.05.12.06.45.33; Tue, 12 May 2020 06:45:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729987AbgELNnd (ORCPT + 99 others); Tue, 12 May 2020 09:43:33 -0400 Received: from smtp08.smtpout.orange.fr ([80.12.242.130]:37241 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729519AbgELNnd (ORCPT ); Tue, 12 May 2020 09:43:33 -0400 Received: from localhost.localdomain ([93.22.148.175]) by mwinf5d15 with ME id dpjT2200B3nHaxZ03pjT5r; Tue, 12 May 2020 15:43:31 +0200 X-ME-Helo: localhost.localdomain X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Tue, 12 May 2020 15:43:31 +0200 X-ME-IP: 93.22.148.175 From: Christophe JAILLET To: peter.ujfalusi@ti.com, jarkko.nikula@bitmer.com, lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com, linux-omap@vger.kernel.org Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH] ASoC: ti: omap-mcbsp: Fix an error handling path in 'asoc_mcbsp_probe()' Date: Tue, 12 May 2020 15:43:25 +0200 Message-Id: <20200512134325.252073-1-christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If an error occurs after the call to 'omap_mcbsp_init()', the reference to 'mcbsp->fclk' must be decremented, as already done in the remove function. This can be achieved easily by using the devm_ variant of 'clk_get()' when the reference is taken in 'omap_mcbsp_init()' This fixes the leak in the probe and has the side effect to simplify both the error handling path of 'omap_mcbsp_init()' and the remove function. Signed-off-by: Christophe JAILLET --- I've not been able to identify the when the issue has been introduced, so no Fixes: tag. --- sound/soc/ti/omap-mcbsp.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sound/soc/ti/omap-mcbsp.c b/sound/soc/ti/omap-mcbsp.c index 0348963f4df7..6c83b9888467 100644 --- a/sound/soc/ti/omap-mcbsp.c +++ b/sound/soc/ti/omap-mcbsp.c @@ -686,7 +686,7 @@ static int omap_mcbsp_init(struct platform_device *pdev) mcbsp->dma_data[1].addr = omap_mcbsp_dma_reg_params(mcbsp, SNDRV_PCM_STREAM_CAPTURE); - mcbsp->fclk = clk_get(&pdev->dev, "fck"); + mcbsp->fclk = devm_clk_get(&pdev->dev, "fck"); if (IS_ERR(mcbsp->fclk)) { ret = PTR_ERR(mcbsp->fclk); dev_err(mcbsp->dev, "unable to get fck: %d\n", ret); @@ -711,7 +711,7 @@ static int omap_mcbsp_init(struct platform_device *pdev) if (ret) { dev_err(mcbsp->dev, "Unable to create additional controls\n"); - goto err_thres; + return ret; } } @@ -724,8 +724,6 @@ static int omap_mcbsp_init(struct platform_device *pdev) err_st: if (mcbsp->pdata->buffer_size) sysfs_remove_group(&mcbsp->dev->kobj, &additional_attr_group); -err_thres: - clk_put(mcbsp->fclk); return ret; } @@ -1442,8 +1440,6 @@ static int asoc_mcbsp_remove(struct platform_device *pdev) omap_mcbsp_st_cleanup(pdev); - clk_put(mcbsp->fclk); - return 0; } -- 2.25.1