Subject: [PATCH] amd/pds_core: core: No need for Null pointer check before kfree

kfree()/vfree() internally perform NULL check on the
pointer handed to it and take no action if it indeed is
NULL. Hence there is no need for a pre-check of the memory
pointer before handing it to kfree()/vfree().

Issue reported by ifnullfree.cocci Coccinelle semantic
patch script.

Signed-off-by: Bragatheswaran Manickavel <[email protected]>
---
drivers/net/ethernet/amd/pds_core/core.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c
index 2a8643e167e1..0d2091e9eb28 100644
--- a/drivers/net/ethernet/amd/pds_core/core.c
+++ b/drivers/net/ethernet/amd/pds_core/core.c
@@ -152,11 +152,8 @@ void pdsc_qcq_free(struct pdsc *pdsc, struct pdsc_qcq *qcq)
dma_free_coherent(dev, qcq->cq_size,
qcq->cq_base, qcq->cq_base_pa);

- if (qcq->cq.info)
- vfree(qcq->cq.info);
-
- if (qcq->q.info)
- vfree(qcq->q.info);
+ vfree(qcq->cq.info);
+ vfree(qcq->q.info);

memset(qcq, 0, sizeof(*qcq));
}
--
2.34.1


2023-10-24 20:58:25

by Nelson, Shannon

[permalink] [raw]
Subject: Re: [PATCH] amd/pds_core: core: No need for Null pointer check before kfree

On 10/24/2023 11:20 AM, Bragatheswaran Manickavel wrote:
>
> kfree()/vfree() internally perform NULL check on the
> pointer handed to it and take no action if it indeed is
> NULL. Hence there is no need for a pre-check of the memory
> pointer before handing it to kfree()/vfree().
>
> Issue reported by ifnullfree.cocci Coccinelle semantic
> patch script.
>
> Signed-off-by: Bragatheswaran Manickavel <[email protected]>

Thanks -sln

Reviewed-by: Shannon Nelson <[email protected]>


> ---
> drivers/net/ethernet/amd/pds_core/core.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c
> index 2a8643e167e1..0d2091e9eb28 100644
> --- a/drivers/net/ethernet/amd/pds_core/core.c
> +++ b/drivers/net/ethernet/amd/pds_core/core.c
> @@ -152,11 +152,8 @@ void pdsc_qcq_free(struct pdsc *pdsc, struct pdsc_qcq *qcq)
> dma_free_coherent(dev, qcq->cq_size,
> qcq->cq_base, qcq->cq_base_pa);
>
> - if (qcq->cq.info)
> - vfree(qcq->cq.info);
> -
> - if (qcq->q.info)
> - vfree(qcq->q.info);
> + vfree(qcq->cq.info);
> + vfree(qcq->q.info);
>
> memset(qcq, 0, sizeof(*qcq));
> }
> --
> 2.34.1
>

2023-10-25 09:23:01

by Wojciech Drewek

[permalink] [raw]
Subject: Re: [PATCH] amd/pds_core: core: No need for Null pointer check before kfree



On 24.10.2023 20:20, Bragatheswaran Manickavel wrote:
> kfree()/vfree() internally perform NULL check on the
> pointer handed to it and take no action if it indeed is
> NULL. Hence there is no need for a pre-check of the memory
> pointer before handing it to kfree()/vfree().
>
> Issue reported by ifnullfree.cocci Coccinelle semantic
> patch script.
>
> Signed-off-by: Bragatheswaran Manickavel <[email protected]>
> ---

Thanks for the patch!
One nit, you're missing a target tag. It should be [PATCH net-next] since this not a fix IMO.
Reviewed-by: Wojciech Drewek <[email protected]>

> drivers/net/ethernet/amd/pds_core/core.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c
> index 2a8643e167e1..0d2091e9eb28 100644
> --- a/drivers/net/ethernet/amd/pds_core/core.c
> +++ b/drivers/net/ethernet/amd/pds_core/core.c
> @@ -152,11 +152,8 @@ void pdsc_qcq_free(struct pdsc *pdsc, struct pdsc_qcq *qcq)
> dma_free_coherent(dev, qcq->cq_size,
> qcq->cq_base, qcq->cq_base_pa);
>
> - if (qcq->cq.info)
> - vfree(qcq->cq.info);
> -
> - if (qcq->q.info)
> - vfree(qcq->q.info);
> + vfree(qcq->cq.info);
> + vfree(qcq->q.info);
>
> memset(qcq, 0, sizeof(*qcq));
> }

2023-10-25 09:40:40

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH] amd/pds_core: core: No need for Null pointer check before kfree

Hello:

This patch was applied to netdev/net-next.git (main)
by David S. Miller <[email protected]>:

On Tue, 24 Oct 2023 23:50:51 +0530 you wrote:
> kfree()/vfree() internally perform NULL check on the
> pointer handed to it and take no action if it indeed is
> NULL. Hence there is no need for a pre-check of the memory
> pointer before handing it to kfree()/vfree().
>
> Issue reported by ifnullfree.cocci Coccinelle semantic
> patch script.
>
> [...]

Here is the summary with links:
- amd/pds_core: core: No need for Null pointer check before kfree
https://git.kernel.org/netdev/net-next/c/d0110443cf4a

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html


Subject: Re: [PATCH] amd/pds_core: core: No need for Null pointer check before kfree

Thanks Shannon!

On 25/10/23 14:52, Wojciech Drewek wrote:
>
> On 24.10.2023 20:20, Bragatheswaran Manickavel wrote:
>> kfree()/vfree() internally perform NULL check on the
>> pointer handed to it and take no action if it indeed is
>> NULL. Hence there is no need for a pre-check of the memory
>> pointer before handing it to kfree()/vfree().
>>
>> Issue reported by ifnullfree.cocci Coccinelle semantic
>> patch script.
>>
>> Signed-off-by: Bragatheswaran Manickavel <[email protected]>
>> ---
> Thanks for the patch!
> One nit, you're missing a target tag. It should be [PATCH net-next] since this not a fix IMO.
> Reviewed-by: Wojciech Drewek <[email protected]>
Hi Wojciech,
Will take care of this next time. Thanks!
>> drivers/net/ethernet/amd/pds_core/core.c | 7 ++-----
>> 1 file changed, 2 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c
>> index 2a8643e167e1..0d2091e9eb28 100644
>> --- a/drivers/net/ethernet/amd/pds_core/core.c
>> +++ b/drivers/net/ethernet/amd/pds_core/core.c
>> @@ -152,11 +152,8 @@ void pdsc_qcq_free(struct pdsc *pdsc, struct pdsc_qcq *qcq)
>> dma_free_coherent(dev, qcq->cq_size,
>> qcq->cq_base, qcq->cq_base_pa);
>>
>> - if (qcq->cq.info)
>> - vfree(qcq->cq.info);
>> -
>> - if (qcq->q.info)
>> - vfree(qcq->q.info);
>> + vfree(qcq->cq.info);
>> + vfree(qcq->q.info);
>>
>> memset(qcq, 0, sizeof(*qcq));
>> }