From patchwork Fri Jul 7 07:50:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= X-Patchwork-Id: 13304521 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 50B21EB64D9 for ; Fri, 7 Jul 2023 07:52:18 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id B70BA7F1; Fri, 7 Jul 2023 09:51:25 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz B70BA7F1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1688716335; bh=3WtipWPEPFR3HskxETHMU7xVbu5+R8gJsyiHacVuBYs=; h=From:To:Cc:Subject:Date:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=V/17vs+g7wkL5RiBSFi0m1CpyOAH4qB7HvNksYfo3O3gfBQrPNt74NCdMxh/PZWVP 6JhmoYl7YYWanYL5I7w5dQb75gsLRpisrVTp0FaQpUjFKr+jZsyD3St4g2GB65kqhD TF2aBu7KKuENlFNjXMLYlWZ5bVXHhW/Z6sJgT66w= Received: by alsa1.perex.cz (Postfix, from userid 50401) id 7A789F80272; Fri, 7 Jul 2023 09:51:17 +0200 (CEST) Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id 9EA8FF80093; Fri, 7 Jul 2023 09:51:16 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id CDB1FF80125; Fri, 7 Jul 2023 09:51:11 +0200 (CEST) Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id D3DFDF80100 for ; Fri, 7 Jul 2023 09:51:07 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz D3DFDF80100 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qHgF7-0005T1-8f; Fri, 07 Jul 2023 09:51:05 +0200 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qHgF6-00CgJr-EF; Fri, 07 Jul 2023 09:51:04 +0200 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1qHgF5-002wtp-LH; Fri, 07 Jul 2023 09:51:03 +0200 From: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= To: Ivan Orlov , Jaroslav Kysela , Takashi Iwai Cc: alsa-devel@alsa-project.org, kernel@pengutronix.de Subject: [PATCH 1/2] ALSA: pcmtest: Convert to platform remove callback returning void Date: Fri, 7 Jul 2023 09:50:57 +0200 Message-Id: <20230707075058.3402832-1-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1617; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=3WtipWPEPFR3HskxETHMU7xVbu5+R8gJsyiHacVuBYs=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBkp8Pgk9jNOr9j82G2ygT8dYHnckt2Li5RlhGss dRLaH8bDHmJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCZKfD4AAKCRCPgPtYfRL+ Tn4qB/99gB6P9GzB4TFvvSeaU00RM5XZZTVVAc00qQjBS59TqUFoWULywbvVvP4161Nf0++HpTJ cCDg16Xqa35OzabvEeQ04xWjPYp+j21jmz8Gc8U58TOyCxzNDYqmSegGBdKTOgYTYAJ//NGkQy7 xOzsCNq/TzR/ii/rNTBhT4r0j6XUZ769JX1k/Y0tJSLbG+zz/E0j9ohJau30leSOOqi+PTi2/0z NiCeS+hsjvGc9tMTT2ELwG6ywm8jBmbooDwWPXCW8uFVaB9tt1h1MQvRyYS6AeG+DOkY5q5BZeH 6S23HNJIvCfL0uLI6ggIkkbkIYWo+lIq2qGA6ODKZ8r66606 X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: alsa-devel@alsa-project.org Message-ID-Hash: D4KPZRPRB3WVEI26AR4GQWHDQ3WGPT3R X-Message-ID-Hash: D4KPZRPRB3WVEI26AR4GQWHDQ3WGPT3R X-MailFrom: ukl@pengutronix.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is ignored (apart from emitting a warning) and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Eventually after all drivers are converted, .remove_new() is renamed to .remove(). Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-König Acked-by: Ivan Orlov --- sound/drivers/pcmtest.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) base-commit: 5133c9e51de41bfa902153888e11add3342ede18 diff --git a/sound/drivers/pcmtest.c b/sound/drivers/pcmtest.c index 2ae912a64d16..1fff85feaf82 100644 --- a/sound/drivers/pcmtest.c +++ b/sound/drivers/pcmtest.c @@ -576,10 +576,9 @@ static int pcmtst_probe(struct platform_device *pdev) return 0; } -static int pdev_remove(struct platform_device *dev) +static void pdev_remove(struct platform_device *dev) { snd_pcmtst_free(pcmtst); - return 0; } static struct platform_device pcmtst_pdev = { @@ -589,7 +588,7 @@ static struct platform_device pcmtst_pdev = { static struct platform_driver pcmtst_pdrv = { .probe = pcmtst_probe, - .remove = pdev_remove, + .remove_new = pdev_remove, .driver = { .name = "pcmtest", }, From patchwork Fri Jul 7 07:50:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= X-Patchwork-Id: 13304522 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5788DEB64D9 for ; Fri, 7 Jul 2023 07:53:00 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id BECE0203; Fri, 7 Jul 2023 09:52:07 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz BECE0203 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1688716377; bh=LnSXgPSeIkokryeKCpDdolw9EPlIWja2MRNzkzbjgT8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=BMSGq+nZSNAf0zN0+MQgI34h5V+A+JVkOEA2dHx5hKIJC48Lv9PfPwSl8w6Y+v6WT vkb7Gt97oLgxwheoWbd3sYizf5IFEw+51hotdnpSA1hJGON1YEAF8gI6ovVCsjghiq sBBsjPUMsHtAp5CnBfAlY3b1eEAYpUwBWyxvBoQQ= Received: by alsa1.perex.cz (Postfix, from userid 50401) id B5241F80557; Fri, 7 Jul 2023 09:51:20 +0200 (CEST) Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id 31828F80553; Fri, 7 Jul 2023 09:51:20 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 50D5DF80100; Fri, 7 Jul 2023 09:51:16 +0200 (CEST) Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 80E11F80100 for ; Fri, 7 Jul 2023 09:51:08 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 80E11F80100 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qHgF7-0005T3-8e; Fri, 07 Jul 2023 09:51:05 +0200 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qHgF6-00CgJu-J6; Fri, 07 Jul 2023 09:51:04 +0200 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1qHgF5-002wts-S4; Fri, 07 Jul 2023 09:51:03 +0200 From: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= To: Ivan Orlov , Jaroslav Kysela , Takashi Iwai Cc: alsa-devel@alsa-project.org, kernel@pengutronix.de Subject: [PATCH 2/2] ALSA: pcmtest: Don't use static storage to track per device data Date: Fri, 7 Jul 2023 09:50:58 +0200 Message-Id: <20230707075058.3402832-2-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707075058.3402832-1-u.kleine-koenig@pengutronix.de> References: <20230707075058.3402832-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1628; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=LnSXgPSeIkokryeKCpDdolw9EPlIWja2MRNzkzbjgT8=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBkp8PhCqFe63vXBh2Jh+TcxbUkJxpIMZ9RzI13P IDibDh0hcGJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCZKfD4QAKCRCPgPtYfRL+ Tn+JB/sHmuanN8IJF6ZoQ1GyFg1ahUtc32w03u211/rjGLHuKMD6+u1yP6MHamUdixmQ1nvNm62 ES8I+Y+NgBU85i8V6qiwaBVD9dCPe+GWWGXzxyn3D5Awn8WJNoOoeeacG51dgrwmA/AhLA0WHWy 5Z80dyT1tX5iUNBUbogWnFe/S00e0gLrfsdOfvxBl/Vzs1D/Z+0N34LxgaqaPrj6f6cOoF0ZX4N YSZf3FDPr7jktxMFyZum3Niw+awJFC2LZxxt5XGtETHIH67i6TvqbVQI5GBqGhQOA3j+S0knsjA sTKYXVAam10jV0Voed6+zDhBv3uTlEJuGxbG+Gumi1V6MPVh X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: alsa-devel@alsa-project.org Message-ID-Hash: EAIWCERMZEPYAVY34SNHAGXOGHWY7VIO X-Message-ID-Hash: EAIWCERMZEPYAVY34SNHAGXOGHWY7VIO X-MailFrom: ukl@pengutronix.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: While there is probably only ever a single instance of such a pcmtst device, it's still bad style to use a static variable to store per device data. Make use of platform_get_drvdata() and platform_set_drvdata() which fixes a data corruption if there should be two or more such devices (or this driver is used as a template for another driver). Signed-off-by: Uwe Kleine-König Acked-by: Ivan Orlov --- sound/drivers/pcmtest.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sound/drivers/pcmtest.c b/sound/drivers/pcmtest.c index 1fff85feaf82..291e7fe47893 100644 --- a/sound/drivers/pcmtest.c +++ b/sound/drivers/pcmtest.c @@ -110,8 +110,6 @@ struct pcmtst_buf_iter { struct timer_list timer_instance; }; -static struct pcmtst *pcmtst; - static struct snd_pcm_hardware snd_pcmtst_hw = { .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | @@ -552,6 +550,7 @@ static int snd_pcmtst_create(struct snd_card *card, struct platform_device *pdev static int pcmtst_probe(struct platform_device *pdev) { struct snd_card *card; + struct pcmtst *pcmtst; int err; err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); @@ -573,11 +572,15 @@ static int pcmtst_probe(struct platform_device *pdev) if (err < 0) return err; + platform_set_drvdata(pdev, pcmtst); + return 0; } -static void pdev_remove(struct platform_device *dev) +static void pdev_remove(struct platform_device *pdev) { + struct pcmtst *pcmtst = platform_get_drvdata(pdev); + snd_pcmtst_free(pcmtst); }