Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

spi: sh-msiof: fix controller deregistration

Make sure to deregister the controller before releasing underlying
resources like DMA during driver unbind.

Fixes: 1bd6363bc0c6 ("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>

authored by

Johan Hovold and committed by
Mark Brown
45170f67 e63982e6

+8 -2
+8 -2
drivers/spi/spi-sh-msiof.c
··· 1289 1289 if (ret < 0) 1290 1290 dev_warn(dev, "DMA not available, using PIO\n"); 1291 1291 1292 - ret = devm_spi_register_controller(dev, ctlr); 1292 + ret = spi_register_controller(ctlr); 1293 1293 if (ret < 0) { 1294 - dev_err(dev, "devm_spi_register_controller error.\n"); 1294 + dev_err(dev, "failed to register controller\n"); 1295 1295 goto err2; 1296 1296 } 1297 1297 ··· 1309 1309 { 1310 1310 struct sh_msiof_spi_priv *p = platform_get_drvdata(pdev); 1311 1311 1312 + spi_controller_get(p->ctlr); 1313 + 1314 + spi_unregister_controller(p->ctlr); 1315 + 1312 1316 sh_msiof_release_dma(p); 1313 1317 pm_runtime_disable(&pdev->dev); 1318 + 1319 + spi_controller_put(p->ctlr); 1314 1320 } 1315 1321 1316 1322 static const struct platform_device_id spi_driver_ids[] = {