From nobody Thu Dec 18 18:47:13 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98301C77B61 for ; Thu, 13 Apr 2023 22:38:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229689AbjDMWim (ORCPT ); Thu, 13 Apr 2023 18:38:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229640AbjDMWij (ORCPT ); Thu, 13 Apr 2023 18:38:39 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 659064219 for ; Thu, 13 Apr 2023 15:38:37 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E94D4640D3 for ; Thu, 13 Apr 2023 22:38:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F1F8BC433D2; Thu, 13 Apr 2023 22:38:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1681425516; bh=TB9f6dRHMA0rIjXItrHT/Bu0YIp1W1oxyGnuQSn4ftY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZoJMnSoi1IRiWJ/EmUcgYHLLsrDtndDcwiSaZ7PqubVIqPYDJeBgak6Vr0p/vsX+a ugSBDf3/HaV4KDmICVLWiobs1YEjQIL/akKqBzp59GRZtEehxhlphZRBZTjTyjKiN/ Uj7nBcbd8hEtRRCLWw9tj1Xe+7i9M/N1YPtxR6JlcCPC/LxkEche+uc7DWjg+Kf16L 5G8quJDkxyB27nFycmk0SnIBrdfntZRndgvsCcduLtuDZW53M4OKqrrH/+nj13J0bP vAjcUApHsa/i9KWAs8Rc7bQtAEGMhwEA2CgUxky5eFmCaYFi4ObqWVB2l9bm2ZRME6 ilTilQmVmztzQ== From: Stephen Boyd To: Greg Kroah-Hartman Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , linux-kernel@vger.kernel.org, patches@lists.linux.dev Subject: [PATCH 1/6] spmi: hisi-spmi-controller: Convert to platform remove callback returning void Date: Thu, 13 Apr 2023 15:38:29 -0700 Message-ID: <20230413223834.4084793-2-sboyd@kernel.org> X-Mailer: git-send-email 2.40.0.634.g4ca3ef3211-goog In-Reply-To: <20230413223834.4084793-1-sboyd@kernel.org> References: <20230413223834.4084793-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Uwe Kleine-K=C3=B6nig 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 (mostly) ignored 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. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-K=C3=B6nig Link: https://lore.kernel.org/r/20230306073446.2194048-2-u.kleine-koenig@pe= ngutronix.de Signed-off-by: Stephen Boyd --- drivers/spmi/hisi-spmi-controller.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/spmi/hisi-spmi-controller.c b/drivers/spmi/hisi-spmi-c= ontroller.c index 5bd23262abd6..9cbd473487cb 100644 --- a/drivers/spmi/hisi-spmi-controller.c +++ b/drivers/spmi/hisi-spmi-controller.c @@ -324,13 +324,12 @@ static int spmi_controller_probe(struct platform_devi= ce *pdev) return ret; } =20 -static int spmi_del_controller(struct platform_device *pdev) +static void spmi_del_controller(struct platform_device *pdev) { struct spmi_controller *ctrl =3D platform_get_drvdata(pdev); =20 spmi_controller_remove(ctrl); spmi_controller_put(ctrl); - return 0; } =20 static const struct of_device_id spmi_controller_match_table[] =3D { @@ -343,7 +342,7 @@ MODULE_DEVICE_TABLE(of, spmi_controller_match_table); =20 static struct platform_driver spmi_controller_driver =3D { .probe =3D spmi_controller_probe, - .remove =3D spmi_del_controller, + .remove_new =3D spmi_del_controller, .driver =3D { .name =3D "hisi_spmi_controller", .of_match_table =3D spmi_controller_match_table, --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Thu Dec 18 18:47:13 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 144ADC77B61 for ; Thu, 13 Apr 2023 22:38:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230291AbjDMWir (ORCPT ); Thu, 13 Apr 2023 18:38:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54870 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229720AbjDMWij (ORCPT ); Thu, 13 Apr 2023 18:38:39 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 989AC4220 for ; Thu, 13 Apr 2023 15:38:37 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2F34764214 for ; Thu, 13 Apr 2023 22:38:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 404F8C4339C; Thu, 13 Apr 2023 22:38:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1681425516; bh=1ut5ph7e7MTXUwUNQA6pS+bDTFfCrhkn8nTjBsvJ2ls=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QuoWqeeI/4fHwhbcFRfE3XXX4wRw3ynb3QYEVORZyifc7y5EjVS7aGK0vth4n7Kbs jCRl3llEpbF56D80gAeaUKJqY8e8FtoU1zpK+ojPn7tqFkJuv0g0KRVCgy8bY8brqt IwJX6HeEBeW6D1nj55ybN+6Wvgl/e9WkkXilY4KDJIl51bsKNTeCPf7lkPibaGa6X6 C/gdjRENXOpQUtNOYQAIdqQxANYr3J6OvyhlDB7k79qbjO2qyizSMQuGKZyUn88dzj bGZJnH94/H/HPtpNd6+KHFgzohUlyNmnc3m/Em6nyf58Hk6itMM9eEVxr2aHm/+khj Mx0N/QM6Xj+CQ== From: Stephen Boyd To: Greg Kroah-Hartman Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , linux-kernel@vger.kernel.org, patches@lists.linux.dev, AngeloGioacchino Del Regno Subject: [PATCH 2/6] spmi: mtk-pmif: Convert to platform remove callback returning void Date: Thu, 13 Apr 2023 15:38:30 -0700 Message-ID: <20230413223834.4084793-3-sboyd@kernel.org> X-Mailer: git-send-email 2.40.0.634.g4ca3ef3211-goog In-Reply-To: <20230413223834.4084793-1-sboyd@kernel.org> References: <20230413223834.4084793-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Uwe Kleine-K=C3=B6nig 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 (mostly) ignored 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. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-K=C3=B6nig Link: https://lore.kernel.org/r/20230306073446.2194048-3-u.kleine-koenig@pe= ngutronix.de Reviewed-by: AngeloGioacchino Del Regno Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-mtk-pmif.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/spmi/spmi-mtk-pmif.c b/drivers/spmi/spmi-mtk-pmif.c index ad511f2c3324..fbcb3921e70c 100644 --- a/drivers/spmi/spmi-mtk-pmif.c +++ b/drivers/spmi/spmi-mtk-pmif.c @@ -503,7 +503,7 @@ static int mtk_spmi_probe(struct platform_device *pdev) return err; } =20 -static int mtk_spmi_remove(struct platform_device *pdev) +static void mtk_spmi_remove(struct platform_device *pdev) { struct spmi_controller *ctrl =3D platform_get_drvdata(pdev); struct pmif *arb =3D spmi_controller_get_drvdata(ctrl); @@ -511,7 +511,6 @@ static int mtk_spmi_remove(struct platform_device *pdev) clk_bulk_disable_unprepare(arb->nclks, arb->clks); spmi_controller_remove(ctrl); spmi_controller_put(ctrl); - return 0; } =20 static const struct of_device_id mtk_spmi_match_table[] =3D { @@ -533,7 +532,7 @@ static struct platform_driver mtk_spmi_driver =3D { .of_match_table =3D of_match_ptr(mtk_spmi_match_table), }, .probe =3D mtk_spmi_probe, - .remove =3D mtk_spmi_remove, + .remove_new =3D mtk_spmi_remove, }; module_platform_driver(mtk_spmi_driver); =20 --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Thu Dec 18 18:47:13 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02D22C77B61 for ; Thu, 13 Apr 2023 22:38:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230246AbjDMWiv (ORCPT ); Thu, 13 Apr 2023 18:38:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229910AbjDMWij (ORCPT ); Thu, 13 Apr 2023 18:38:39 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C15A0423A for ; Thu, 13 Apr 2023 15:38:37 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5B0956421A for ; Thu, 13 Apr 2023 22:38:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89D5AC4339E; Thu, 13 Apr 2023 22:38:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1681425516; bh=Riwglc43l4f0bQiMlyIBog53NVU6UB5IMNh6rCQlKeY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=prQzSi6ipArSlSdvcYVNPRKaicI220MjMHQx5fTrtv22/VLWFypqD52LU3ieWCddT X9aaRS3qeAXd7nuI97DL9Rp5kD+Y4fF7/BUhJw6hQLIpnIZdfY7GXDQ0yCDz4A9vFF nUvG9coNsPE6nYXydRBXy8H8IK8hiuXQga+fqQEqQHyLKw5djHl75wm7wK6Avv7E57 dwpDsJs09Lpr1nLW7BssgDITCmG2tbHE6HaiqN0aXzBw4i9wRW7G8CFD20kFnjYO4E GX6sZ7plP038awaeI4JY1QRtL/T9IOaP4ld2k3pDfM5sHQcDeGdkhNuHaHWZ3eM1So vHp/lwQHjXIZQ== From: Stephen Boyd To: Greg Kroah-Hartman Cc: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , linux-kernel@vger.kernel.org, patches@lists.linux.dev Subject: [PATCH 3/6] spmi: pmic-arb: Convert to platform remove callback returning void Date: Thu, 13 Apr 2023 15:38:31 -0700 Message-ID: <20230413223834.4084793-4-sboyd@kernel.org> X-Mailer: git-send-email 2.40.0.634.g4ca3ef3211-goog In-Reply-To: <20230413223834.4084793-1-sboyd@kernel.org> References: <20230413223834.4084793-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Uwe Kleine-K=C3=B6nig 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 (mostly) ignored 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. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-K=C3=B6nig Link: https://lore.kernel.org/r/20230306073446.2194048-4-u.kleine-koenig@pe= ngutronix.de Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-pmic-arb.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index 8b6a42ab816f..42a593418aad 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -1674,7 +1674,7 @@ static int spmi_pmic_arb_probe(struct platform_device= *pdev) return err; } =20 -static int spmi_pmic_arb_remove(struct platform_device *pdev) +static void spmi_pmic_arb_remove(struct platform_device *pdev) { struct spmi_controller *ctrl =3D platform_get_drvdata(pdev); struct spmi_pmic_arb *pmic_arb =3D spmi_controller_get_drvdata(ctrl); @@ -1682,7 +1682,6 @@ static int spmi_pmic_arb_remove(struct platform_devic= e *pdev) irq_set_chained_handler_and_data(pmic_arb->irq, NULL, NULL); irq_domain_remove(pmic_arb->domain); spmi_controller_put(ctrl); - return 0; } =20 static const struct of_device_id spmi_pmic_arb_match_table[] =3D { @@ -1693,7 +1692,7 @@ MODULE_DEVICE_TABLE(of, spmi_pmic_arb_match_table); =20 static struct platform_driver spmi_pmic_arb_driver =3D { .probe =3D spmi_pmic_arb_probe, - .remove =3D spmi_pmic_arb_remove, + .remove_new =3D spmi_pmic_arb_remove, .driver =3D { .name =3D "spmi_pmic_arb", .of_match_table =3D spmi_pmic_arb_match_table, --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Thu Dec 18 18:47:13 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 91CD9C77B6E for ; Thu, 13 Apr 2023 22:38:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230301AbjDMWi4 (ORCPT ); Thu, 13 Apr 2023 18:38:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229933AbjDMWij (ORCPT ); Thu, 13 Apr 2023 18:38:39 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B0027449C for ; Thu, 13 Apr 2023 15:38:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C983464221 for ; Thu, 13 Apr 2023 22:38:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD04DC4339B; Thu, 13 Apr 2023 22:38:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1681425517; bh=JSKw91yT9unPki7iqS8K+SpAIxQ92VW+9Ul5dHK7ee8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OZ5jLHqBDjtm0wkY5skzvSJ28sjOWrVstE0e65fCyeGeGxIkudiPptrbWYWiTSL+p OK/uUrmjEKoQ3w8JO9azM4rFoMfrDLbLhy1Xyg4P/cGC2gkz9CkSeY3LE3ayTGPm7z GMC65ZY6CN5OqWhsducDzm3PZF+AGFI4BVuEGayGKM4rnaz2GewNsxRxGq57Atq29I YDPS3IXV0uNL21SkMvLur2ba1uwBqraM1SrL5apeE6zHfgWxQhCN3HJ6JV5IwtebAD 8re6Eemv4QytQGTONgHK7+Hih5yQ26zHmjkUoyJ5I9WhvN9hzvOCLY/LpmBtkfxKOx sXkhpFGa/hiqA== From: Stephen Boyd To: Greg Kroah-Hartman Cc: Krzysztof Kozlowski , linux-kernel@vger.kernel.org, patches@lists.linux.dev, AngeloGioacchino Del Regno Subject: [PATCH 4/6] spmi: mtk-pmif: Drop of_match_ptr for ID table Date: Thu, 13 Apr 2023 15:38:32 -0700 Message-ID: <20230413223834.4084793-5-sboyd@kernel.org> X-Mailer: git-send-email 2.40.0.634.g4ca3ef3211-goog In-Reply-To: <20230413223834.4084793-1-sboyd@kernel.org> References: <20230413223834.4084793-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Krzysztof Kozlowski The driver can match only via the DT table so the table should be always used and the of_match_ptr does not have any sense (this also allows ACPI matching via PRP0001, even though it is not relevant here). drivers/spmi/spmi-mtk-pmif.c:517:34: error: =E2=80=98mtk_spmi_match_table= =E2=80=99 defined but not used [-Werror=3Dunused-const-variable=3D] Signed-off-by: Krzysztof Kozlowski Link: https://lore.kernel.org/r/20230310222857.315629-2-krzysztof.kozlowski= @linaro.org Reviewed-by: AngeloGioacchino Del Regno Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-mtk-pmif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/spmi/spmi-mtk-pmif.c b/drivers/spmi/spmi-mtk-pmif.c index fbcb3921e70c..b3c991e1ea40 100644 --- a/drivers/spmi/spmi-mtk-pmif.c +++ b/drivers/spmi/spmi-mtk-pmif.c @@ -529,7 +529,7 @@ MODULE_DEVICE_TABLE(of, mtk_spmi_match_table); static struct platform_driver mtk_spmi_driver =3D { .driver =3D { .name =3D "spmi-mtk", - .of_match_table =3D of_match_ptr(mtk_spmi_match_table), + .of_match_table =3D mtk_spmi_match_table, }, .probe =3D mtk_spmi_probe, .remove_new =3D mtk_spmi_remove, --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Thu Dec 18 18:47:13 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5DE85C77B61 for ; Thu, 13 Apr 2023 22:39:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230351AbjDMWi7 (ORCPT ); Thu, 13 Apr 2023 18:38:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54876 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229997AbjDMWij (ORCPT ); Thu, 13 Apr 2023 18:38:39 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC39F4493 for ; Thu, 13 Apr 2023 15:38:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 030286421D for ; Thu, 13 Apr 2023 22:38:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21C82C433A1; Thu, 13 Apr 2023 22:38:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1681425517; bh=cJugASXn8GtyYPZx6Snaqubv3f6wqo6+B4Dp/xetSzQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pySViAV4ADvnhaXtB6RJeOBr0xnTNNsj//jOhEoXq0KWG53EpkKSF3ZsZqAVkuWfP 5vrW+3oRtuWzhzb0vTgHyWpz8jaEMy4HVNxZjVfmGdBKz9G3icd1o5V+n+gRdcDGEq 3+o7bSoSDj67tqW1j4wSGeljXiSsncaaYEoZ+8kxtd7teThMqdJWan1mLDkAlmzJ5y PZzAtBXIvbC4zBWnzR0mFe26VO3WnJ/lnT1XFZHK0PlHzYou5F8kaoE3aJ7Q/HW/p5 QMmbQ6eCuVwVrBXUcweRzSiFFpf3TfX/pbnZgHRMc3gNAwI89t6WYX+tJzHN+TTrkz MrIVdZTQEfiiw== From: Stephen Boyd To: Greg Kroah-Hartman Cc: Randy Dunlap , linux-kernel@vger.kernel.org, patches@lists.linux.dev Subject: [PATCH 5/6] spmi: fix W=1 kernel-doc warnings Date: Thu, 13 Apr 2023 15:38:33 -0700 Message-ID: <20230413223834.4084793-6-sboyd@kernel.org> X-Mailer: git-send-email 2.40.0.634.g4ca3ef3211-goog In-Reply-To: <20230413223834.4084793-1-sboyd@kernel.org> References: <20230413223834.4084793-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Randy Dunlap Fix all W=3D1 kernel-doc warnings in drivers/spmi/: drivers/spmi/spmi.c:414: warning: expecting prototype for spmi_controller_a= lloc(). Prototype was for spmi_device_alloc() instead drivers/spmi/spmi.c:592: warning: expecting prototype for spmi_driver_regis= ter(). Prototype was for __spmi_driver_register() instead drivers/spmi/spmi.c:592: warning: Function parameter or member 'owner' not = described in '__spmi_driver_register' drivers/spmi/spmi-pmic-arb.c:155: warning: cannot understand function proto= type: 'struct spmi_pmic_arb ' drivers/spmi/spmi-pmic-arb.c:203: warning: cannot understand function proto= type: 'struct pmic_arb_ver_ops ' drivers/spmi/spmi-pmic-arb.c:219: warning: expecting prototype for struct p= mic_arb_ver. Prototype was for struct pmic_arb_ver_ops instead Signed-off-by: Randy Dunlap Cc: Stephen Boyd Link: https://lore.kernel.org/r/20230113064040.26801-1-rdunlap@infradead.org Signed-off-by: Stephen Boyd --- drivers/spmi/spmi-pmic-arb.c | 4 ++-- drivers/spmi/spmi.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index 42a593418aad..dcb675d980d4 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -126,7 +126,7 @@ struct apid_data { }; =20 /** - * spmi_pmic_arb - SPMI PMIC Arbiter object + * struct spmi_pmic_arb - SPMI PMIC Arbiter object * * @rd_base: on v1 "core", on v2 "observer" register base off DT. * @wr_base: on v1 "core", on v2 "chnls" register base off DT. @@ -180,7 +180,7 @@ struct spmi_pmic_arb { }; =20 /** - * pmic_arb_ver: version dependent functionality. + * struct pmic_arb_ver_ops - version dependent functionality. * * @ver_str: version string. * @ppid_to_apid: finds the apid for a given ppid. diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c index 73551531ed43..5705151013b3 100644 --- a/drivers/spmi/spmi.c +++ b/drivers/spmi/spmi.c @@ -404,7 +404,7 @@ struct spmi_device *spmi_device_from_of(struct device_n= ode *np) EXPORT_SYMBOL_GPL(spmi_device_from_of); =20 /** - * spmi_controller_alloc() - Allocate a new SPMI device + * spmi_device_alloc() - Allocate a new SPMI device * @ctrl: associated controller * * Caller is responsible for either calling spmi_device_add() to add the @@ -582,8 +582,9 @@ void spmi_controller_remove(struct spmi_controller *ctr= l) EXPORT_SYMBOL_GPL(spmi_controller_remove); =20 /** - * spmi_driver_register() - Register client driver with SPMI core + * __spmi_driver_register() - Register client driver with SPMI core * @sdrv: client driver to be associated with client-device. + * @owner: module owner * * This API will register the client driver with the SPMI framework. * It is typically called from the driver's module-init function. --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git From nobody Thu Dec 18 18:47:14 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5508FC77B61 for ; Thu, 13 Apr 2023 22:38:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229596AbjDMWio (ORCPT ); Thu, 13 Apr 2023 18:38:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229893AbjDMWij (ORCPT ); Thu, 13 Apr 2023 18:38:39 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 28D834488 for ; Thu, 13 Apr 2023 15:38:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B583064220 for ; Thu, 13 Apr 2023 22:38:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 63885C433A0; Thu, 13 Apr 2023 22:38:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1681425517; bh=vbdX/dqmOVMZruNpFyND398jkZY5rXuYcUVR0aNvnBw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qssvJRf3K0pi3IuIBrMMpDzmw12YfJrKrGRAhNS5fEnV5xcLGOJpgWpu1mm+z4JBa nLcAMKWksxGJgqIM4JX6/ysp5DQiEUZtwjWGVhWnyfiEDG/wchVW6QXcdI+R+5/mYH yHYU5YMJjF8ASWdeVkNCEaqBsoCCMjP7LVqOS00k1zO80+5hXKjBRYZFDHaalUoVO/ LcFz/CL4ErwL9HsuJutzVYiEqP6XEoTX29tA+Lyz2z0c3AtLLINfOQQIDKJYjSk2Na /2M/Uy9XS2avnRCte4sAX0sbsKyVJ6lIDyjzGh6ermTSk6SGadFjGclQLCbfBR8NOK 4/m6pL95N4g0Q== From: Stephen Boyd To: Greg Kroah-Hartman Cc: Jishnu Prakash , linux-kernel@vger.kernel.org, patches@lists.linux.dev Subject: [PATCH 6/6] spmi: Add a check for remove callback when removing a SPMI driver Date: Thu, 13 Apr 2023 15:38:34 -0700 Message-ID: <20230413223834.4084793-7-sboyd@kernel.org> X-Mailer: git-send-email 2.40.0.634.g4ca3ef3211-goog In-Reply-To: <20230413223834.4084793-1-sboyd@kernel.org> References: <20230413223834.4084793-1-sboyd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Jishnu Prakash When removing a SPMI driver, there can be a crash due to NULL pointer dereference if it does not have a remove callback defined. This is one such call trace observed when removing the QCOM SPMI PMIC driver: dump_backtrace.cfi_jt+0x0/0x8 dump_stack_lvl+0xd8/0x16c panic+0x188/0x498 __cfi_slowpath+0x0/0x214 __cfi_slowpath+0x1dc/0x214 spmi_drv_remove+0x16c/0x1e0 device_release_driver_internal+0x468/0x79c driver_detach+0x11c/0x1a0 bus_remove_driver+0xc4/0x124 driver_unregister+0x58/0x84 cleanup_module+0x1c/0xc24 [qcom_spmi_pmic] __do_sys_delete_module+0x3ec/0x53c __arm64_sys_delete_module+0x18/0x28 el0_svc_common+0xdc/0x294 el0_svc+0x38/0x9c el0_sync_handler+0x8c/0xf0 el0_sync+0x1b4/0x1c0 If a driver has all its resources allocated through devm_() APIs and does not need any other explicit cleanup, it would not require a remove callback to be defined. Hence, add a check for remove callback presence before calling it when removing a SPMI driver. Signed-off-by: Jishnu Prakash Link: https://lore.kernel.org/r/1671601032-18397-2-git-send-email-quic_jpra= kash@quicinc.com Fixes: 6f00f8c8635f ("mfd: qcom-spmi-pmic: Use devm_of_platform_populate()") Fixes: 5a86bf343976 ("spmi: Linux driver framework for SPMI") Signed-off-by: Stephen Boyd --- drivers/spmi/spmi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c index 5705151013b3..7313d4c18a04 100644 --- a/drivers/spmi/spmi.c +++ b/drivers/spmi/spmi.c @@ -350,7 +350,8 @@ static void spmi_drv_remove(struct device *dev) const struct spmi_driver *sdrv =3D to_spmi_driver(dev->driver); =20 pm_runtime_get_sync(dev); - sdrv->remove(to_spmi_device(dev)); + if (sdrv->remove) + sdrv->remove(to_spmi_device(dev)); pm_runtime_put_noidle(dev); =20 pm_runtime_disable(dev); --=20 https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/ https://git.kernel.org/pub/scm/linux/kernel/git/sboyd/spmi.git