All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2023-12-15 13:59 ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Shuai Xue, linux-arm-kernel, linux-kernel, Jiucheng Xu,
	Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	linux-amlogic, Ilkka Koskinen, Suzuki K Poulose, Besar Wicaksono,
	Robin Murphy, Raag Jadav, Frank Li, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Yicong Yang, Jonathan Cameron, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, linux-arm-msm, Khuong Dinh

Hello,

this series converts all drivers below drivers/perf to use
.remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
callback that returns no value") for an extended explanation and the
eventual goal. The TL;DR; is to make it harder for driver authors to
leak resources without noticing.

I based the patches on today's next, I had to revert commits 
3115ee021bfb ("arm64: perf: Include threshold control fields in
PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
counting threshold") to compile test on ARCH=arm (this is a problem in
next, not in my patch series).

This is merge window material. All patches are pairwise independent of
each other so they can be applied individually. Still it would be great
to let them go in all together.

Best regards
Uwe

Uwe Kleine-König (18):
  perf: alibaba_uncore_drw: Convert to platform remove callback
    returning void
  perf: amlogic: Convert to platform remove callback returning void
  perf: arm-cci: Convert to platform remove callback returning void
  perf: arm-ccn: Convert to platform remove callback returning void
  perf: arm-cmn: Convert to platform remove callback returning void
  perf: arm_cspmu: Convert to platform remove callback returning void
  perf: arm_dmc620: Convert to platform remove callback returning void
  perf: arm_dsu: Convert to platform remove callback returning void
  perf: arm_smmuv3: Convert to platform remove callback returning void
  perf: arm_spe: Convert to platform remove callback returning void
  perf: fsl_imx8_ddr: Convert to platform remove callback returning void
  perf: fsl_imx9_ddr: Convert to platform remove callback returning void
  perf: hisilicon: Convert to platform remove callback returning void
  perf: marvell_cn10k_ddr: Convert to platform remove callback returning void
  perf: marvell_cn10k_tad: Convert to platform remove callback returning void
  perf: qcom_l2: Convert to platform remove callback returning void
  perf: thunderx2: Convert to platform remove callback returning void
  perf: xgene: Convert to platform remove callback returning void

 drivers/perf/alibaba_uncore_drw_pmu.c         | 6 ++----
 drivers/perf/amlogic/meson_g12_ddr_pmu.c      | 6 ++----
 drivers/perf/arm-cci.c                        | 8 +++-----
 drivers/perf/arm-ccn.c                        | 6 ++----
 drivers/perf/arm-cmn.c                        | 5 ++---
 drivers/perf/arm_cspmu/arm_cspmu.c            | 6 ++----
 drivers/perf/arm_dmc620_pmu.c                 | 6 ++----
 drivers/perf/arm_dsu_pmu.c                    | 6 ++----
 drivers/perf/arm_smmuv3_pmu.c                 | 6 ++----
 drivers/perf/arm_spe_pmu.c                    | 5 ++---
 drivers/perf/fsl_imx8_ddr_perf.c              | 5 ++---
 drivers/perf/fsl_imx9_ddr_perf.c              | 6 ++----
 drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_pa_pmu.c   | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 5 ++---
 drivers/perf/marvell_cn10k_ddr_pmu.c          | 5 ++---
 drivers/perf/marvell_cn10k_tad_pmu.c          | 6 ++----
 drivers/perf/qcom_l2_pmu.c                    | 5 ++---
 drivers/perf/thunderx2_pmu.c                  | 5 ++---
 drivers/perf/xgene_pmu.c                      | 6 ++----
 23 files changed, 47 insertions(+), 81 deletions(-)

base-commit: 17cb8a20bde66a520a2ca7aad1063e1ce7382240
-- 
2.42.0


^ permalink raw reply	[flat|nested] 54+ messages in thread

* [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2023-12-15 13:59 ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Shuai Xue, linux-arm-kernel, linux-kernel, Jiucheng Xu,
	Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	linux-amlogic, Ilkka Koskinen, Suzuki K Poulose, Besar Wicaksono,
	Robin Murphy, Raag Jadav, Frank Li, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Yicong Yang, Jonathan Cameron, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, linux-arm-msm, Khuong Dinh

Hello,

this series converts all drivers below drivers/perf to use
.remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
callback that returns no value") for an extended explanation and the
eventual goal. The TL;DR; is to make it harder for driver authors to
leak resources without noticing.

I based the patches on today's next, I had to revert commits 
3115ee021bfb ("arm64: perf: Include threshold control fields in
PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
counting threshold") to compile test on ARCH=arm (this is a problem in
next, not in my patch series).

This is merge window material. All patches are pairwise independent of
each other so they can be applied individually. Still it would be great
to let them go in all together.

Best regards
Uwe

Uwe Kleine-König (18):
  perf: alibaba_uncore_drw: Convert to platform remove callback
    returning void
  perf: amlogic: Convert to platform remove callback returning void
  perf: arm-cci: Convert to platform remove callback returning void
  perf: arm-ccn: Convert to platform remove callback returning void
  perf: arm-cmn: Convert to platform remove callback returning void
  perf: arm_cspmu: Convert to platform remove callback returning void
  perf: arm_dmc620: Convert to platform remove callback returning void
  perf: arm_dsu: Convert to platform remove callback returning void
  perf: arm_smmuv3: Convert to platform remove callback returning void
  perf: arm_spe: Convert to platform remove callback returning void
  perf: fsl_imx8_ddr: Convert to platform remove callback returning void
  perf: fsl_imx9_ddr: Convert to platform remove callback returning void
  perf: hisilicon: Convert to platform remove callback returning void
  perf: marvell_cn10k_ddr: Convert to platform remove callback returning void
  perf: marvell_cn10k_tad: Convert to platform remove callback returning void
  perf: qcom_l2: Convert to platform remove callback returning void
  perf: thunderx2: Convert to platform remove callback returning void
  perf: xgene: Convert to platform remove callback returning void

 drivers/perf/alibaba_uncore_drw_pmu.c         | 6 ++----
 drivers/perf/amlogic/meson_g12_ddr_pmu.c      | 6 ++----
 drivers/perf/arm-cci.c                        | 8 +++-----
 drivers/perf/arm-ccn.c                        | 6 ++----
 drivers/perf/arm-cmn.c                        | 5 ++---
 drivers/perf/arm_cspmu/arm_cspmu.c            | 6 ++----
 drivers/perf/arm_dmc620_pmu.c                 | 6 ++----
 drivers/perf/arm_dsu_pmu.c                    | 6 ++----
 drivers/perf/arm_smmuv3_pmu.c                 | 6 ++----
 drivers/perf/arm_spe_pmu.c                    | 5 ++---
 drivers/perf/fsl_imx8_ddr_perf.c              | 5 ++---
 drivers/perf/fsl_imx9_ddr_perf.c              | 6 ++----
 drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_pa_pmu.c   | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 5 ++---
 drivers/perf/marvell_cn10k_ddr_pmu.c          | 5 ++---
 drivers/perf/marvell_cn10k_tad_pmu.c          | 6 ++----
 drivers/perf/qcom_l2_pmu.c                    | 5 ++---
 drivers/perf/thunderx2_pmu.c                  | 5 ++---
 drivers/perf/xgene_pmu.c                      | 6 ++----
 23 files changed, 47 insertions(+), 81 deletions(-)

base-commit: 17cb8a20bde66a520a2ca7aad1063e1ce7382240
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 54+ messages in thread

* [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2023-12-15 13:59 ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Shuai Xue, linux-arm-kernel, linux-kernel, Jiucheng Xu,
	Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	linux-amlogic, Ilkka Koskinen, Suzuki K Poulose, Besar Wicaksono,
	Robin Murphy, Raag Jadav, Frank Li, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Yicong Yang, Jonathan Cameron, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, linux-arm-msm, Khuong Dinh

Hello,

this series converts all drivers below drivers/perf to use
.remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
callback that returns no value") for an extended explanation and the
eventual goal. The TL;DR; is to make it harder for driver authors to
leak resources without noticing.

I based the patches on today's next, I had to revert commits 
3115ee021bfb ("arm64: perf: Include threshold control fields in
PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
counting threshold") to compile test on ARCH=arm (this is a problem in
next, not in my patch series).

This is merge window material. All patches are pairwise independent of
each other so they can be applied individually. Still it would be great
to let them go in all together.

Best regards
Uwe

Uwe Kleine-König (18):
  perf: alibaba_uncore_drw: Convert to platform remove callback
    returning void
  perf: amlogic: Convert to platform remove callback returning void
  perf: arm-cci: Convert to platform remove callback returning void
  perf: arm-ccn: Convert to platform remove callback returning void
  perf: arm-cmn: Convert to platform remove callback returning void
  perf: arm_cspmu: Convert to platform remove callback returning void
  perf: arm_dmc620: Convert to platform remove callback returning void
  perf: arm_dsu: Convert to platform remove callback returning void
  perf: arm_smmuv3: Convert to platform remove callback returning void
  perf: arm_spe: Convert to platform remove callback returning void
  perf: fsl_imx8_ddr: Convert to platform remove callback returning void
  perf: fsl_imx9_ddr: Convert to platform remove callback returning void
  perf: hisilicon: Convert to platform remove callback returning void
  perf: marvell_cn10k_ddr: Convert to platform remove callback returning void
  perf: marvell_cn10k_tad: Convert to platform remove callback returning void
  perf: qcom_l2: Convert to platform remove callback returning void
  perf: thunderx2: Convert to platform remove callback returning void
  perf: xgene: Convert to platform remove callback returning void

 drivers/perf/alibaba_uncore_drw_pmu.c         | 6 ++----
 drivers/perf/amlogic/meson_g12_ddr_pmu.c      | 6 ++----
 drivers/perf/arm-cci.c                        | 8 +++-----
 drivers/perf/arm-ccn.c                        | 6 ++----
 drivers/perf/arm-cmn.c                        | 5 ++---
 drivers/perf/arm_cspmu/arm_cspmu.c            | 6 ++----
 drivers/perf/arm_dmc620_pmu.c                 | 6 ++----
 drivers/perf/arm_dsu_pmu.c                    | 6 ++----
 drivers/perf/arm_smmuv3_pmu.c                 | 6 ++----
 drivers/perf/arm_spe_pmu.c                    | 5 ++---
 drivers/perf/fsl_imx8_ddr_perf.c              | 5 ++---
 drivers/perf/fsl_imx9_ddr_perf.c              | 6 ++----
 drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_pa_pmu.c   | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 5 ++---
 drivers/perf/marvell_cn10k_ddr_pmu.c          | 5 ++---
 drivers/perf/marvell_cn10k_tad_pmu.c          | 6 ++----
 drivers/perf/qcom_l2_pmu.c                    | 5 ++---
 drivers/perf/thunderx2_pmu.c                  | 5 ++---
 drivers/perf/xgene_pmu.c                      | 6 ++----
 23 files changed, 47 insertions(+), 81 deletions(-)

base-commit: 17cb8a20bde66a520a2ca7aad1063e1ce7382240
-- 
2.42.0


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 54+ messages in thread

* [PATCH 01/18] perf: alibaba_uncore_drw: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: Shuai Xue, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/alibaba_uncore_drw_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/alibaba_uncore_drw_pmu.c b/drivers/perf/alibaba_uncore_drw_pmu.c
index 19d459a36be5..a9277dcf90ce 100644
--- a/drivers/perf/alibaba_uncore_drw_pmu.c
+++ b/drivers/perf/alibaba_uncore_drw_pmu.c
@@ -729,7 +729,7 @@ static int ali_drw_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int ali_drw_pmu_remove(struct platform_device *pdev)
+static void ali_drw_pmu_remove(struct platform_device *pdev)
 {
 	struct ali_drw_pmu *drw_pmu = platform_get_drvdata(pdev);
 
@@ -739,8 +739,6 @@ static int ali_drw_pmu_remove(struct platform_device *pdev)
 
 	ali_drw_pmu_uninit_irq(drw_pmu);
 	perf_pmu_unregister(&drw_pmu->pmu);
-
-	return 0;
 }
 
 static int ali_drw_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node)
@@ -795,7 +793,7 @@ static struct platform_driver ali_drw_pmu_driver = {
 		   .acpi_match_table = ali_drw_acpi_match,
 		   },
 	.probe = ali_drw_pmu_probe,
-	.remove = ali_drw_pmu_remove,
+	.remove_new = ali_drw_pmu_remove,
 };
 
 static int __init ali_drw_pmu_init(void)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 01/18] perf: alibaba_uncore_drw: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: Shuai Xue, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/alibaba_uncore_drw_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/alibaba_uncore_drw_pmu.c b/drivers/perf/alibaba_uncore_drw_pmu.c
