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@xxxxxxxxxx> Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx> --- 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); -- 2.29.2