On Sat, Oct 10, 2020 at 04:41:09PM +0800, yangerkun wrote:
?? 2020/6/16 9:56, Sasha Levin ????:
This is a note to let you know that I've just added the patch titled
spi: Fix controller unregister order
to the 4.4-stable tree which can be found at:
[...]
--- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1922,11 +1922,12 @@ void spi_unregister_master(struct spi_master *master) dev_err(&master->dev, "queue remove failed\n"); }
- device_for_each_child(&master->dev, NULL, __unregister);
This is a wrong patch. We should move this line before spi_destroy_queue, but we didn't. 4.9 stable exists this problem too.
Hi Sasha, Hi Greg,
below please find a patch for the 4.9-stable tree to fix the backporting issue reported above.
Thanks!
-- >8 -- Subject: [PATCH] spi: Fix controller unregister order harder
Commit c7e41e1caa71 sought to backport upstream commit 84855678add8 to the 4.9-stable tree but erroneously inserted a line at the wrong place. Fix it.
Fixes: c7e41e1caa71 ("spi: Fix controller unregister order") Reported-by: yangerkun yangerkun@huawei.com Signed-off-by: Lukas Wunner lukas@wunner.de --- drivers/spi/spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index c7c9ca3178ad..e0632ee1723b 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -2070,13 +2070,13 @@ static int __unregister(struct device *dev, void *null) */ void spi_unregister_master(struct spi_master *master) { + device_for_each_child(&master->dev, NULL, __unregister); + if (master->queued) { if (spi_destroy_queue(master)) dev_err(&master->dev, "queue remove failed\n"); }
- device_for_each_child(&master->dev, NULL, __unregister); - mutex_lock(&board_lock); list_del(&master->list); mutex_unlock(&board_lock);