index 19d459a36be5..a9277dcf90ce 100644
--- a/drivers/perf/alibaba_uncore_drw_pmu.c
+++ b/drivers/perf/alibaba_uncore_drw_pmu.c
@@ -729,7 +729,7 @@ static int ali_drw_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int ali_drw_pmu_remove(struct platform_device *pdev)
+static void ali_drw_pmu_remove(struct platform_device *pdev)
 {
 	struct ali_drw_pmu *drw_pmu = platform_get_drvdata(pdev);
 
@@ -739,8 +739,6 @@ static int ali_drw_pmu_remove(struct platform_device *pdev)
 
 	ali_drw_pmu_uninit_irq(drw_pmu);
 	perf_pmu_unregister(&drw_pmu->pmu);
-
-	return 0;
 }
 
 static int ali_drw_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node)
@@ -795,7 +793,7 @@ static struct platform_driver ali_drw_pmu_driver = {
 		   .acpi_match_table = ali_drw_acpi_match,
 		   },
 	.probe = ali_drw_pmu_probe,
-	.remove = ali_drw_pmu_remove,
+	.remove_new = ali_drw_pmu_remove,
 };
 
 static int __init ali_drw_pmu_init(void)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 02/18] perf: amlogic: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
  (?)
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Jiucheng Xu, Neil Armstrong, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl, linux-amlogic, linux-arm-kernel,
	linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/amlogic/meson_g12_ddr_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/amlogic/meson_g12_ddr_pmu.c b/drivers/perf/amlogic/meson_g12_ddr_pmu.c
index 15d52ab3276a..99cc791892bc 100644
--- a/drivers/perf/amlogic/meson_g12_ddr_pmu.c
+++ b/drivers/perf/amlogic/meson_g12_ddr_pmu.c
@@ -355,11 +355,9 @@ static int g12_ddr_pmu_probe(struct platform_device *pdev)
 	return meson_ddr_pmu_create(pdev);
 }
 
-static int g12_ddr_pmu_remove(struct platform_device *pdev)
+static void g12_ddr_pmu_remove(struct platform_device *pdev)
 {
 	meson_ddr_pmu_remove(pdev);
-
-	return 0;
 }
 
 static const struct of_device_id meson_ddr_pmu_dt_match[] = {
@@ -381,7 +379,7 @@ MODULE_DEVICE_TABLE(of, meson_ddr_pmu_dt_match);
 
 static struct platform_driver g12_ddr_pmu_driver = {
 	.probe = g12_ddr_pmu_probe,
-	.remove = g12_ddr_pmu_remove,
+	.remove_new = g12_ddr_pmu_remove,
 
 	.driver = {
 		.name = "meson-g12-ddr-pmu",
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 02/18] perf: amlogic: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Jiucheng Xu, Neil Armstrong, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl, linux-amlogic, linux-arm-kernel,
	linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/amlogic/meson_g12_ddr_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/amlogic/meson_g12_ddr_pmu.c b/drivers/perf/amlogic/meson_g12_ddr_pmu.c
index 15d52ab3276a..99cc791892bc 100644
--- a/drivers/perf/amlogic/meson_g12_ddr_pmu.c
+++ b/drivers/perf/amlogic/meson_g12_ddr_pmu.c
@@ -355,11 +355,9 @@ static int g12_ddr_pmu_probe(struct platform_device *pdev)
 	return meson_ddr_pmu_create(pdev);
 }
 
-static int g12_ddr_pmu_remove(struct platform_device *pdev)
+static void g12_ddr_pmu_remove(struct platform_device *pdev)
 {
 	meson_ddr_pmu_remove(pdev);
-
-	return 0;
 }
 
 static const struct of_device_id meson_ddr_pmu_dt_match[] = {
@@ -381,7 +379,7 @@ MODULE_DEVICE_TABLE(of, meson_ddr_pmu_dt_match);
 
 static struct platform_driver g12_ddr_pmu_driver = {
 	.probe = g12_ddr_pmu_probe,
-	.remove = g12_ddr_pmu_remove,
+	.remove_new = g12_ddr_pmu_remove,
 
 	.driver = {
 		.name = "meson-g12-ddr-pmu",
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 02/18] perf: amlogic: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Jiucheng Xu, Neil Armstrong, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl, linux-amlogic, linux-arm-kernel,
	linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/amlogic/meson_g12_ddr_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/amlogic/meson_g12_ddr_pmu.c b/drivers/perf/amlogic/meson_g12_ddr_pmu.c
index 15d52ab3276a..99cc791892bc 100644
--- a/drivers/perf/amlogic/meson_g12_ddr_pmu.c
+++ b/drivers/perf/amlogic/meson_g12_ddr_pmu.c
@@ -355,11 +355,9 @@ static int g12_ddr_pmu_probe(struct platform_device *pdev)
 	return meson_ddr_pmu_create(pdev);
 }
 
-static int g12_ddr_pmu_remove(struct platform_device *pdev)
+static void g12_ddr_pmu_remove(struct platform_device *pdev)
 {
 	meson_ddr_pmu_remove(pdev);
-
-	return 0;
 }
 
 static const struct of_device_id meson_ddr_pmu_dt_match[] = {
@@ -381,7 +379,7 @@ MODULE_DEVICE_TABLE(of, meson_ddr_pmu_dt_match);
 
 static struct platform_driver g12_ddr_pmu_driver = {
 	.probe = g12_ddr_pmu_probe,
-	.remove = g12_ddr_pmu_remove,
+	.remove_new = g12_ddr_pmu_remove,
 
 	.driver = {
 		.name = "meson-g12-ddr-pmu",
-- 
2.42.0


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 03/18] perf: arm-cci: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm-cci.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/perf/arm-cci.c b/drivers/perf/arm-cci.c
index 61de861eaf91..6be03f81ae5d 100644
--- a/drivers/perf/arm-cci.c
+++ b/drivers/perf/arm-cci.c
@@ -1697,16 +1697,14 @@ static int cci_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int cci_pmu_remove(struct platform_device *pdev)
+static void cci_pmu_remove(struct platform_device *pdev)
 {
 	if (!g_cci_pmu)
-		return 0;
+		return;
 
 	cpuhp_remove_state(CPUHP_AP_PERF_ARM_CCI_ONLINE);
 	perf_pmu_unregister(&g_cci_pmu->pmu);
 	g_cci_pmu = NULL;
-
-	return 0;
 }
 
 static struct platform_driver cci_pmu_driver = {
@@ -1716,7 +1714,7 @@ static struct platform_driver cci_pmu_driver = {
 		   .suppress_bind_attrs = true,
 		  },
 	.probe = cci_pmu_probe,
-	.remove = cci_pmu_remove,
+	.remove_new = cci_pmu_remove,
 };
 
 module_platform_driver(cci_pmu_driver);
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 03/18] perf: arm-cci: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm-cci.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/perf/arm-cci.c b/drivers/perf/arm-cci.c
index 61de861eaf91..6be03f81ae5d 100644
--- a/drivers/perf/arm-cci.c
+++ b/drivers/perf/arm-cci.c
@@ -1697,16 +1697,14 @@ static int cci_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int cci_pmu_remove(struct platform_device *pdev)
+static void cci_pmu_remove(struct platform_device *pdev)
 {
 	if (!g_cci_pmu)
-		return 0;
+		return;
 
 	cpuhp_remove_state(CPUHP_AP_PERF_ARM_CCI_ONLINE);
 	perf_pmu_unregister(&g_cci_pmu->pmu);
 	g_cci_pmu = NULL;
-
-	return 0;
 }
 
 static struct platform_driver cci_pmu_driver = {
@@ -1716,7 +1714,7 @@ static struct platform_driver cci_pmu_driver = {
 		   .suppress_bind_attrs = true,
 		  },
 	.probe = cci_pmu_probe,
-	.remove = cci_pmu_remove,
+	.remove_new = cci_pmu_remove,
 };
 
 module_platform_driver(cci_pmu_driver);
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 04/18] perf: arm-ccn: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm-ccn.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm-ccn.c b/drivers/perf/arm-ccn.c
index 728d13d8e98a..641471bd5eff 100644
--- a/drivers/perf/arm-ccn.c
+++ b/drivers/perf/arm-ccn.c
@@ -1515,13 +1515,11 @@ static int arm_ccn_probe(struct platform_device *pdev)
 	return arm_ccn_pmu_init(ccn);
 }
 
-static int arm_ccn_remove(struct platform_device *pdev)
+static void arm_ccn_remove(struct platform_device *pdev)
 {
 	struct arm_ccn *ccn = platform_get_drvdata(pdev);
 
 	arm_ccn_pmu_cleanup(ccn);
-
-	return 0;
 }
 
 static const struct of_device_id arm_ccn_match[] = {
@@ -1539,7 +1537,7 @@ static struct platform_driver arm_ccn_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = arm_ccn_probe,
-	.remove = arm_ccn_remove,
+	.remove_new = arm_ccn_remove,
 };
 
 static int __init arm_ccn_init(void)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 04/18] perf: arm-ccn: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm-ccn.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm-ccn.c b/drivers/perf/arm-ccn.c
index 728d13d8e98a..641471bd5eff 100644
--- a/drivers/perf/arm-ccn.c
+++ b/drivers/perf/arm-ccn.c
@@ -1515,13 +1515,11 @@ static int arm_ccn_probe(struct platform_device *pdev)
 	return arm_ccn_pmu_init(ccn);
 }
 
-static int arm_ccn_remove(struct platform_device *pdev)
+static void arm_ccn_remove(struct platform_device *pdev)
 {
 	struct arm_ccn *ccn = platform_get_drvdata(pdev);
 
 	arm_ccn_pmu_cleanup(ccn);
-
-	return 0;
 }
 
 static const struct of_device_id arm_ccn_match[] = {
@@ -1539,7 +1537,7 @@ static struct platform_driver arm_ccn_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = arm_ccn_probe,
-	.remove = arm_ccn_remove,
+	.remove_new = arm_ccn_remove,
 };
 
 static int __init arm_ccn_init(void)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 05/18] perf: arm-cmn: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm-cmn.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index c584165b13ba..ac7a953fe902 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -2504,7 +2504,7 @@ static int arm_cmn_probe(struct platform_device *pdev)
 	return err;
 }
 
-static int arm_cmn_remove(struct platform_device *pdev)
+static void arm_cmn_remove(struct platform_device *pdev)
 {
 	struct arm_cmn *cmn = platform_get_drvdata(pdev);
 
@@ -2513,7 +2513,6 @@ static int arm_cmn_remove(struct platform_device *pdev)
 	perf_pmu_unregister(&cmn->pmu);
 	cpuhp_state_remove_instance_nocalls(arm_cmn_hp_state, &cmn->cpuhp_node);
 	debugfs_remove(cmn->debug);
-	return 0;
 }
 
 #ifdef CONFIG_OF
@@ -2544,7 +2543,7 @@ static struct platform_driver arm_cmn_driver = {
 		.acpi_match_table = ACPI_PTR(arm_cmn_acpi_match),
 	},
 	.probe = arm_cmn_probe,
