# Re: \[PATCH\] virtio-net: fix the kzalloc/kfree mismatch problem

- From: Jason Wang \<hidden\>
- Date: 2021-06-02 07:20:00 
- List: netdev
- Page: https://ratatoskr.run/netdev/2021/06/11204386
- Thread: https://ratatoskr.run/netdev/2021/05/11203646/t.md

```text

在 2021/6/2 下午1:50, Leon Romanovsky 写道:
> On Mon, May 24, 2021 at 10:37:14AM +0800, Jason Wang wrote:
>> 在 2021/5/24 上午10:06, Xuan Zhuo 写道:
>>> On Mon, 24 May 2021 01:48:53 +0000, Guodeqing (A) [ref] wrote:
>>>>> -----Original Message-----
>>>>> From: Max Gurtovoy [mailto:mgurtovoy@nvidia.com]
>>>>> Sent: Sunday, May 23, 2021 15:25
>>>>> To: Guodeqing (A) <redacted>; mst@redhat.com
>>>>> Cc: <redacted>; davem@davemloft.net; kuba@kernel.org;
>>>>> virtualization@lists.linux-foundation.org; netdev@vger.kernel.org
>>>>> Subject: Re: [PATCH] virtio-net: fix the kzalloc/kfree mismatch problem
>>>>>
>>>>>
>>>>> On 5/22/2021 11:02 AM, guodeqing wrote:
>>>>>> If the virtio_net device does not suppurt the ctrl queue feature, the
>>>>>> vi->ctrl was not allocated, so there is no need to free it.
>>>>> you don't need this check.
>>>>>
>>>>> from kfree doc:
>>>>>
>>>>> "If @objp is NULL, no operation is performed."
>>>>>
>>>>> This is not a bug. I've set vi->ctrl to be NULL in case !vi->has_cvq.
>>>>>
>>>>>
>>>>     yes,  this is not a bug, the patch is just a optimization, because the vi->ctrl maybe
>>>>     be freed which  was not allocated, this may give people a misunderstanding.
>>>>     Thanks.
>>> I think it may be enough to add a comment, and the code does not need to be
>>> modified.
>>>
>>> Thanks.
>>
>> Or even just leave the current code as is. A lot of kernel codes was wrote
>> under the assumption that kfree() should deal with NULL.
> It is not assumption but standard practice that can be seen as side
> effect of "7) Centralized exiting of functions" section of coding-style.rst.
>
> Thanks


I don't see the connection to the centralized exiting.

Something like:

if (foo)
    kfree(foo);

won't break the centralization.

Thanks


>

```
