mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-19 17:11:03 +00:00
spi: Don't have controller clean up spi device before driver unbind
[ Upstream commit27e7db56cf
] When a spi device is unregistered and triggers a driver unbind, the driver might need to access the spi device. So, don't have the controller clean up the spi device before the driver is unbound. Clean up the spi device after the driver is unbound. Fixes:c7299fea67
("spi: Fix spi device unregister flow") Reported-by: Lukas Wunner <lukas@wunner.de> Signed-off-by: Saravana Kannan <saravanak@google.com> Tested-by: Andy Shevchenko <andy.shevchenko@gmail.com> Link: https://lore.kernel.org/r/20210505164734.175546-1-saravanak@google.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
3a5b982463
commit
0c4d4de2da
1 changed files with 3 additions and 3 deletions
|
@ -709,15 +709,15 @@ void spi_unregister_device(struct spi_device *spi)
|
|||
if (!spi)
|
||||
return;
|
||||
|
||||
spi_cleanup(spi);
|
||||
|
||||
if (spi->dev.of_node) {
|
||||
of_node_clear_flag(spi->dev.of_node, OF_POPULATED);
|
||||
of_node_put(spi->dev.of_node);
|
||||
}
|
||||
if (ACPI_COMPANION(&spi->dev))
|
||||
acpi_device_clear_enumerated(ACPI_COMPANION(&spi->dev));
|
||||
device_unregister(&spi->dev);
|
||||
device_del(&spi->dev);
|
||||
spi_cleanup(spi);
|
||||
put_device(&spi->dev);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(spi_unregister_device);
|
||||
|
||||
|
|
Loading…
Reference in a new issue