Message ID | 20201015143834.1136778-1-yangerkun@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | [4.4.y] spi: unbinding slave before calling spi_destroy_queue | expand |
On Thu, Oct 15, 2020 at 10:38:34PM +0800, yangerkun wrote: > 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 <yangerkun@huawei.com> > --- > drivers/spi/spi.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Thanks, now applied. greg k-h
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index fe03771da5124..18031b755c376 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1957,13 +1957,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);
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 <yangerkun@huawei.com> --- drivers/spi/spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)