[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <pj41zlzgcs780g.fsf@u570694869fb251.ant.amazon.com>
Date: Tue, 15 Nov 2022 13:47:58 +0200
From: Shay Agroskin <shayagr@...zon.com>
To: Yuan Can <yuancan@...wei.com>
CC: <akiyano@...zon.com>, <darinzon@...zon.com>, <ndagan@...zon.com>,
<saeedb@...zon.com>, <davem@...emloft.net>, <edumazet@...gle.com>,
<kuba@...nel.org>, <pabeni@...hat.com>, <nkoler@...zon.com>,
<wsa+renesas@...g-engineering.com>, <netanel@...apurnalabs.com>,
<netdev@...r.kernel.org>
Subject: Re: [PATCH] net: ena: Fix error handling in ena_init()
Yuan Can <yuancan@...wei.com> writes:
> The ena_init() won't destroy workqueue created by
> create_singlethread_workqueue() when pci_register_driver()
> failed.
> Call destroy_workqueue() when pci_register_driver() failed to
> prevent the
> resource leak.
>
> Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic
> Network Adapters (ENA)")
> Signed-off-by: Yuan Can <yuancan@...wei.com>
> ---
> drivers/net/ethernet/amazon/ena/ena_netdev.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c
> b/drivers/net/ethernet/amazon/ena/ena_netdev.c
> index d350eeec8bad..5a454b58498f 100644
> --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
> +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
> @@ -4543,13 +4543,19 @@ static struct pci_driver ena_pci_driver
> = {
>
> static int __init ena_init(void)
> {
> + int ret;
> +
> ena_wq = create_singlethread_workqueue(DRV_MODULE_NAME);
> if (!ena_wq) {
> pr_err("Failed to create workqueue\n");
> return -ENOMEM;
> }
>
> - return pci_register_driver(&ena_pci_driver);
> + ret = pci_register_driver(&ena_pci_driver);
> + if (ret)
> + destroy_workqueue(ena_wq);
> +
> + return ret;
> }
>
> static void __exit ena_cleanup(void)
Lgtm. Thanks for this fix.
Acked-by: Shay Agroskin <shayagr@...zon.com>
Powered by blists - more mailing lists