[PATCH net v3] drivers: net: ionic: add missed debugfs cleanup to ionic_probe() error path

Wentao Liang posted 1 patch 2 weeks, 3 days ago
drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c | 1 +
1 file changed, 1 insertion(+)
[PATCH net v3] drivers: net: ionic: add missed debugfs cleanup to ionic_probe() error path
Posted by Wentao Liang 2 weeks, 3 days ago
From: Wentao Liang <Wentao_liang_g@163.com>

The ionic_setup_one() creates a debugfs entry for ionic upon
successful execution. However, the ionic_probe() does not
release the dentry before returning, resulting in a memory
leak.

To fix this bug, we add the ionic_debugfs_del_dev() to release
the resources in a timely manner before returning.

Fixes: 0de38d9f1dba ("ionic: extract common bits from ionic_probe")
Signed-off-by: Wentao Liang <Wentao_liang_g@163.com>
---
 drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
index b93791d6b593..f5dc876eb500 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
@@ -394,6 +394,7 @@ static int ionic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 err_out_pci:
 	ionic_dev_teardown(ionic);
 	ionic_clear_pci(ionic);
+	ionic_debugfs_del_dev(ionic);
 err_out:
 	mutex_destroy(&ionic->dev_cmd_lock);
 	ionic_devlink_free(ionic);
-- 
2.42.0.windows.2
Re: [PATCH net v3] drivers: net: ionic: add missed debugfs cleanup to ionic_probe() error path
Posted by Nelson, Shannon 2 weeks, 2 days ago
On 11/6/2024 6:17 PM, Wentao Liang wrote:
> 
> From: Wentao Liang <Wentao_liang_g@163.com>
> 
> The ionic_setup_one() creates a debugfs entry for ionic upon
> successful execution. However, the ionic_probe() does not
> release the dentry before returning, resulting in a memory
> leak.
> 
> To fix this bug, we add the ionic_debugfs_del_dev() to release
> the resources in a timely manner before returning.
> 
> Fixes: 0de38d9f1dba ("ionic: extract common bits from ionic_probe")
> Signed-off-by: Wentao Liang <Wentao_liang_g@163.com>

Thanks!  -sln

Acked-by: Shannon Nelson <shannon.nelson@amd.com>



> ---
>   drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
> index b93791d6b593..f5dc876eb500 100644
> --- a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
> +++ b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
> @@ -394,6 +394,7 @@ static int ionic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>   err_out_pci:
>          ionic_dev_teardown(ionic);
>          ionic_clear_pci(ionic);
> +       ionic_debugfs_del_dev(ionic);
>   err_out:
>          mutex_destroy(&ionic->dev_cmd_lock);
>          ionic_devlink_free(ionic);
> --
> 2.42.0.windows.2
>
Re: [PATCH net v3] drivers: net: ionic: add missed debugfs cleanup to ionic_probe() error path
Posted by Jakub Kicinski 2 weeks, 2 days ago
On Thu, 7 Nov 2024 11:31:50 -0800 Nelson, Shannon wrote:
> On 11/6/2024 6:17 PM, Wentao Liang wrote:
> > 
> > From: Wentao Liang <Wentao_liang_g@163.com>
> > 
> > The ionic_setup_one() creates a debugfs entry for ionic upon
> > successful execution. However, the ionic_probe() does not
> > release the dentry before returning, resulting in a memory
> > leak.
> > 
> > To fix this bug, we add the ionic_debugfs_del_dev() to release
> > the resources in a timely manner before returning.
> > 
> > Fixes: 0de38d9f1dba ("ionic: extract common bits from ionic_probe")
> > Signed-off-by: Wentao Liang <Wentao_liang_g@163.com>  
> 
> Thanks!  -sln
> 
> Acked-by: Shannon Nelson <shannon.nelson@amd.com>

Just in time to still make today's PR ;)

This change looks fine but as a future refactoring perhaps there should
be a wrapper for:

        ionic_dev_teardown(ionic);                                              
        ionic_clear_pci(ionic);                                                 
        ionic_debugfs_del_dev(ionic);

which pairs with ionic_setup() ?
Re: [PATCH net v3] drivers: net: ionic: add missed debugfs cleanup to ionic_probe() error path
Posted by Nelson, Shannon 2 weeks, 2 days ago
On 11/7/2024 11:44 AM, Jakub Kicinski wrote:
> 
> On Thu, 7 Nov 2024 11:31:50 -0800 Nelson, Shannon wrote:
>> On 11/6/2024 6:17 PM, Wentao Liang wrote:
>>>
>>> From: Wentao Liang <Wentao_liang_g@163.com>
>>>
>>> The ionic_setup_one() creates a debugfs entry for ionic upon
>>> successful execution. However, the ionic_probe() does not
>>> release the dentry before returning, resulting in a memory
>>> leak.
>>>
>>> To fix this bug, we add the ionic_debugfs_del_dev() to release
>>> the resources in a timely manner before returning.
>>>
>>> Fixes: 0de38d9f1dba ("ionic: extract common bits from ionic_probe")
>>> Signed-off-by: Wentao Liang <Wentao_liang_g@163.com>
>>
>> Thanks!  -sln
>>
>> Acked-by: Shannon Nelson <shannon.nelson@amd.com>
> 
> Just in time to still make today's PR ;)
> 
> This change looks fine but as a future refactoring perhaps there should
> be a wrapper for:
> 
>          ionic_dev_teardown(ionic);
>          ionic_clear_pci(ionic);
>          ionic_debugfs_del_dev(ionic);
> 
> which pairs with ionic_setup() ?

Thanks, we'll keep that in mind.
sln