Skip to content

Commit 0df72db

Browse files
jhovoldgregkh
authored andcommitted
spi: sh-msiof: fix controller deregistration
commit 45170f6 upstream. Make sure to deregister the controller before releasing underlying resources like DMA during driver unbind. Fixes: 1bd6363 ("spi: sh-msiof: Use core message handling instead of spi-bitbang") Cc: stable@vger.kernel.org # 3.15 Cc: Geert Uytterhoeven <geert+renesas@linux-m68k.org> Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://patch.msgid.link/20260410081757.503099-14-johan@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent aee76c1 commit 0df72db

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

drivers/spi/spi-sh-msiof.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1290,9 +1290,9 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
12901290
if (ret < 0)
12911291
dev_warn(dev, "DMA not available, using PIO\n");
12921292

1293-
ret = devm_spi_register_controller(dev, ctlr);
1293+
ret = spi_register_controller(ctlr);
12941294
if (ret < 0) {
1295-
dev_err(dev, "devm_spi_register_controller error.\n");
1295+
dev_err(dev, "failed to register controller\n");
12961296
goto err2;
12971297
}
12981298

@@ -1310,8 +1310,14 @@ static void sh_msiof_spi_remove(struct platform_device *pdev)
13101310
{
13111311
struct sh_msiof_spi_priv *p = platform_get_drvdata(pdev);
13121312

1313+
spi_controller_get(p->ctlr);
1314+
1315+
spi_unregister_controller(p->ctlr);
1316+
13131317
sh_msiof_release_dma(p);
13141318
pm_runtime_disable(&pdev->dev);
1319+
1320+
spi_controller_put(p->ctlr);
13151321
}
13161322

13171323
static const struct platform_device_id spi_driver_ids[] = {

0 commit comments

Comments
 (0)