]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
i3c master: fix missing destroy_workqueue() on error in i3c_master_register
authorQinglang Miao <miaoqinglang@huawei.com>
Wed, 28 Oct 2020 09:15:43 +0000 (17:15 +0800)
committerPaolo Pisati <paolo.pisati@canonical.com>
Fri, 8 Jan 2021 11:25:24 +0000 (12:25 +0100)
BugLink: https://bugs.launchpad.net/bugs/1910742
[ 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>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
drivers/i3c/master.c

index 1c6b78ad5ade467e8467fc1b068a7a3bdd5576e0..b61bf53ec07afc453ea4ec8888561a6f3d6efa9b 100644 (file)
@@ -2537,7 +2537,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)
@@ -2568,6 +2568,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);