-	.remove = arm_cmn_remove,
+	.remove_new = arm_cmn_remove,
 };
 
 static int __init arm_cmn_init(void)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 05/18] perf: arm-cmn: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm-cmn.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index c584165b13ba..ac7a953fe902 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -2504,7 +2504,7 @@ static int arm_cmn_probe(struct platform_device *pdev)
 	return err;
 }
 
-static int arm_cmn_remove(struct platform_device *pdev)
+static void arm_cmn_remove(struct platform_device *pdev)
 {
 	struct arm_cmn *cmn = platform_get_drvdata(pdev);
 
@@ -2513,7 +2513,6 @@ static int arm_cmn_remove(struct platform_device *pdev)
 	perf_pmu_unregister(&cmn->pmu);
 	cpuhp_state_remove_instance_nocalls(arm_cmn_hp_state, &cmn->cpuhp_node);
 	debugfs_remove(cmn->debug);
-	return 0;
 }
 
 #ifdef CONFIG_OF
@@ -2544,7 +2543,7 @@ static struct platform_driver arm_cmn_driver = {
 		.acpi_match_table = ACPI_PTR(arm_cmn_acpi_match),
 	},
 	.probe = arm_cmn_probe,
-	.remove = arm_cmn_remove,
+	.remove_new = arm_cmn_remove,
 };
 
 static int __init arm_cmn_init(void)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 06/18] perf: arm_cspmu: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Ilkka Koskinen, Suzuki K Poulose, Besar Wicaksono, Robin Murphy,
	Raag Jadav, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_cspmu/arm_cspmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
index 50b89b989ce7..3513bf50fefa 100644
--- a/drivers/perf/arm_cspmu/arm_cspmu.c
+++ b/drivers/perf/arm_cspmu/arm_cspmu.c
@@ -1252,14 +1252,12 @@ static int arm_cspmu_device_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int arm_cspmu_device_remove(struct platform_device *pdev)
+static void arm_cspmu_device_remove(struct platform_device *pdev)
 {
 	struct arm_cspmu *cspmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&cspmu->pmu);
 	cpuhp_state_remove_instance(arm_cspmu_cpuhp_state, &cspmu->cpuhp_node);
-
-	return 0;
 }
 
 static const struct platform_device_id arm_cspmu_id[] = {
@@ -1274,7 +1272,7 @@ static struct platform_driver arm_cspmu_driver = {
 			.suppress_bind_attrs = true,
 		},
 	.probe = arm_cspmu_device_probe,
-	.remove = arm_cspmu_device_remove,
+	.remove_new = arm_cspmu_device_remove,
 	.id_table = arm_cspmu_id,
 };
 
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 06/18] perf: arm_cspmu: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Ilkka Koskinen, Suzuki K Poulose, Besar Wicaksono, Robin Murphy,
	Raag Jadav, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_cspmu/arm_cspmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
index 50b89b989ce7..3513bf50fefa 100644
--- a/drivers/perf/arm_cspmu/arm_cspmu.c
+++ b/drivers/perf/arm_cspmu/arm_cspmu.c
@@ -1252,14 +1252,12 @@ static int arm_cspmu_device_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int arm_cspmu_device_remove(struct platform_device *pdev)
+static void arm_cspmu_device_remove(struct platform_device *pdev)
 {
 	struct arm_cspmu *cspmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&cspmu->pmu);
 	cpuhp_state_remove_instance(arm_cspmu_cpuhp_state, &cspmu->cpuhp_node);
-
-	return 0;
 }
 
 static const struct platform_device_id arm_cspmu_id[] = {
@@ -1274,7 +1272,7 @@ static struct platform_driver arm_cspmu_driver = {
 			.suppress_bind_attrs = true,
 		},
 	.probe = arm_cspmu_device_probe,
-	.remove = arm_cspmu_device_remove,
+	.remove_new = arm_cspmu_device_remove,
 	.id_table = arm_cspmu_id,
 };
 
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 07/18] perf: arm_dmc620: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_dmc620_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm_dmc620_pmu.c b/drivers/perf/arm_dmc620_pmu.c
index 30cea6859574..8a81be2dd5ec 100644
--- a/drivers/perf/arm_dmc620_pmu.c
+++ b/drivers/perf/arm_dmc620_pmu.c
@@ -724,7 +724,7 @@ static int dmc620_pmu_device_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int dmc620_pmu_device_remove(struct platform_device *pdev)
+static void dmc620_pmu_device_remove(struct platform_device *pdev)
 {
 	struct dmc620_pmu *dmc620_pmu = platform_get_drvdata(pdev);
 
@@ -732,8 +732,6 @@ static int dmc620_pmu_device_remove(struct platform_device *pdev)
 
 	/* perf will synchronise RCU before devres can free dmc620_pmu */
 	perf_pmu_unregister(&dmc620_pmu->pmu);
-
-	return 0;
 }
 
 static const struct acpi_device_id dmc620_acpi_match[] = {
@@ -748,7 +746,7 @@ static struct platform_driver dmc620_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe	= dmc620_pmu_device_probe,
-	.remove	= dmc620_pmu_device_remove,
+	.remove_new = dmc620_pmu_device_remove,
 };
 
 static int __init dmc620_pmu_init(void)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 07/18] perf: arm_dmc620: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_dmc620_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm_dmc620_pmu.c b/drivers/perf/arm_dmc620_pmu.c
index 30cea6859574..8a81be2dd5ec 100644
--- a/drivers/perf/arm_dmc620_pmu.c
+++ b/drivers/perf/arm_dmc620_pmu.c
@@ -724,7 +724,7 @@ static int dmc620_pmu_device_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int dmc620_pmu_device_remove(struct platform_device *pdev)
+static void dmc620_pmu_device_remove(struct platform_device *pdev)
 {
 	struct dmc620_pmu *dmc620_pmu = platform_get_drvdata(pdev);
 
@@ -732,8 +732,6 @@ static int dmc620_pmu_device_remove(struct platform_device *pdev)
 
 	/* perf will synchronise RCU before devres can free dmc620_pmu */
 	perf_pmu_unregister(&dmc620_pmu->pmu);
-
-	return 0;
 }
 
 static const struct acpi_device_id dmc620_acpi_match[] = {
@@ -748,7 +746,7 @@ static struct platform_driver dmc620_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe	= dmc620_pmu_device_probe,
-	.remove	= dmc620_pmu_device_remove,
+	.remove_new = dmc620_pmu_device_remove,
 };
 
 static int __init dmc620_pmu_init(void)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 08/18] perf: arm_dsu: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_dsu_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm_dsu_pmu.c b/drivers/perf/arm_dsu_pmu.c
index 7ec4498e312f..bae3ca37f846 100644
--- a/drivers/perf/arm_dsu_pmu.c
+++ b/drivers/perf/arm_dsu_pmu.c
@@ -774,14 +774,12 @@ static int dsu_pmu_device_probe(struct platform_device *pdev)
 	return rc;
 }
 
-static int dsu_pmu_device_remove(struct platform_device *pdev)
+static void dsu_pmu_device_remove(struct platform_device *pdev)
 {
 	struct dsu_pmu *dsu_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&dsu_pmu->pmu);
 	cpuhp_state_remove_instance(dsu_pmu_cpuhp_state, &dsu_pmu->cpuhp_node);
-
-	return 0;
 }
 
 static const struct of_device_id dsu_pmu_of_match[] = {
@@ -806,7 +804,7 @@ static struct platform_driver dsu_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = dsu_pmu_device_probe,
-	.remove = dsu_pmu_device_remove,
+	.remove_new = dsu_pmu_device_remove,
 };
 
 static int dsu_pmu_cpu_online(unsigned int cpu, struct hlist_node *node)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 08/18] perf: arm_dsu: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_dsu_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm_dsu_pmu.c b/drivers/perf/arm_dsu_pmu.c
index 7ec4498e312f..bae3ca37f846 100644
--- a/drivers/perf/arm_dsu_pmu.c
+++ b/drivers/perf/arm_dsu_pmu.c
@@ -774,14 +774,12 @@ static int dsu_pmu_device_probe(struct platform_device *pdev)
 	return rc;
 }
 
-static int dsu_pmu_device_remove(struct platform_device *pdev)
+static void dsu_pmu_device_remove(struct platform_device *pdev)
 {
 	struct dsu_pmu *dsu_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&dsu_pmu->pmu);
 	cpuhp_state_remove_instance(dsu_pmu_cpuhp_state, &dsu_pmu->cpuhp_node);
-
-	return 0;
 }
 
 static const struct of_device_id dsu_pmu_of_match[] = {
@@ -806,7 +804,7 @@ static struct platform_driver dsu_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = dsu_pmu_device_probe,
-	.remove = dsu_pmu_device_remove,
+	.remove_new = dsu_pmu_device_remove,
 };
 
 static int dsu_pmu_cpu_online(unsigned int cpu, struct hlist_node *node)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 09/18] perf: arm_smmuv3: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_smmuv3_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm_smmuv3_pmu.c b/drivers/perf/arm_smmuv3_pmu.c
index 6303b82566f9..af3ab3eb944e 100644
--- a/drivers/perf/arm_smmuv3_pmu.c
+++ b/drivers/perf/arm_smmuv3_pmu.c
@@ -965,14 +965,12 @@ static int smmu_pmu_probe(struct platform_device *pdev)
 	return err;
 }
 
-static int smmu_pmu_remove(struct platform_device *pdev)
+static void smmu_pmu_remove(struct platform_device *pdev)
 {
 	struct smmu_pmu *smmu_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&smmu_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(cpuhp_state_num, &smmu_pmu->node);
-
-	return 0;
 }
 
 static void smmu_pmu_shutdown(struct platform_device *pdev)
@@ -997,7 +995,7 @@ static struct platform_driver smmu_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = smmu_pmu_probe,
-	.remove = smmu_pmu_remove,
+	.remove_new = smmu_pmu_remove,
 	.shutdown = smmu_pmu_shutdown,
 };
 
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 09/18] perf: arm_smmuv3: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_smmuv3_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/arm_smmuv3_pmu.c b/drivers/perf/arm_smmuv3_pmu.c
index 6303b82566f9..af3ab3eb944e 100644
--- a/drivers/perf/arm_smmuv3_pmu.c
+++ b/drivers/perf/arm_smmuv3_pmu.c
@@ -965,14 +965,12 @@ static int smmu_pmu_probe(struct platform_device *pdev)
 	return err;
 }
 
-static int smmu_pmu_remove(struct platform_device *pdev)
+static void smmu_pmu_remove(struct platform_device *pdev)
 {
 	struct smmu_pmu *smmu_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&smmu_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(cpuhp_state_num, &smmu_pmu->node);
-
-	return 0;
 }
 
 static void smmu_pmu_shutdown(struct platform_device *pdev)
@@ -997,7 +995,7 @@ static struct platform_driver smmu_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = smmu_pmu_probe,
-	.remove = smmu_pmu_remove,
+	.remove_new = smmu_pmu_remove,
 	.shutdown = smmu_pmu_shutdown,
 };
 
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 10/18] perf: arm_spe: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_spe_pmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c
index b622d75d8c9e..35f0de03416f 100644
--- a/drivers/perf/arm_spe_pmu.c
+++ b/drivers/perf/arm_spe_pmu.c
@@ -1263,14 +1263,13 @@ static int arm_spe_pmu_device_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int arm_spe_pmu_device_remove(struct platform_device *pdev)
+static void arm_spe_pmu_device_remove(struct platform_device *pdev)
 {
 	struct arm_spe_pmu *spe_pmu = platform_get_drvdata(pdev);
 
 	arm_spe_pmu_perf_destroy(spe_pmu);
 	arm_spe_pmu_dev_teardown(spe_pmu);
 	free_percpu(spe_pmu->handle);
-	return 0;
 }
 
 static struct platform_driver arm_spe_pmu_driver = {
@@ -1281,7 +1280,7 @@ static struct platform_driver arm_spe_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe	= arm_spe_pmu_device_probe,
-	.remove	= arm_spe_pmu_device_remove,
+	.remove_new = arm_spe_pmu_device_remove,
 };
 
 static int __init arm_spe_pmu_init(void)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 10/18] perf: arm_spe: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/arm_spe_pmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c
