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: rspi: fix controller deregistration

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

Fixes: 9e03d05eee4c ("spi: rcar: Use devm_spi_register_master()")
Cc: stable@vger.kernel.org # 3.14
Cc: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260410081757.503099-11-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Johan Hovold and committed by
Mark Brown
9944fa67 443e3a00

+8 -2
+8 -2
drivers/spi/spi-rspi.c
··· 1171 1171 { 1172 1172 struct rspi_data *rspi = platform_get_drvdata(pdev); 1173 1173 1174 + spi_controller_get(rspi->ctlr); 1175 + 1176 + spi_unregister_controller(rspi->ctlr); 1177 + 1174 1178 rspi_release_dma(rspi->ctlr); 1175 1179 pm_runtime_disable(&pdev->dev); 1180 + 1181 + spi_controller_put(rspi->ctlr); 1176 1182 } 1177 1183 1178 1184 static const struct spi_ops rspi_ops = { ··· 1382 1376 if (ret < 0) 1383 1377 dev_warn(&pdev->dev, "DMA not available, using PIO\n"); 1384 1378 1385 - ret = devm_spi_register_controller(&pdev->dev, ctlr); 1379 + ret = spi_register_controller(ctlr); 1386 1380 if (ret < 0) { 1387 - dev_err(&pdev->dev, "devm_spi_register_controller error.\n"); 1381 + dev_err(&pdev->dev, "failed to register controller\n"); 1388 1382 goto error3; 1389 1383 } 1390 1384