[PATCH 5.15.y] spi: meson-spicc: Fix double-put in remove path

From: Wenshan Lan

Date: Thu May 07 2026 - 22:37:17 EST


From: Felix Gu <ustc.gu@xxxxxxxxx>

[ Upstream commit 63542bb402b7013171c9f621c28b609eda4dbf1f ]

meson_spicc_probe() registers the controller with
devm_spi_register_controller(), so teardown already drops the
controller reference via devm cleanup.

Calling spi_controller_put() again in meson_spicc_remove()
causes a double-put.

Fixes: 8311ee2164c5 ("spi: meson-spicc: fix memory leak in meson_spicc_remove")
Signed-off-by: Felix Gu <ustc.gu@xxxxxxxxx>
Reviewed-by: Johan Hovold <johan@xxxxxxxxxx>
Link: https://patch.msgid.link/20260322-rockchip-v1-1-fac3f0c6dad8@xxxxxxxxx
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
[ In v5.15, commit 68bf3288c7eb ("spi: meson-spicc: switch to use modern name")
has not been applied, so the driver still uses the legacy spicc->master field
and spi_master_put() API. The line to remove is spi_master_put(spicc->master)
rather than spi_controller_put(spicc->host) as in the upstream patch.
They are functionally identical. ]
Signed-off-by: Wenshan Lan <jetlan9@xxxxxxx>
---
drivers/spi/spi-meson-spicc.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/spi/spi-meson-spicc.c b/drivers/spi/spi-meson-spicc.c
index 6974a1c947aa..ae818e7df791 100644
--- a/drivers/spi/spi-meson-spicc.c
+++ b/drivers/spi/spi-meson-spicc.c
@@ -863,8 +863,6 @@ static int meson_spicc_remove(struct platform_device *pdev)
clk_disable_unprepare(spicc->core);
clk_disable_unprepare(spicc->pclk);

- spi_master_put(spicc->master);
-
return 0;
}

--
2.43.0