index b622d75d8c9e..35f0de03416f 100644
--- a/drivers/perf/arm_spe_pmu.c
+++ b/drivers/perf/arm_spe_pmu.c
@@ -1263,14 +1263,13 @@ static int arm_spe_pmu_device_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int arm_spe_pmu_device_remove(struct platform_device *pdev)
+static void arm_spe_pmu_device_remove(struct platform_device *pdev)
 {
 	struct arm_spe_pmu *spe_pmu = platform_get_drvdata(pdev);
 
 	arm_spe_pmu_perf_destroy(spe_pmu);
 	arm_spe_pmu_dev_teardown(spe_pmu);
 	free_percpu(spe_pmu->handle);
-	return 0;
 }
 
 static struct platform_driver arm_spe_pmu_driver = {
@@ -1281,7 +1280,7 @@ static struct platform_driver arm_spe_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe	= arm_spe_pmu_device_probe,
-	.remove	= arm_spe_pmu_device_remove,
+	.remove_new = arm_spe_pmu_device_remove,
 };
 
 static int __init arm_spe_pmu_init(void)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 11/18] perf: fsl_imx8_ddr: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Frank Li, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/fsl_imx8_ddr_perf.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/fsl_imx8_ddr_perf.c b/drivers/perf/fsl_imx8_ddr_perf.c
index 7dbfaee372c7..4e8fa5a48fcf 100644
--- a/drivers/perf/fsl_imx8_ddr_perf.c
+++ b/drivers/perf/fsl_imx8_ddr_perf.c
@@ -826,7 +826,7 @@ static int ddr_perf_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int ddr_perf_remove(struct platform_device *pdev)
+static void ddr_perf_remove(struct platform_device *pdev)
 {
 	struct ddr_pmu *pmu = platform_get_drvdata(pdev);
 
@@ -836,7 +836,6 @@ static int ddr_perf_remove(struct platform_device *pdev)
 	perf_pmu_unregister(&pmu->pmu);
 
 	ida_free(&ddr_ida, pmu->id);
-	return 0;
 }
 
 static struct platform_driver imx_ddr_pmu_driver = {
@@ -846,7 +845,7 @@ static struct platform_driver imx_ddr_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe          = ddr_perf_probe,
-	.remove         = ddr_perf_remove,
+	.remove_new     = ddr_perf_remove,
 };
 
 module_platform_driver(imx_ddr_pmu_driver);
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 11/18] perf: fsl_imx8_ddr: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Frank Li, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/fsl_imx8_ddr_perf.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/fsl_imx8_ddr_perf.c b/drivers/perf/fsl_imx8_ddr_perf.c
index 7dbfaee372c7..4e8fa5a48fcf 100644
--- a/drivers/perf/fsl_imx8_ddr_perf.c
+++ b/drivers/perf/fsl_imx8_ddr_perf.c
@@ -826,7 +826,7 @@ static int ddr_perf_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int ddr_perf_remove(struct platform_device *pdev)
+static void ddr_perf_remove(struct platform_device *pdev)
 {
 	struct ddr_pmu *pmu = platform_get_drvdata(pdev);
 
@@ -836,7 +836,6 @@ static int ddr_perf_remove(struct platform_device *pdev)
 	perf_pmu_unregister(&pmu->pmu);
 
 	ida_free(&ddr_ida, pmu->id);
-	return 0;
 }
 
 static struct platform_driver imx_ddr_pmu_driver = {
@@ -846,7 +845,7 @@ static struct platform_driver imx_ddr_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe          = ddr_perf_probe,
-	.remove         = ddr_perf_remove,
+	.remove_new     = ddr_perf_remove,
 };
 
 module_platform_driver(imx_ddr_pmu_driver);
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 12/18] perf: fsl_imx9_ddr: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/fsl_imx9_ddr_perf.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/fsl_imx9_ddr_perf.c b/drivers/perf/fsl_imx9_ddr_perf.c
index 9685645bfe04..72c2d3074cde 100644
--- a/drivers/perf/fsl_imx9_ddr_perf.c
+++ b/drivers/perf/fsl_imx9_ddr_perf.c
@@ -679,7 +679,7 @@ static int ddr_perf_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int ddr_perf_remove(struct platform_device *pdev)
+static void ddr_perf_remove(struct platform_device *pdev)
 {
 	struct ddr_pmu *pmu = platform_get_drvdata(pdev);
 
@@ -689,8 +689,6 @@ static int ddr_perf_remove(struct platform_device *pdev)
 	perf_pmu_unregister(&pmu->pmu);
 
 	ida_free(&ddr_ida, pmu->id);
-
-	return 0;
 }
 
 static struct platform_driver imx_ddr_pmu_driver = {
@@ -700,7 +698,7 @@ static struct platform_driver imx_ddr_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe          = ddr_perf_probe,
-	.remove         = ddr_perf_remove,
+	.remove_new     = ddr_perf_remove,
 };
 module_platform_driver(imx_ddr_pmu_driver);
 
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 12/18] perf: fsl_imx9_ddr: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/fsl_imx9_ddr_perf.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/fsl_imx9_ddr_perf.c b/drivers/perf/fsl_imx9_ddr_perf.c
index 9685645bfe04..72c2d3074cde 100644
--- a/drivers/perf/fsl_imx9_ddr_perf.c
+++ b/drivers/perf/fsl_imx9_ddr_perf.c
@@ -679,7 +679,7 @@ static int ddr_perf_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int ddr_perf_remove(struct platform_device *pdev)
+static void ddr_perf_remove(struct platform_device *pdev)
 {
 	struct ddr_pmu *pmu = platform_get_drvdata(pdev);
 
@@ -689,8 +689,6 @@ static int ddr_perf_remove(struct platform_device *pdev)
 	perf_pmu_unregister(&pmu->pmu);
 
 	ida_free(&ddr_ida, pmu->id);
-
-	return 0;
 }
 
 static struct platform_driver imx_ddr_pmu_driver = {
@@ -700,7 +698,7 @@ static struct platform_driver imx_ddr_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe          = ddr_perf_probe,
-	.remove         = ddr_perf_remove,
+	.remove_new     = ddr_perf_remove,
 };
 module_platform_driver(imx_ddr_pmu_driver);
 
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 13/18] perf: hisilicon: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Yicong Yang, Jonathan Cameron, linux-arm-kernel, linux-kernel

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() will be renamed to .remove().

Trivially convert these drivers from always returning zero in the remove
callback to the void returning variant.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_pa_pmu.c   | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 5 ++---
 6 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c b/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
index 40f1bc9f9b91..0e923f94fa5b 100644
--- a/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
@@ -341,7 +341,7 @@ static int hisi_cpa_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_cpa_pmu_remove(struct platform_device *pdev)
+static void hisi_cpa_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *cpa_pmu = platform_get_drvdata(pdev);
 
@@ -349,7 +349,6 @@ static int hisi_cpa_pmu_remove(struct platform_device *pdev)
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE,
 					    &cpa_pmu->node);
 	hisi_cpa_pmu_enable_pm(cpa_pmu);
-	return 0;
 }
 
 static struct platform_driver hisi_cpa_pmu_driver = {
@@ -359,7 +358,7 @@ static struct platform_driver hisi_cpa_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_cpa_pmu_probe,
-	.remove = hisi_cpa_pmu_remove,
+	.remove_new = hisi_cpa_pmu_remove,
 };
 
 static int __init hisi_cpa_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
index ffb039d05d07..b804e3738113 100644
--- a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
@@ -531,14 +531,13 @@ static int hisi_ddrc_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_ddrc_pmu_remove(struct platform_device *pdev)
+static void hisi_ddrc_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *ddrc_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&ddrc_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE,
 					    &ddrc_pmu->node);
-	return 0;
 }
 
 static struct platform_driver hisi_ddrc_pmu_driver = {
@@ -548,7 +547,7 @@ static struct platform_driver hisi_ddrc_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_ddrc_pmu_probe,
-	.remove = hisi_ddrc_pmu_remove,
+	.remove_new = hisi_ddrc_pmu_remove,
 };
 
 static int __init hisi_ddrc_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c b/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
index 15caf99e1eef..21e69b1cdd4d 100644
--- a/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
@@ -534,14 +534,13 @@ static int hisi_hha_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_hha_pmu_remove(struct platform_device *pdev)
+static void hisi_hha_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *hha_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&hha_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE,
 					    &hha_pmu->node);
-	return 0;
 }
 
 static struct platform_driver hisi_hha_pmu_driver = {
@@ -551,7 +550,7 @@ static struct platform_driver hisi_hha_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_hha_pmu_probe,
-	.remove = hisi_hha_pmu_remove,
+	.remove_new = hisi_hha_pmu_remove,
 };
 
 static int __init hisi_hha_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c b/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
index 794dbcd19b7a..51ba76871097 100644
--- a/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
@@ -568,14 +568,13 @@ static int hisi_l3c_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_l3c_pmu_remove(struct platform_device *pdev)
+static void hisi_l3c_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *l3c_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&l3c_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_L3_ONLINE,
 					    &l3c_pmu->node);
-	return 0;
 }
 
 static struct platform_driver hisi_l3c_pmu_driver = {
@@ -585,7 +584,7 @@ static struct platform_driver hisi_l3c_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_l3c_pmu_probe,
-	.remove = hisi_l3c_pmu_remove,
+	.remove_new = hisi_l3c_pmu_remove,
 };
 
 static int __init hisi_l3c_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
index 797cf201996a..3cdb35c741f9 100644
--- a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
@@ -514,14 +514,13 @@ static int hisi_pa_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_pa_pmu_remove(struct platform_device *pdev)
+static void hisi_pa_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *pa_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&pa_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_PA_ONLINE,
 					    &pa_pmu->node);
-	return 0;
 }
 
 static const struct acpi_device_id hisi_pa_pmu_acpi_match[] = {
@@ -539,7 +538,7 @@ static struct platform_driver hisi_pa_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_pa_pmu_probe,
-	.remove = hisi_pa_pmu_remove,
+	.remove_new = hisi_pa_pmu_remove,
 };
 
 static int __init hisi_pa_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c b/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
index e706ca567676..765bbd61db26 100644
--- a/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
@@ -460,14 +460,13 @@ static int hisi_sllc_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_sllc_pmu_remove(struct platform_device *pdev)
+static void hisi_sllc_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *sllc_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&sllc_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE,
 					    &sllc_pmu->node);
-	return 0;
 }
 
 static struct platform_driver hisi_sllc_pmu_driver = {
@@ -477,7 +476,7 @@ static struct platform_driver hisi_sllc_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_sllc_pmu_probe,
-	.remove = hisi_sllc_pmu_remove,
+	.remove_new = hisi_sllc_pmu_remove,
 };
 
 static int __init hisi_sllc_pmu_module_init(void)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 13/18] perf: hisilicon: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Yicong Yang, Jonathan Cameron, linux-arm-kernel, linux-kernel

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() will be renamed to .remove().

Trivially convert these drivers from always returning zero in the remove
callback to the void returning variant.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c  | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_pa_pmu.c   | 5 ++---
 drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 5 ++---
 6 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c b/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
index 40f1bc9f9b91..0e923f94fa5b 100644
--- a/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
@@ -341,7 +341,7 @@ static int hisi_cpa_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_cpa_pmu_remove(struct platform_device *pdev)
+static void hisi_cpa_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *cpa_pmu = platform_get_drvdata(pdev);
 
