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 <[email protected]>
Signed-off-by: Wang Hai <[email protected]>
---
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 1 +
1 file changed, 1 insertion(+)
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;
}
--
2.17.1
> Add the missed calls to fix it.
You propose to add only a single function call.
…
> +++ 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;
> }
I suggest to adjust also the usage of the label “out” accordingly.
Regards,
Markus
From: Wang Hai <[email protected]>
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 <[email protected]>
> Signed-off-by: Wang Hai <[email protected]>
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.
?? 2020/7/18 9:39, David Miller д??:
> From: Wang Hai <[email protected]>
> 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 <[email protected]>
>> Signed-off-by: Wang Hai <[email protected]>
> 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.