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 <[email protected]>
Signed-off-by: Lukas Wunner <[email protected]>
---
 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

Reply via email to