PCI: endpoint: Fix missing destroy_workqueue()
authorYang Yingliang <yangyingliang@huawei.com>
Wed, 31 Mar 2021 08:40:12 +0000 (16:40 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 May 2021 08:13:02 +0000 (10:13 +0200)
[ Upstream commit acaef7981a218813e3617edb9c01837808de063c ]

Add the missing destroy_workqueue() before return from
pci_epf_test_init() in the error handling case and add
destroy_workqueue() in pci_epf_test_exit().

Link: https://lore.kernel.org/r/20210331084012.2091010-1-yangyingliang@huawei.com
Fixes: 349e7a85b25fa ("PCI: endpoint: functions: Add an EP function to test PCI")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pci/endpoint/functions/pci-epf-test.c

index 5f6ce120a67a36381e8ce9a314faf5bc571b55a0..d41570715dc7f52a4812af0d15208fd3b6bb48a6 100644 (file)
@@ -922,6 +922,7 @@ static int __init pci_epf_test_init(void)
 
        ret = pci_epf_register_driver(&test_driver);
        if (ret) {
+               destroy_workqueue(kpcitest_workqueue);
                pr_err("Failed to register pci epf test driver --> %d\n", ret);
                return ret;
        }
@@ -932,6 +933,8 @@ module_init(pci_epf_test_init);
 
 static void __exit pci_epf_test_exit(void)
 {
+       if (kpcitest_workqueue)
+               destroy_workqueue(kpcitest_workqueue);
        pci_epf_unregister_driver(&test_driver);
 }
 module_exit(pci_epf_test_exit);