From: yangerkun <yanger...@huawei.com>

We make a mistake while backport 'commit 84855678add8 ("spi: Fix
controller unregister order")'. What we should do is call __unreigster
for each device before spi_destroy_queue. This problem exist in
linux-4.4.y/linux-4.9.y.

Signed-off-by: yangerkun <yanger...@huawei.com>
---
 drivers/spi/spi.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -1917,13 +1917,13 @@ static int __unregister(struct device *d
  */
 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);


Reply via email to