diff mbox series

net: cxgb3: add missed destroy_workqueue in cxgb3 probe failure

Message ID 20200717062117.8941-1-wanghai38@huawei.com
State Rejected
Delegated to: David Miller
Headers show
Series net: cxgb3: add missed destroy_workqueue in cxgb3 probe failure | expand

Commit Message

Wang Hai July 17, 2020, 6:21 a.m. UTC
The driver forgets to call destroy_workqueue when cxgb3 probe fails.
Add the missed calls to fix it.

Fixes: 4d22de3e6cc4 ("Add support for the latest 1G/10G Chelsio adapter, T3.")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wang Hai <wanghai38@huawei.com>
---
 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 1 +
 1 file changed, 1 insertion(+)

Comments

David Miller July 18, 2020, 1:39 a.m. UTC | #1
From: Wang Hai <wanghai38@huawei.com>
Date: Fri, 17 Jul 2020 14:21:17 +0800

> The driver forgets to call destroy_workqueue when cxgb3 probe fails.
> Add the missed calls to fix it.
> 
> Fixes: 4d22de3e6cc4 ("Add support for the latest 1G/10G Chelsio adapter, T3.")
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Signed-off-by: Wang Hai <wanghai38@huawei.com>

You have to handle the case that the probing of one or more devices
fails yet one or more others succeed.

And you can't know in advance how this will play out.

This is why the workqueue is unconditionally created, and only destroyed
on module remove.
Wang Hai July 18, 2020, 7:57 a.m. UTC | #2
在 2020/7/18 9:39, David Miller 写道:
> From: Wang Hai <wanghai38@huawei.com>
> Date: Fri, 17 Jul 2020 14:21:17 +0800
>
>> The driver forgets to call destroy_workqueue when cxgb3 probe fails.
>> Add the missed calls to fix it.
>>
>> Fixes: 4d22de3e6cc4 ("Add support for the latest 1G/10G Chelsio adapter, T3.")
>> Reported-by: Hulk Robot <hulkci@huawei.com>
>> Signed-off-by: Wang Hai <wanghai38@huawei.com>
> You have to handle the case that the probing of one or more devices
> fails yet one or more others succeed.
>
> And you can't know in advance how this will play out.
>
> This is why the workqueue is unconditionally created, and only destroyed
> on module remove.
>
> .
Thanks for your explanation. I got it.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
index 42c6e9379882..060d42803240 100644
--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
@@ -3407,6 +3407,7 @@  static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 out_disable_device:
 	pci_disable_device(pdev);
 out:
+	destroy_workqueue(cxgb3_wq);
 	return err;
 }