Unverified Commit 9b7abfed authored by Johan Hovold's avatar Johan Hovold Committed by Mark Brown
Browse files

spi: fsl: fix controller deregistration



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

Fixes: 4178b6b1 ("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: default avatarJohan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260410064749.496888-1-johan@kernel.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 485c900a
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -614,7 +614,7 @@ static struct spi_controller *fsl_spi_probe(struct device *dev,

	mpc8xxx_spi_write_reg(&reg_base->mode, regval);

	ret = devm_spi_register_controller(dev, host);
	ret = spi_register_controller(host);
	if (ret < 0)
		goto err_probe;

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

	spi_controller_get(host);

	spi_unregister_controller(host);

	fsl_spi_cpm_free(mpc8xxx_spi);

	spi_controller_put(host);
}

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

	spi_controller_get(host);

	spi_unregister_controller(host);

	fsl_spi_cpm_free(mpc8xxx_spi);

	spi_controller_put(host);
}

MODULE_ALIAS("platform:mpc8xxx_spi");