]> git.proxmox.com Git - mirror_ubuntu-focal-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)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 19 Feb 2021 15:43:27 +0000 (16:43 +0100)
BugLink: https://bugs.launchpad.net/bugs/1912681
[ 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: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: William Breathitt Gray <william.gray@canonical.com>
drivers/i3c/master.c

index 6cc71c90f85eacb2f21106e04bf5dfc421bc3acc..19337aed9f2351a4e8eb8de49b43a23b656061ac 100644 (file)
@@ -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);