Skip to content

Commit 9b7abfe

Browse files
jhovoldbroonie
authored andcommitted
spi: fsl: fix controller deregistration
Make sure to deregister the controller before releasing underlying resources like DMA during driver unbind. Fixes: 4178b6b ("spi: fsl-(e)spi: migrate to using devm_ functions to simplify cleanup") Cc: stable@vger.kernel.org # 4.3 Cc: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://patch.msgid.link/20260410064749.496888-1-johan@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 485c900 commit 9b7abfe

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

drivers/spi/spi-fsl-spi.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ static struct spi_controller *fsl_spi_probe(struct device *dev,
614614

615615
mpc8xxx_spi_write_reg(&reg_base->mode, regval);
616616

617-
ret = devm_spi_register_controller(dev, host);
617+
ret = spi_register_controller(host);
618618
if (ret < 0)
619619
goto err_probe;
620620

@@ -705,7 +705,13 @@ static void of_fsl_spi_remove(struct platform_device *ofdev)
705705
struct spi_controller *host = platform_get_drvdata(ofdev);
706706
struct mpc8xxx_spi *mpc8xxx_spi = spi_controller_get_devdata(host);
707707

708+
spi_controller_get(host);
709+
710+
spi_unregister_controller(host);
711+
708712
fsl_spi_cpm_free(mpc8xxx_spi);
713+
714+
spi_controller_put(host);
709715
}
710716

711717
static struct platform_driver of_fsl_spi_driver = {
@@ -751,7 +757,13 @@ static void plat_mpc8xxx_spi_remove(struct platform_device *pdev)
751757
struct spi_controller *host = platform_get_drvdata(pdev);
752758
struct mpc8xxx_spi *mpc8xxx_spi = spi_controller_get_devdata(host);
753759

760+
spi_controller_get(host);
761+
762+
spi_unregister_controller(host);
763+
754764
fsl_spi_cpm_free(mpc8xxx_spi);
765+
766+
spi_controller_put(host);
755767
}
756768

757769
MODULE_ALIAS("platform:mpc8xxx_spi");

0 commit comments

Comments
 (0)