@@ -349,7 +349,6 @@ static int hisi_cpa_pmu_remove(struct platform_device *pdev)
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE,
 					    &cpa_pmu->node);
 	hisi_cpa_pmu_enable_pm(cpa_pmu);
-	return 0;
 }
 
 static struct platform_driver hisi_cpa_pmu_driver = {
@@ -359,7 +358,7 @@ static struct platform_driver hisi_cpa_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_cpa_pmu_probe,
-	.remove = hisi_cpa_pmu_remove,
+	.remove_new = hisi_cpa_pmu_remove,
 };
 
 static int __init hisi_cpa_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
index ffb039d05d07..b804e3738113 100644
--- a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
@@ -531,14 +531,13 @@ static int hisi_ddrc_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_ddrc_pmu_remove(struct platform_device *pdev)
+static void hisi_ddrc_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *ddrc_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&ddrc_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE,
 					    &ddrc_pmu->node);
-	return 0;
 }
 
 static struct platform_driver hisi_ddrc_pmu_driver = {
@@ -548,7 +547,7 @@ static struct platform_driver hisi_ddrc_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_ddrc_pmu_probe,
-	.remove = hisi_ddrc_pmu_remove,
+	.remove_new = hisi_ddrc_pmu_remove,
 };
 
 static int __init hisi_ddrc_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c b/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
index 15caf99e1eef..21e69b1cdd4d 100644
--- a/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
@@ -534,14 +534,13 @@ static int hisi_hha_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_hha_pmu_remove(struct platform_device *pdev)
+static void hisi_hha_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *hha_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&hha_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE,
 					    &hha_pmu->node);
-	return 0;
 }
 
 static struct platform_driver hisi_hha_pmu_driver = {
@@ -551,7 +550,7 @@ static struct platform_driver hisi_hha_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_hha_pmu_probe,
-	.remove = hisi_hha_pmu_remove,
+	.remove_new = hisi_hha_pmu_remove,
 };
 
 static int __init hisi_hha_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c b/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
index 794dbcd19b7a..51ba76871097 100644
--- a/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
@@ -568,14 +568,13 @@ static int hisi_l3c_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_l3c_pmu_remove(struct platform_device *pdev)
+static void hisi_l3c_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *l3c_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&l3c_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_L3_ONLINE,
 					    &l3c_pmu->node);
-	return 0;
 }
 
 static struct platform_driver hisi_l3c_pmu_driver = {
@@ -585,7 +584,7 @@ static struct platform_driver hisi_l3c_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_l3c_pmu_probe,
-	.remove = hisi_l3c_pmu_remove,
+	.remove_new = hisi_l3c_pmu_remove,
 };
 
 static int __init hisi_l3c_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
index 797cf201996a..3cdb35c741f9 100644
--- a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
@@ -514,14 +514,13 @@ static int hisi_pa_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_pa_pmu_remove(struct platform_device *pdev)
+static void hisi_pa_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *pa_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&pa_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_PA_ONLINE,
 					    &pa_pmu->node);
-	return 0;
 }
 
 static const struct acpi_device_id hisi_pa_pmu_acpi_match[] = {
@@ -539,7 +538,7 @@ static struct platform_driver hisi_pa_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_pa_pmu_probe,
-	.remove = hisi_pa_pmu_remove,
+	.remove_new = hisi_pa_pmu_remove,
 };
 
 static int __init hisi_pa_pmu_module_init(void)
diff --git a/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c b/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
index e706ca567676..765bbd61db26 100644
--- a/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
@@ -460,14 +460,13 @@ static int hisi_sllc_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int hisi_sllc_pmu_remove(struct platform_device *pdev)
+static void hisi_sllc_pmu_remove(struct platform_device *pdev)
 {
 	struct hisi_pmu *sllc_pmu = platform_get_drvdata(pdev);
 
 	perf_pmu_unregister(&sllc_pmu->pmu);
 	cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE,
 					    &sllc_pmu->node);
-	return 0;
 }
 
 static struct platform_driver hisi_sllc_pmu_driver = {
@@ -477,7 +476,7 @@ static struct platform_driver hisi_sllc_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = hisi_sllc_pmu_probe,
-	.remove = hisi_sllc_pmu_remove,
+	.remove_new = hisi_sllc_pmu_remove,
 };
 
 static int __init hisi_sllc_pmu_module_init(void)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 14/18] perf: marvell_cn10k_ddr: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/marvell_cn10k_ddr_pmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/marvell_cn10k_ddr_pmu.c b/drivers/perf/marvell_cn10k_ddr_pmu.c
index 524ba82bfce2..e2abca188dbe 100644
--- a/drivers/perf/marvell_cn10k_ddr_pmu.c
+++ b/drivers/perf/marvell_cn10k_ddr_pmu.c
@@ -697,7 +697,7 @@ static int cn10k_ddr_perf_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int cn10k_ddr_perf_remove(struct platform_device *pdev)
+static void cn10k_ddr_perf_remove(struct platform_device *pdev)
 {
 	struct cn10k_ddr_pmu *ddr_pmu = platform_get_drvdata(pdev);
 
@@ -706,7 +706,6 @@ static int cn10k_ddr_perf_remove(struct platform_device *pdev)
 				&ddr_pmu->node);
 
 	perf_pmu_unregister(&ddr_pmu->pmu);
-	return 0;
 }
 
 #ifdef CONFIG_OF
@@ -733,7 +732,7 @@ static struct platform_driver cn10k_ddr_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe		= cn10k_ddr_perf_probe,
-	.remove		= cn10k_ddr_perf_remove,
+	.remove_new	= cn10k_ddr_perf_remove,
 };
 
 static int __init cn10k_ddr_pmu_init(void)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 14/18] perf: marvell_cn10k_ddr: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/marvell_cn10k_ddr_pmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/marvell_cn10k_ddr_pmu.c b/drivers/perf/marvell_cn10k_ddr_pmu.c
index 524ba82bfce2..e2abca188dbe 100644
--- a/drivers/perf/marvell_cn10k_ddr_pmu.c
+++ b/drivers/perf/marvell_cn10k_ddr_pmu.c
@@ -697,7 +697,7 @@ static int cn10k_ddr_perf_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int cn10k_ddr_perf_remove(struct platform_device *pdev)
+static void cn10k_ddr_perf_remove(struct platform_device *pdev)
 {
 	struct cn10k_ddr_pmu *ddr_pmu = platform_get_drvdata(pdev);
 
@@ -706,7 +706,6 @@ static int cn10k_ddr_perf_remove(struct platform_device *pdev)
 				&ddr_pmu->node);
 
 	perf_pmu_unregister(&ddr_pmu->pmu);
-	return 0;
 }
 
 #ifdef CONFIG_OF
@@ -733,7 +732,7 @@ static struct platform_driver cn10k_ddr_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe		= cn10k_ddr_perf_probe,
-	.remove		= cn10k_ddr_perf_remove,
+	.remove_new	= cn10k_ddr_perf_remove,
 };
 
 static int __init cn10k_ddr_pmu_init(void)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 15/18] perf: marvell_cn10k_tad: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/marvell_cn10k_tad_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/marvell_cn10k_tad_pmu.c b/drivers/perf/marvell_cn10k_tad_pmu.c
index fec8e82edb95..9e635f355470 100644
--- a/drivers/perf/marvell_cn10k_tad_pmu.c
+++ b/drivers/perf/marvell_cn10k_tad_pmu.c
@@ -351,15 +351,13 @@ static int tad_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int tad_pmu_remove(struct platform_device *pdev)
+static void tad_pmu_remove(struct platform_device *pdev)
 {
 	struct tad_pmu *pmu = platform_get_drvdata(pdev);
 
 	cpuhp_state_remove_instance_nocalls(tad_pmu_cpuhp_state,
 						&pmu->node);
 	perf_pmu_unregister(&pmu->pmu);
-
-	return 0;
 }
 
 #ifdef CONFIG_OF
@@ -385,7 +383,7 @@ static struct platform_driver tad_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe          = tad_pmu_probe,
-	.remove         = tad_pmu_remove,
+	.remove_new     = tad_pmu_remove,
 };
 
 static int tad_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 15/18] perf: marvell_cn10k_tad: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/marvell_cn10k_tad_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/marvell_cn10k_tad_pmu.c b/drivers/perf/marvell_cn10k_tad_pmu.c
index fec8e82edb95..9e635f355470 100644
--- a/drivers/perf/marvell_cn10k_tad_pmu.c
+++ b/drivers/perf/marvell_cn10k_tad_pmu.c
@@ -351,15 +351,13 @@ static int tad_pmu_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int tad_pmu_remove(struct platform_device *pdev)
+static void tad_pmu_remove(struct platform_device *pdev)
 {
 	struct tad_pmu *pmu = platform_get_drvdata(pdev);
 
 	cpuhp_state_remove_instance_nocalls(tad_pmu_cpuhp_state,
 						&pmu->node);
 	perf_pmu_unregister(&pmu->pmu);
-
-	return 0;
 }
 
 #ifdef CONFIG_OF
@@ -385,7 +383,7 @@ static struct platform_driver tad_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe          = tad_pmu_probe,
-	.remove         = tad_pmu_remove,
+	.remove_new     = tad_pmu_remove,
 };
 
 static int tad_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 16/18] perf: qcom_l2: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio, linux-arm-msm,
	linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/qcom_l2_pmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/qcom_l2_pmu.c b/drivers/perf/qcom_l2_pmu.c
index 3f9a98c17a89..148df5ae8ef8 100644
--- a/drivers/perf/qcom_l2_pmu.c
+++ b/drivers/perf/qcom_l2_pmu.c
@@ -965,7 +965,7 @@ static int l2_cache_pmu_probe(struct platform_device *pdev)
 	return err;
 }
 
-static int l2_cache_pmu_remove(struct platform_device *pdev)
+static void l2_cache_pmu_remove(struct platform_device *pdev)
 {
 	struct l2cache_pmu *l2cache_pmu =
 		to_l2cache_pmu(platform_get_drvdata(pdev));
@@ -973,7 +973,6 @@ static int l2_cache_pmu_remove(struct platform_device *pdev)
 	perf_pmu_unregister(&l2cache_pmu->pmu);
 	cpuhp_state_remove_instance(CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE,
 				    &l2cache_pmu->node);
-	return 0;
 }
 
 static struct platform_driver l2_cache_pmu_driver = {
@@ -983,7 +982,7 @@ static struct platform_driver l2_cache_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = l2_cache_pmu_probe,
-	.remove = l2_cache_pmu_remove,
+	.remove_new = l2_cache_pmu_remove,
 };
 
 static int __init register_l2_cache_pmu_driver(void)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 16/18] perf: qcom_l2: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Andy Gross, Bjorn Andersson, Konrad Dybcio, linux-arm-msm,
	linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/qcom_l2_pmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/qcom_l2_pmu.c b/drivers/perf/qcom_l2_pmu.c
index 3f9a98c17a89..148df5ae8ef8 100644
--- a/drivers/perf/qcom_l2_pmu.c
+++ b/drivers/perf/qcom_l2_pmu.c
@@ -965,7 +965,7 @@ static int l2_cache_pmu_probe(struct platform_device *pdev)
 	return err;
 }
 
-static int l2_cache_pmu_remove(struct platform_device *pdev)
+static void l2_cache_pmu_remove(struct platform_device *pdev)
 {
 	struct l2cache_pmu *l2cache_pmu =
 		to_l2cache_pmu(platform_get_drvdata(pdev));
@@ -973,7 +973,6 @@ static int l2_cache_pmu_remove(struct platform_device *pdev)
 	perf_pmu_unregister(&l2cache_pmu->pmu);
 	cpuhp_state_remove_instance(CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE,
 				    &l2cache_pmu->node);
-	return 0;
 }
 
 static struct platform_driver l2_cache_pmu_driver = {
@@ -983,7 +982,7 @@ static struct platform_driver l2_cache_pmu_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = l2_cache_pmu_probe,
-	.remove = l2_cache_pmu_remove,
+	.remove_new = l2_cache_pmu_remove,
 };
 
 static int __init register_l2_cache_pmu_driver(void)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 17/18] perf: thunderx2: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/thunderx2_pmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/thunderx2_pmu.c b/drivers/perf/thunderx2_pmu.c
