summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQinglang Miao <miaoqinglang@huawei.com>2020-10-28 17:15:43 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-01-06 14:48:40 +0100
commitd52faa7fb12f444f70eae8b49b3d674ff8c8bf32 (patch)
treeeaabf756da8510cb743ef5cb79a3100b10a4bb10
parent22f815627c64f35e199e1bc17d7225c127244e2a (diff)
i3c master: fix missing destroy_workqueue() on error in i3c_master_register
[ Upstream commit 59165d16c699182b86b5c65181013f1fd88feb62 ] Add the missing destroy_workqueue() before return from i3c_master_register in the error handling case. Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Link: https://lore.kernel.org/linux-i3c/20201028091543.136167-1-miaoqinglang@huawei.com Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/i3c/master.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index 6cc71c90f85e..19337aed9f23 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -2492,7 +2492,7 @@ int i3c_master_register(struct i3c_master_controller *master,
ret = i3c_master_bus_init(master);
if (ret)
- goto err_put_dev;
+ goto err_destroy_wq;
ret = device_add(&master->dev);
if (ret)
@@ -2523,6 +2523,9 @@ err_del_dev:
err_cleanup_bus:
i3c_master_bus_cleanup(master);
+err_destroy_wq:
+ destroy_workqueue(master->wq);
+
err_put_dev:
put_device(&master->dev);