]> git.baikalelectronics.ru Git - kernel.git/commit
spi: Fix controller unregister order
authorLukas Wunner <lukas@wunner.de>
Fri, 15 May 2020 15:58:01 +0000 (17:58 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 20 May 2020 14:16:10 +0000 (15:16 +0100)
commita29440e2c1947af7976550be277ee9ae4ce2eecc
tree3dc0802c76bace05d5e969f61fc3dede0d580fe5
parent555f4de9d1fca7d749ee7063761a99cb07210fe7
spi: Fix controller unregister order

When an SPI controller unregisters, it unbinds all its slave devices.
For this, their drivers may need to access the SPI bus, e.g. to quiesce
interrupts.

However since commit 1273a43fb48a ("spi: create a message queueing
infrastructure"), spi_destroy_queue() is executed before unbinding the
slaves.  It sets ctlr->running = false, thereby preventing SPI bus
access and causing unbinding of slave devices to fail.

Fix by unbinding slaves before calling spi_destroy_queue().

Fixes: 1273a43fb48a ("spi: create a message queueing infrastructure")
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: stable@vger.kernel.org # v3.4+
Cc: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/8aaf9d44c153fe233b17bc2dec4eb679898d7e7b.1589557526.git.lukas@wunner.de
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi.c