[PATCH] i3c master: fix missing destroy_workqueue() on error in i3c_master_register

Qinglang Miao miaoqinglang at huawei.com
Wed Oct 28 05:15:43 EDT 2020


Add the missing destroy_workqueue() before return from
i3c_master_register in the error handling case.

Signed-off-by: Qinglang Miao <miaoqinglang at huawei.com>
---
 drivers/i3c/master.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index cc7564446..c45b59bb7 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -2514,7 +2514,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)
@@ -2545,6 +2545,9 @@ int i3c_master_register(struct i3c_master_controller *master,
 err_cleanup_bus:
 	i3c_master_bus_cleanup(master);
 
+err_destroy_wq:
+	destroy_workqueue(master->wq);
+
 err_put_dev:
 	put_device(&master->dev);
 
-- 
2.23.0




More information about the linux-i3c mailing list