index 1edb9c03704f..e16d10c763de 100644
--- a/drivers/perf/thunderx2_pmu.c
+++ b/drivers/perf/thunderx2_pmu.c
@@ -993,7 +993,7 @@ static int tx2_uncore_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int tx2_uncore_remove(struct platform_device *pdev)
+static void tx2_uncore_remove(struct platform_device *pdev)
 {
 	struct tx2_uncore_pmu *tx2_pmu, *temp;
 	struct device *dev = &pdev->dev;
@@ -1009,7 +1009,6 @@ static int tx2_uncore_remove(struct platform_device *pdev)
 			}
 		}
 	}
-	return 0;
 }
 
 static struct platform_driver tx2_uncore_driver = {
@@ -1019,7 +1018,7 @@ static struct platform_driver tx2_uncore_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = tx2_uncore_probe,
-	.remove = tx2_uncore_remove,
+	.remove_new = tx2_uncore_remove,
 };
 
 static int __init tx2_uncore_driver_init(void)
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 17/18] perf: thunderx2: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/thunderx2_pmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/perf/thunderx2_pmu.c b/drivers/perf/thunderx2_pmu.c
index 1edb9c03704f..e16d10c763de 100644
--- a/drivers/perf/thunderx2_pmu.c
+++ b/drivers/perf/thunderx2_pmu.c
@@ -993,7 +993,7 @@ static int tx2_uncore_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int tx2_uncore_remove(struct platform_device *pdev)
+static void tx2_uncore_remove(struct platform_device *pdev)
 {
 	struct tx2_uncore_pmu *tx2_pmu, *temp;
 	struct device *dev = &pdev->dev;
@@ -1009,7 +1009,6 @@ static int tx2_uncore_remove(struct platform_device *pdev)
 			}
 		}
 	}
-	return 0;
 }
 
 static struct platform_driver tx2_uncore_driver = {
@@ -1019,7 +1018,7 @@ static struct platform_driver tx2_uncore_driver = {
 		.suppress_bind_attrs = true,
 	},
 	.probe = tx2_uncore_probe,
-	.remove = tx2_uncore_remove,
+	.remove_new = tx2_uncore_remove,
 };
 
 static int __init tx2_uncore_driver_init(void)
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 18/18] perf: xgene: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
@ 2023-12-15 13:59   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: Khuong Dinh, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/xgene_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
index 7ce344248dda..0d49343d704b 100644
--- a/drivers/perf/xgene_pmu.c
+++ b/drivers/perf/xgene_pmu.c
@@ -1937,7 +1937,7 @@ xgene_pmu_dev_cleanup(struct xgene_pmu *xgene_pmu, struct list_head *pmus)
 	}
 }
 
-static int xgene_pmu_remove(struct platform_device *pdev)
+static void xgene_pmu_remove(struct platform_device *pdev)
 {
 	struct xgene_pmu *xgene_pmu = dev_get_drvdata(&pdev->dev);
 
@@ -1947,13 +1947,11 @@ static int xgene_pmu_remove(struct platform_device *pdev)
 	xgene_pmu_dev_cleanup(xgene_pmu, &xgene_pmu->mcpmus);
 	cpuhp_state_remove_instance(CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE,
 				    &xgene_pmu->node);
-
-	return 0;
 }
 
 static struct platform_driver xgene_pmu_driver = {
 	.probe = xgene_pmu_probe,
-	.remove = xgene_pmu_remove,
+	.remove_new = xgene_pmu_remove,
 	.driver = {
 		.name		= "xgene-pmu",
 		.of_match_table = xgene_pmu_of_match,
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 54+ messages in thread

* [PATCH 18/18] perf: xgene: Convert to platform remove callback returning void
@ 2023-12-15 13:59   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2023-12-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland; +Cc: Khuong Dinh, linux-arm-kernel, linux-kernel

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() will be 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 <u.kleine-koenig@pengutronix.de>
---
 drivers/perf/xgene_pmu.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
index 7ce344248dda..0d49343d704b 100644
--- a/drivers/perf/xgene_pmu.c
+++ b/drivers/perf/xgene_pmu.c
@@ -1937,7 +1937,7 @@ xgene_pmu_dev_cleanup(struct xgene_pmu *xgene_pmu, struct list_head *pmus)
 	}
 }
 
-static int xgene_pmu_remove(struct platform_device *pdev)
+static void xgene_pmu_remove(struct platform_device *pdev)
 {
 	struct xgene_pmu *xgene_pmu = dev_get_drvdata(&pdev->dev);
 
@@ -1947,13 +1947,11 @@ static int xgene_pmu_remove(struct platform_device *pdev)
 	xgene_pmu_dev_cleanup(xgene_pmu, &xgene_pmu->mcpmus);
 	cpuhp_state_remove_instance(CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE,
 				    &xgene_pmu->node);
-
-	return 0;
 }
 
 static struct platform_driver xgene_pmu_driver = {
 	.probe = xgene_pmu_probe,
-	.remove = xgene_pmu_remove,
+	.remove_new = xgene_pmu_remove,
 	.driver = {
 		.name		= "xgene-pmu",
 		.of_match_table = xgene_pmu_of_match,
-- 
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 54+ messages in thread

* Re: [PATCH 16/18] perf: qcom_l2: Convert to platform remove callback returning void
  2023-12-15 13:59   ` Uwe Kleine-König
@ 2023-12-15 23:30     ` Konrad Dybcio
  -1 siblings, 0 replies; 54+ messages in thread
From: Konrad Dybcio @ 2023-12-15 23:30 UTC (permalink / raw)
  To: Uwe Kleine-König, Will Deacon, Mark Rutland
  Cc: Andy Gross, Bjorn Andersson, linux-arm-msm, linux-arm-kernel,
	linux-kernel

On 15.12.2023 14:59, Uwe Kleine-König wrote:
> 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() will be 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 <u.kleine-koenig@pengutronix.de>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 16/18] perf: qcom_l2: Convert to platform remove callback returning void
@ 2023-12-15 23:30     ` Konrad Dybcio
  0 siblings, 0 replies; 54+ messages in thread
From: Konrad Dybcio @ 2023-12-15 23:30 UTC (permalink / raw)
  To: Uwe Kleine-König, Will Deacon, Mark Rutland
  Cc: Andy Gross, Bjorn Andersson, linux-arm-msm, linux-arm-kernel,
	linux-kernel

On 15.12.2023 14:59, Uwe Kleine-König wrote:
> 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() will be 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 <u.kleine-koenig@pengutronix.de>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
  (?)
@ 2024-01-10  8:56   ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2024-01-10  8:56 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Raag Jadav, Yicong Yang, Ilkka Koskinen, Fabio Estevam,
	Jerome Brunet, Khuong Dinh, Kevin Hilman, Andy Gross,
	NXP Linux Team, linux-arm-msm, Suzuki K Poulose,
	Martin Blumenstingl, Frank Li, Sascha Hauer, Besar Wicaksono,
	Jonathan Cameron, linux-amlogic, linux-arm-kernel,
	Neil Armstrong, Jiucheng Xu, Robin Murphy, Bjorn Andersson,
	linux-kernel, Konrad Dybcio, Shuai Xue, Pengutronix Kernel Team,
	Shawn Guo

[-- Attachment #1: Type: text/plain, Size: 1208 bytes --]

Hello,

On Fri, Dec 15, 2023 at 02:59:00PM +0100, Uwe Kleine-König wrote:
> this series converts all drivers below drivers/perf to use
> .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> callback that returns no value") for an extended explanation and the
> eventual goal. The TL;DR; is to make it harder for driver authors to
> leak resources without noticing.
> 
> I based the patches on today's next, I had to revert commits 
> 3115ee021bfb ("arm64: perf: Include threshold control fields in
> PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> counting threshold") to compile test on ARCH=arm (this is a problem in
> next, not in my patch series).
> 
> This is merge window material. All patches are pairwise independent of
> each other so they can be applied individually. Still it would be great
> to let them go in all together.

I wonder if this series is still on someone's radar. It didn't appear in
next up to now, so I guess it's too late for 6.8-rc1?!

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2024-01-10  8:56   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2024-01-10  8:56 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Raag Jadav, Yicong Yang, Ilkka Koskinen, Fabio Estevam,
	Jerome Brunet, Khuong Dinh, Kevin Hilman, Andy Gross,
	NXP Linux Team, linux-arm-msm, Suzuki K Poulose,
	Martin Blumenstingl, Frank Li, Sascha Hauer, Besar Wicaksono,
	Jonathan Cameron, linux-amlogic, linux-arm-kernel,
	Neil Armstrong, Jiucheng Xu, Robin Murphy, Bjorn Andersson,
	linux-kernel, Konrad Dybcio, Shuai Xue, Pengutronix Kernel Team,
	Shawn Guo


[-- Attachment #1.1: Type: text/plain, Size: 1208 bytes --]

Hello,

On Fri, Dec 15, 2023 at 02:59:00PM +0100, Uwe Kleine-König wrote:
> this series converts all drivers below drivers/perf to use
> .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> callback that returns no value") for an extended explanation and the
> eventual goal. The TL;DR; is to make it harder for driver authors to
> leak resources without noticing.
> 
> I based the patches on today's next, I had to revert commits 
> 3115ee021bfb ("arm64: perf: Include threshold control fields in
> PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> counting threshold") to compile test on ARCH=arm (this is a problem in
> next, not in my patch series).
> 
> This is merge window material. All patches are pairwise independent of
> each other so they can be applied individually. Still it would be great
> to let them go in all together.

I wonder if this series is still on someone's radar. It didn't appear in
next up to now, so I guess it's too late for 6.8-rc1?!

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2024-01-10  8:56   ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2024-01-10  8:56 UTC (permalink / raw)
  To: Will Deacon, Mark Rutland
  Cc: Raag Jadav, Yicong Yang, Ilkka Koskinen, Fabio Estevam,
	Jerome Brunet, Khuong Dinh, Kevin Hilman, Andy Gross,
	NXP Linux Team, linux-arm-msm, Suzuki K Poulose,
	Martin Blumenstingl, Frank Li, Sascha Hauer, Besar Wicaksono,
	Jonathan Cameron, linux-amlogic, linux-arm-kernel,
	Neil Armstrong, Jiucheng Xu, Robin Murphy, Bjorn Andersson,
	linux-kernel, Konrad Dybcio, Shuai Xue, Pengutronix Kernel Team,
	Shawn Guo


[-- Attachment #1.1: Type: text/plain, Size: 1208 bytes --]

Hello,

On Fri, Dec 15, 2023 at 02:59:00PM +0100, Uwe Kleine-König wrote:
> this series converts all drivers below drivers/perf to use
> .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> callback that returns no value") for an extended explanation and the
> eventual goal. The TL;DR; is to make it harder for driver authors to
> leak resources without noticing.
> 
> I based the patches on today's next, I had to revert commits 
> 3115ee021bfb ("arm64: perf: Include threshold control fields in
> PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> counting threshold") to compile test on ARCH=arm (this is a problem in
> next, not in my patch series).
> 
> This is merge window material. All patches are pairwise independent of
> each other so they can be applied individually. Still it would be great
> to let them go in all together.

I wonder if this series is still on someone's radar. It didn't appear in
next up to now, so I guess it's too late for 6.8-rc1?!

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
  2024-01-10  8:56   ` Uwe Kleine-König
  (?)
@ 2024-01-12 13:50     ` Will Deacon
  -1 siblings, 0 replies; 54+ messages in thread
From: Will Deacon @ 2024-01-12 13:50 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Mark Rutland, Raag Jadav, Yicong Yang, Ilkka Koskinen,
	Fabio Estevam, Jerome Brunet, Khuong Dinh, Kevin Hilman,
	Andy Gross, NXP Linux Team, linux-arm-msm, Suzuki K Poulose,
	Martin Blumenstingl, Frank Li, Sascha Hauer, Besar Wicaksono,
	Jonathan Cameron, linux-amlogic, linux-arm-kernel,
	Neil Armstrong, Jiucheng Xu, Robin Murphy, Bjorn Andersson,
	linux-kernel, Konrad Dybcio, Shuai Xue, Pengutronix Kernel Team,
	Shawn Guo

Hi Uwe,

On Wed, Jan 10, 2024 at 09:56:26AM +0100, Uwe Kleine-König wrote:
> On Fri, Dec 15, 2023 at 02:59:00PM +0100, Uwe Kleine-König wrote:
> > this series converts all drivers below drivers/perf to use
> > .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> > callback that returns no value") for an extended explanation and the
> > eventual goal. The TL;DR; is to make it harder for driver authors to
> > leak resources without noticing.
> > 
> > I based the patches on today's next, I had to revert commits 
> > 3115ee021bfb ("arm64: perf: Include threshold control fields in
> > PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> > counting threshold") to compile test on ARCH=arm (this is a problem in
> > next, not in my patch series).
> > 
> > This is merge window material. All patches are pairwise independent of
> > each other so they can be applied individually. Still it would be great
> > to let them go in all together.
> 
> I wonder if this series is still on someone's radar. It didn't appear in
> next up to now, so I guess it's too late for 6.8-rc1?!

This came in during the holiday period so, by the time I saw it, it was
too late to land for this merge window. I can pick it up for 6.9 in a few
weeks, though. I usually start queueing stuff at -rc3.

Will

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2024-01-12 13:50     ` Will Deacon
  0 siblings, 0 replies; 54+ messages in thread
From: Will Deacon @ 2024-01-12 13:50 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Mark Rutland, Raag Jadav, Yicong Yang, Ilkka Koskinen,
	Fabio Estevam, Jerome Brunet, Khuong Dinh, Kevin Hilman,
	Andy Gross, NXP Linux Team, linux-arm-msm, Suzuki K Poulose,
	Martin Blumenstingl, Frank Li, Sascha Hauer, Besar Wicaksono,
	Jonathan Cameron, linux-amlogic, linux-arm-kernel,
	Neil Armstrong, Jiucheng Xu, Robin Murphy, Bjorn Andersson,
	linux-kernel, Konrad Dybcio, Shuai Xue, Pengutronix Kernel Team,
	Shawn Guo

Hi Uwe,

On Wed, Jan 10, 2024 at 09:56:26AM +0100, Uwe Kleine-König wrote:
> On Fri, Dec 15, 2023 at 02:59:00PM +0100, Uwe Kleine-König wrote:
> > this series converts all drivers below drivers/perf to use
> > .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> > callback that returns no value") for an extended explanation and the
> > eventual goal. The TL;DR; is to make it harder for driver authors to
> > leak resources without noticing.
> > 
> > I based the patches on today's next, I had to revert commits 
> > 3115ee021bfb ("arm64: perf: Include threshold control fields in
> > PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> > counting threshold") to compile test on ARCH=arm (this is a problem in
> > next, not in my patch series).
> > 
> > This is merge window material. All patches are pairwise independent of
> > each other so they can be applied individually. Still it would be great
> > to let them go in all together.
> 
> I wonder if this series is still on someone's radar. It didn't appear in
> next up to now, so I guess it's too late for 6.8-rc1?!

This came in during the holiday period so, by the time I saw it, it was
too late to land for this merge window. I can pick it up for 6.9 in a few
weeks, though. I usually start queueing stuff at -rc3.

Will

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2024-01-12 13:50     ` Will Deacon
  0 siblings, 0 replies; 54+ messages in thread
From: Will Deacon @ 2024-01-12 13:50 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Mark Rutland, Raag Jadav, Yicong Yang, Ilkka Koskinen,
	Fabio Estevam, Jerome Brunet, Khuong Dinh, Kevin Hilman,
	Andy Gross, NXP Linux Team, linux-arm-msm, Suzuki K Poulose,
	Martin Blumenstingl, Frank Li, Sascha Hauer, Besar Wicaksono,
	Jonathan Cameron, linux-amlogic, linux-arm-kernel,
	Neil Armstrong, Jiucheng Xu, Robin Murphy, Bjorn Andersson,
	linux-kernel, Konrad Dybcio, Shuai Xue, Pengutronix Kernel Team,
	Shawn Guo

Hi Uwe,

On Wed, Jan 10, 2024 at 09:56:26AM +0100, Uwe Kleine-König wrote:
> On Fri, Dec 15, 2023 at 02:59:00PM +0100, Uwe Kleine-König wrote:
> > this series converts all drivers below drivers/perf to use
> > .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> > callback that returns no value") for an extended explanation and the
> > eventual goal. The TL;DR; is to make it harder for driver authors to
> > leak resources without noticing.
> > 
> > I based the patches on today's next, I had to revert commits 
> > 3115ee021bfb ("arm64: perf: Include threshold control fields in
> > PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> > counting threshold") to compile test on ARCH=arm (this is a problem in
> > next, not in my patch series).
> > 
> > This is merge window material. All patches are pairwise independent of
> > each other so they can be applied individually. Still it would be great
> > to let them go in all together.
> 
> I wonder if this series is still on someone's radar. It didn't appear in
> next up to now, so I guess it's too late for 6.8-rc1?!

This came in during the holiday period so, by the time I saw it, it was
too late to land for this merge window. I can pick it up for 6.9 in a few
weeks, though. I usually start queueing stuff at -rc3.

Will

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
  2024-01-12 13:50     ` Will Deacon
  (?)
@ 2024-01-12 18:53       ` Uwe Kleine-König
  -1 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2024-01-12 18:53 UTC (permalink / raw)
  To: Will Deacon
  Cc: Mark Rutland, Raag Jadav, Yicong Yang, Ilkka Koskinen,
	Fabio Estevam, Jerome Brunet, Khuong Dinh, Kevin Hilman,
	Andy Gross, NXP Linux Team, linux-arm-msm, Suzuki K Poulose,
	Martin Blumenstingl, Frank Li, Sascha Hauer, Besar Wicaksono,
	Jonathan Cameron, linux-amlogic, linux-arm-kernel,
	Neil Armstrong, Jiucheng Xu, Shawn Guo, Bjorn Andersson,
	linux-kernel, Konrad Dybcio, Shuai Xue, Pengutronix Kernel Team,
	Robin Murphy


[-- Attachment #1.1: Type: text/plain, Size: 1785 bytes --]

Hey Will,

On Fri, Jan 12, 2024 at 01:50:09PM +0000, Will Deacon wrote:
> On Wed, Jan 10, 2024 at 09:56:26AM +0100, Uwe Kleine-König wrote:
> > On Fri, Dec 15, 2023 at 02:59:00PM +0100, Uwe Kleine-König wrote:
> > > this series converts all drivers below drivers/perf to use
> > > .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> > > callback that returns no value") for an extended explanation and the
> > > eventual goal. The TL;DR; is to make it harder for driver authors to
> > > leak resources without noticing.
> > > 
> > > I based the patches on today's next, I had to revert commits 
> > > 3115ee021bfb ("arm64: perf: Include threshold control fields in
> > > PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> > > counting threshold") to compile test on ARCH=arm (this is a problem in
> > > next, not in my patch series).
> > > 
> > > This is merge window material. All patches are pairwise independent of
> > > each other so they can be applied individually. Still it would be great
> > > to let them go in all together.
> > 
> > I wonder if this series is still on someone's radar. It didn't appear in
> > next up to now, so I guess it's too late for 6.8-rc1?!
> 
> This came in during the holiday period so, by the time I saw it, it was
> too late to land for this merge window. I can pick it up for 6.9 in a few
> weeks, though. I usually start queueing stuff at -rc3.

If it's not lost I'm happy. There are still quite a few more such
changes necessary for other subsystems, so no time pressure from my
side; 6.9 is great.

Cheers
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2024-01-12 18:53       ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2024-01-12 18:53 UTC (permalink / raw)
  To: Will Deacon
  Cc: Mark Rutland, Raag Jadav, Yicong Yang, Ilkka Koskinen,
	Fabio Estevam, Jerome Brunet, Khuong Dinh, Kevin Hilman,
	Andy Gross, NXP Linux Team, linux-arm-msm, Suzuki K Poulose,
	Martin Blumenstingl, Frank Li, Sascha Hauer, Besar Wicaksono,
	Jonathan Cameron, linux-amlogic, linux-arm-kernel,
	Neil Armstrong, Jiucheng Xu, Shawn Guo, Bjorn Andersson,
	linux-kernel, Konrad Dybcio, Shuai Xue, Pengutronix Kernel Team,
	Robin Murphy


[-- Attachment #1.1: Type: text/plain, Size: 1785 bytes --]

Hey Will,

On Fri, Jan 12, 2024 at 01:50:09PM +0000, Will Deacon wrote:
> On Wed, Jan 10, 2024 at 09:56:26AM +0100, Uwe Kleine-König wrote:
> > On Fri, Dec 15, 2023 at 02:59:00PM +0100, Uwe Kleine-König wrote:
> > > this series converts all drivers below drivers/perf to use
> > > .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> > > callback that returns no value") for an extended explanation and the
> > > eventual goal. The TL;DR; is to make it harder for driver authors to
> > > leak resources without noticing.
> > > 
> > > I based the patches on today's next, I had to revert commits 
> > > 3115ee021bfb ("arm64: perf: Include threshold control fields in
> > > PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> > > counting threshold") to compile test on ARCH=arm (this is a problem in
> > > next, not in my patch series).
> > > 
> > > This is merge window material. All patches are pairwise independent of
> > > each other so they can be applied individually. Still it would be great
> > > to let them go in all together.
> > 
> > I wonder if this series is still on someone's radar. It didn't appear in
> > next up to now, so I guess it's too late for 6.8-rc1?!
> 
> This came in during the holiday period so, by the time I saw it, it was
> too late to land for this merge window. I can pick it up for 6.9 in a few
> weeks, though. I usually start queueing stuff at -rc3.

If it's not lost I'm happy. There are still quite a few more such
changes necessary for other subsystems, so no time pressure from my
side; 6.9 is great.

Cheers
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 167 bytes --]

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2024-01-12 18:53       ` Uwe Kleine-König
  0 siblings, 0 replies; 54+ messages in thread
From: Uwe Kleine-König @ 2024-01-12 18:53 UTC (permalink / raw)
  To: Will Deacon
  Cc: Mark Rutland, Raag Jadav, Yicong Yang, Ilkka Koskinen,
	Fabio Estevam, Jerome Brunet, Khuong Dinh, Kevin Hilman,
	Andy Gross, NXP Linux Team, linux-arm-msm, Suzuki K Poulose,
	Martin Blumenstingl, Frank Li, Sascha Hauer, Besar Wicaksono,
	Jonathan Cameron, linux-amlogic, linux-arm-kernel,
	Neil Armstrong, Jiucheng Xu, Shawn Guo, Bjorn Andersson,
	linux-kernel, Konrad Dybcio, Shuai Xue, Pengutronix Kernel Team,
	Robin Murphy

[-- Attachment #1: Type: text/plain, Size: 1785 bytes --]

Hey Will,

On Fri, Jan 12, 2024 at 01:50:09PM +0000, Will Deacon wrote:
> On Wed, Jan 10, 2024 at 09:56:26AM +0100, Uwe Kleine-König wrote:
> > On Fri, Dec 15, 2023 at 02:59:00PM +0100, Uwe Kleine-König wrote:
> > > this series converts all drivers below drivers/perf to use
> > > .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> > > callback that returns no value") for an extended explanation and the
> > > eventual goal. The TL;DR; is to make it harder for driver authors to
> > > leak resources without noticing.
> > > 
> > > I based the patches on today's next, I had to revert commits 
> > > 3115ee021bfb ("arm64: perf: Include threshold control fields in
> > > PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> > > counting threshold") to compile test on ARCH=arm (this is a problem in
> > > next, not in my patch series).
> > > 
> > > This is merge window material. All patches are pairwise independent of
> > > each other so they can be applied individually. Still it would be great
> > > to let them go in all together.
> > 
> > I wonder if this series is still on someone's radar. It didn't appear in
> > next up to now, so I guess it's too late for 6.8-rc1?!
> 
> This came in during the holiday period so, by the time I saw it, it was
> too late to land for this merge window. I can pick it up for 6.9 in a few
> weeks, though. I usually start queueing stuff at -rc3.

If it's not lost I'm happy. There are still quite a few more such
changes necessary for other subsystems, so no time pressure from my
side; 6.9 is great.

Cheers
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
  2023-12-15 13:59 ` Uwe Kleine-König
  (?)
@ 2024-02-09 18:31   ` Will Deacon
  -1 siblings, 0 replies; 54+ messages in thread
From: Will Deacon @ 2024-02-09 18:31 UTC (permalink / raw)
  To: Uwe Kleine-König, Mark Rutland
  Cc: catalin.marinas, kernel-team, Will Deacon, Jerome Brunet,
	Shawn Guo, Jonathan Cameron, Ilkka Koskinen, Kevin Hilman,
	Bjorn Andersson, Andy Gross, Jiucheng Xu, Khuong Dinh,
	Raag Jadav, Martin Blumenstingl, linux-amlogic, linux-arm-msm,
	Neil Armstrong, Shuai Xue, Frank Li, Robin Murphy, linux-kernel,
	Yicong Yang, Suzuki K Poulose, Konrad Dybcio, Fabio Estevam,
	Besar Wicaksono, linux-arm-kernel, NXP Linux Team, Sascha Hauer,
	Pengutronix Kernel Team

On Fri, 15 Dec 2023 14:59:00 +0100, Uwe Kleine-König wrote:
> this series converts all drivers below drivers/perf to use
> .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> callback that returns no value") for an extended explanation and the
> eventual goal. The TL;DR; is to make it harder for driver authors to
> leak resources without noticing.
> 
> I based the patches on today's next, I had to revert commits
> 3115ee021bfb ("arm64: perf: Include threshold control fields in
> PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> counting threshold") to compile test on ARCH=arm (this is a problem in
> next, not in my patch series).
> 
> [...]

Applied to will (for-next/perf), thanks!

[01/18] perf: alibaba_uncore_drw: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/3bc9d71775ee
[02/18] perf: amlogic: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/94843f269abd
[03/18] perf: arm-cci: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/4df3bddf8707
[04/18] perf: arm-ccn: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/0767f1a48532
[05/18] perf: arm-cmn: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/3909cb3b5f8d
[06/18] perf: arm_cspmu: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/79dc1570b322
[07/18] perf: arm_dmc620: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/ca1e01c8d34a
[08/18] perf: arm_dsu: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/02d77ac1ac7e
[09/18] perf: arm_smmuv3: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/d67c3a61f063
[10/18] perf: arm_spe: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/e63b3aef186b
[11/18] perf: fsl_imx8_ddr: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/1bb639382d3f
[12/18] perf: fsl_imx9_ddr: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/78da2a93b55b
[13/18] perf: hisilicon: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/e07486a832bb
[14/18] perf: marvell_cn10k_ddr: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/c802bd9e354f
[15/18] perf: marvell_cn10k_tad: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/86e8963f9dba
[16/18] perf: qcom_l2: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/8a2e438e710c
[17/18] perf: thunderx2: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/d4c5cef73b25
[18/18] perf: xgene: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/b07ebe8f1428

Cheers,
-- 
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2024-02-09 18:31   ` Will Deacon
  0 siblings, 0 replies; 54+ messages in thread
From: Will Deacon @ 2024-02-09 18:31 UTC (permalink / raw)
  To: Uwe Kleine-König, Mark Rutland
  Cc: catalin.marinas, kernel-team, Will Deacon, Jerome Brunet,
	Shawn Guo, Jonathan Cameron, Ilkka Koskinen, Kevin Hilman,
	Bjorn Andersson, Andy Gross, Jiucheng Xu, Khuong Dinh,
	Raag Jadav, Martin Blumenstingl, linux-amlogic, linux-arm-msm,
	Neil Armstrong, Shuai Xue, Frank Li, Robin Murphy, linux-kernel,
	Yicong Yang, Suzuki K Poulose, Konrad Dybcio, Fabio Estevam,
	Besar Wicaksono, linux-arm-kernel, NXP Linux Team, Sascha Hauer,
	Pengutronix Kernel Team

On Fri, 15 Dec 2023 14:59:00 +0100, Uwe Kleine-König wrote:
> this series converts all drivers below drivers/perf to use
> .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> callback that returns no value") for an extended explanation and the
> eventual goal. The TL;DR; is to make it harder for driver authors to
> leak resources without noticing.
> 
> I based the patches on today's next, I had to revert commits
> 3115ee021bfb ("arm64: perf: Include threshold control fields in
> PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> counting threshold") to compile test on ARCH=arm (this is a problem in
> next, not in my patch series).
> 
> [...]

Applied to will (for-next/perf), thanks!

[01/18] perf: alibaba_uncore_drw: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/3bc9d71775ee
[02/18] perf: amlogic: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/94843f269abd
[03/18] perf: arm-cci: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/4df3bddf8707
[04/18] perf: arm-ccn: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/0767f1a48532
[05/18] perf: arm-cmn: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/3909cb3b5f8d
[06/18] perf: arm_cspmu: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/79dc1570b322
[07/18] perf: arm_dmc620: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/ca1e01c8d34a
[08/18] perf: arm_dsu: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/02d77ac1ac7e
[09/18] perf: arm_smmuv3: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/d67c3a61f063
[10/18] perf: arm_spe: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/e63b3aef186b
[11/18] perf: fsl_imx8_ddr: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/1bb639382d3f
[12/18] perf: fsl_imx9_ddr: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/78da2a93b55b
[13/18] perf: hisilicon: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/e07486a832bb
[14/18] perf: marvell_cn10k_ddr: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/c802bd9e354f
[15/18] perf: marvell_cn10k_tad: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/86e8963f9dba
[16/18] perf: qcom_l2: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/8a2e438e710c
[17/18] perf: thunderx2: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/d4c5cef73b25
[18/18] perf: xgene: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/b07ebe8f1428

Cheers,
-- 
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 54+ messages in thread

* Re: [PATCH 00/18] perf: Convert to platform remove callback returning void
@ 2024-02-09 18:31   ` Will Deacon
  0 siblings, 0 replies; 54+ messages in thread
From: Will Deacon @ 2024-02-09 18:31 UTC (permalink / raw)
  To: Uwe Kleine-König, Mark Rutland
  Cc: catalin.marinas, kernel-team, Will Deacon, Jerome Brunet,
	Shawn Guo, Jonathan Cameron, Ilkka Koskinen, Kevin Hilman,
	Bjorn Andersson, Andy Gross, Jiucheng Xu, Khuong Dinh,
	Raag Jadav, Martin Blumenstingl, linux-amlogic, linux-arm-msm,
	Neil Armstrong, Shuai Xue, Frank Li, Robin Murphy, linux-kernel,
	Yicong Yang, Suzuki K Poulose, Konrad Dybcio, Fabio Estevam,
	Besar Wicaksono, linux-arm-kernel, NXP Linux Team, Sascha Hauer,
	Pengutronix Kernel Team

On Fri, 15 Dec 2023 14:59:00 +0100, Uwe Kleine-König wrote:
> this series converts all drivers below drivers/perf to use
> .remove_new(). See commit 5c5a7680e67b ("platform: Provide a remove
> callback that returns no value") for an extended explanation and the
> eventual goal. The TL;DR; is to make it harder for driver authors to
> leak resources without noticing.
> 
> I based the patches on today's next, I had to revert commits
> 3115ee021bfb ("arm64: perf: Include threshold control fields in
> PMEVTYPER mask") and 816c26754447 ("arm64: perf: Add support for event
> counting threshold") to compile test on ARCH=arm (this is a problem in
> next, not in my patch series).
> 
> [...]

Applied to will (for-next/perf), thanks!

[01/18] perf: alibaba_uncore_drw: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/3bc9d71775ee
[02/18] perf: amlogic: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/94843f269abd
[03/18] perf: arm-cci: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/4df3bddf8707
[04/18] perf: arm-ccn: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/0767f1a48532
[05/18] perf: arm-cmn: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/3909cb3b5f8d
[06/18] perf: arm_cspmu: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/79dc1570b322
[07/18] perf: arm_dmc620: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/ca1e01c8d34a
[08/18] perf: arm_dsu: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/02d77ac1ac7e
[09/18] perf: arm_smmuv3: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/d67c3a61f063
[10/18] perf: arm_spe: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/e63b3aef186b
[11/18] perf: fsl_imx8_ddr: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/1bb639382d3f
[12/18] perf: fsl_imx9_ddr: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/78da2a93b55b
[13/18] perf: hisilicon: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/e07486a832bb
[14/18] perf: marvell_cn10k_ddr: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/c802bd9e354f
[15/18] perf: marvell_cn10k_tad: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/86e8963f9dba
[16/18] perf: qcom_l2: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/8a2e438e710c
[17/18] perf: thunderx2: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/d4c5cef73b25
[18/18] perf: xgene: Convert to platform remove callback returning void
        https://git.kernel.org/will/c/b07ebe8f1428

Cheers,
-- 
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

^ permalink raw reply	[flat|nested] 54+ messages in thread

end of thread, other threads:[~2024-02-09 18:32 UTC | newest]

Thread overview: 54+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-15 13:59 [PATCH 00/18] perf: Convert to platform remove callback returning void Uwe Kleine-König
2023-12-15 13:59 ` Uwe Kleine-König
2023-12-15 13:59 ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 01/18] perf: alibaba_uncore_drw: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 02/18] perf: amlogic: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 03/18] perf: arm-cci: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 04/18] perf: arm-ccn: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 05/18] perf: arm-cmn: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 06/18] perf: arm_cspmu: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 07/18] perf: arm_dmc620: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 08/18] perf: arm_dsu: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 09/18] perf: arm_smmuv3: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 10/18] perf: arm_spe: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 11/18] perf: fsl_imx8_ddr: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 12/18] perf: fsl_imx9_ddr: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 13/18] perf: hisilicon: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 14/18] perf: marvell_cn10k_ddr: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 15/18] perf: marvell_cn10k_tad: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 16/18] perf: qcom_l2: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 23:30   ` Konrad Dybcio
2023-12-15 23:30     ` Konrad Dybcio
2023-12-15 13:59 ` [PATCH 17/18] perf: thunderx2: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2023-12-15 13:59 ` [PATCH 18/18] perf: xgene: " Uwe Kleine-König
2023-12-15 13:59   ` Uwe Kleine-König
2024-01-10  8:56 ` [PATCH 00/18] perf: " Uwe Kleine-König
2024-01-10  8:56   ` Uwe Kleine-König
2024-01-10  8:56   ` Uwe Kleine-König
2024-01-12 13:50   ` Will Deacon
2024-01-12 13:50     ` Will Deacon
2024-01-12 13:50     ` Will Deacon
2024-01-12 18:53     ` Uwe Kleine-König
2024-01-12 18:53       ` Uwe Kleine-König
2024-01-12 18:53       ` Uwe Kleine-König
2024-02-09 18:31 ` Will Deacon
2024-02-09 18:31   ` Will Deacon
2024-02-09 18:31   ` Will Deacon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.