diff mbox series

[net-next] ntp: fix size argument for kcalloc

Message ID 20240703025625.1695052-1-nichen@iscas.ac.cn (mailing list archive)
State Changes Requested
Delegated to: Netdev Maintainers
Headers show
Series [net-next] ntp: fix size argument for kcalloc | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net-next
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 839 this patch: 839
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers success CCed 9 of 9 maintainers
netdev/build_clang success Errors and warnings before: 846 this patch: 846
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 846 this patch: 846
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 8 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 3 this patch: 3
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2024-07-03--12-00 (tests: 666)

Commit Message

Chen Ni July 3, 2024, 2:56 a.m. UTC
The size argument to kcalloc should be the size of desired structure,
not the pointer to it.

Fixes: 6402528b7a0b ("nfp: xsk: add AF_XDP zero-copy Rx and Tx support")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
---
 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Przemek Kitszel July 3, 2024, 9:16 a.m. UTC | #1
On 7/3/24 04:56, Chen Ni wrote:
> The size argument to kcalloc should be the size of desired structure,

xsk_pools is a double pointer, so not "desired structure" but rather you
should talk about an element size.

> not the pointer to it.
> 
> Fixes: 6402528b7a0b ("nfp: xsk: add AF_XDP zero-copy Rx and Tx support")

even if the the behavior is not changed, the fix should be targeted to
net tree

> Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
> ---
>   drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
> index 182ba0a8b095..768f22cd3d02 100644
> --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
> +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
> @@ -2539,7 +2539,7 @@ nfp_net_alloc(struct pci_dev *pdev, const struct nfp_dev_info *dev_info,
>   				  nn->dp.num_r_vecs, num_online_cpus());
>   	nn->max_r_vecs = nn->dp.num_r_vecs;
>   
> -	nn->dp.xsk_pools = kcalloc(nn->max_r_vecs, sizeof(nn->dp.xsk_pools),
> +	nn->dp.xsk_pools = kcalloc(nn->max_r_vecs, sizeof(*nn->dp.xsk_pools),
>   				   GFP_KERNEL);
>   	if (!nn->dp.xsk_pools) {
>   		err = -ENOMEM;

code change is correct, even if the size is the same
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Louis Peens July 4, 2024, 5:36 a.m. UTC | #2
Wed, Jul 03, 2024 at 10:56:25AM +0800, Chen Ni wrote:
> The size argument to kcalloc should be the size of desired structure,
> not the pointer to it.
> 
> Fixes: 6402528b7a0b ("nfp: xsk: add AF_XDP zero-copy Rx and Tx support")
> Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
> ---
>  drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
> index 182ba0a8b095..768f22cd3d02 100644
> --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
> +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
> @@ -2539,7 +2539,7 @@ nfp_net_alloc(struct pci_dev *pdev, const struct nfp_dev_info *dev_info,
>  				  nn->dp.num_r_vecs, num_online_cpus());
>  	nn->max_r_vecs = nn->dp.num_r_vecs;
>  
> -	nn->dp.xsk_pools = kcalloc(nn->max_r_vecs, sizeof(nn->dp.xsk_pools),
> +	nn->dp.xsk_pools = kcalloc(nn->max_r_vecs, sizeof(*nn->dp.xsk_pools),
>  				   GFP_KERNEL);
>  	if (!nn->dp.xsk_pools) {
>  		err = -ENOMEM;
> -- 
Looks good to me, thanks.

Signed-off-by: Louis Peens <louis.peens@corigine.com>
Simon Horman July 4, 2024, 7:30 a.m. UTC | #3
On Wed, Jul 03, 2024 at 10:56:25AM +0800, Chen Ni wrote:
> The size argument to kcalloc should be the size of desired structure,
> not the pointer to it.
> 
> Fixes: 6402528b7a0b ("nfp: xsk: add AF_XDP zero-copy Rx and Tx support")
> Signed-off-by: Chen Ni <nichen@iscas.ac.cn>

nit: s/ntp/nfp/ in the subject

...
Paolo Abeni July 4, 2024, 9:36 a.m. UTC | #4
On Wed, 2024-07-03 at 11:16 +0200, Przemek Kitszel wrote:
> On 7/3/24 04:56, Chen Ni wrote:
> > The size argument to kcalloc should be the size of desired structure,
> 
> xsk_pools is a double pointer, so not "desired structure" but rather you
> should talk about an element size.
> 
> > not the pointer to it.
> > 
> > Fixes: 6402528b7a0b ("nfp: xsk: add AF_XDP zero-copy Rx and Tx support")
> 
> even if the the behavior is not changed, the fix should be targeted to
> net tree

This patch is IMHO more a cleanup than a real fix. As such it's more
suited for net-next. For the same reason I think it should not go to
stable, so I'm dropping the fixes tag, too.

Thanks,

Paolo
Paolo Abeni July 4, 2024, 9:41 a.m. UTC | #5
On Thu, 2024-07-04 at 11:36 +0200, Paolo Abeni wrote:
> On Wed, 2024-07-03 at 11:16 +0200, Przemek Kitszel wrote:
> > On 7/3/24 04:56, Chen Ni wrote:
> > > The size argument to kcalloc should be the size of desired structure,
> > 
> > xsk_pools is a double pointer, so not "desired structure" but rather you
> > should talk about an element size.
> > 
> > > not the pointer to it.
> > > 
> > > Fixes: 6402528b7a0b ("nfp: xsk: add AF_XDP zero-copy Rx and Tx support")
> > 
> > even if the the behavior is not changed, the fix should be targeted to
> > net tree
> 
> This patch is IMHO more a cleanup than a real fix. As such it's more
> suited for net-next. For the same reason I think it should not go to
> stable, so I'm dropping the fixes tag, too.

Thinking again about it, this patch has a few things to be cleaned-up. 

@Chen Ni, please submit a new revision, adjusting the subj and commit
message as per Przemek and Simon feedback and dropping the fixes tag,
still targeting net-next. 

You can retain the already collected tags.

Thanks,

Paolo
Przemek Kitszel July 4, 2024, 10:17 a.m. UTC | #6
On 7/4/24 11:41, Paolo Abeni wrote:
> On Thu, 2024-07-04 at 11:36 +0200, Paolo Abeni wrote:
>> On Wed, 2024-07-03 at 11:16 +0200, Przemek Kitszel wrote:
>>> On 7/3/24 04:56, Chen Ni wrote:
>>>> The size argument to kcalloc should be the size of desired structure,
>>>
>>> xsk_pools is a double pointer, so not "desired structure" but rather you
>>> should talk about an element size.
>>>
>>>> not the pointer to it.
>>>>
>>>> Fixes: 6402528b7a0b ("nfp: xsk: add AF_XDP zero-copy Rx and Tx support")
>>>
>>> even if the the behavior is not changed, the fix should be targeted to
>>> net tree
>>
>> This patch is IMHO more a cleanup than a real fix. As such it's more
>> suited for net-next. For the same reason I think it should not go to
>> stable, so I'm dropping the fixes tag, too.

I'm fine with targeting it at any of the trees.

But I still believe it is a fix, even if a trivial one, and even if code
"works" - it's a "wrong" code.

Here I received similar feedback in a similar case:
https://www.mail-archive.com/intel-wired-lan@osuosl.org/msg03252.html
and I changed my mind then.

> 
> Thinking again about it, this patch has a few things to be cleaned-up.
> 
> @Chen Ni, please submit a new revision, adjusting the subj and commit
> message as per Przemek and Simon feedback and dropping the fixes tag,
> still targeting net-next.
> 
> You can retain the already collected tags.
> 
> Thanks,
> 
> Paolo
>
Jakub Kicinski July 4, 2024, 2:21 p.m. UTC | #7
On Thu, 4 Jul 2024 12:17:39 +0200 Przemek Kitszel wrote:
> >> This patch is IMHO more a cleanup than a real fix. As such it's more
> >> suited for net-next. For the same reason I think it should not go to
> >> stable, so I'm dropping the fixes tag, too.  
> 
> I'm fine with targeting it at any of the trees.
> 
> But I still believe it is a fix, even if a trivial one, and even if code
> "works" - it's a "wrong" code.
> 
> Here I received similar feedback in a similar case:
> https://www.mail-archive.com/intel-wired-lan@osuosl.org/msg03252.html
> and I changed my mind then.

Comments, docs, and the MAINTAINERS file are special.
This is actually changing the code, and at present results in the same
binary getting generated.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 182ba0a8b095..768f22cd3d02 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -2539,7 +2539,7 @@  nfp_net_alloc(struct pci_dev *pdev, const struct nfp_dev_info *dev_info,
 				  nn->dp.num_r_vecs, num_online_cpus());
 	nn->max_r_vecs = nn->dp.num_r_vecs;
 
-	nn->dp.xsk_pools = kcalloc(nn->max_r_vecs, sizeof(nn->dp.xsk_pools),
+	nn->dp.xsk_pools = kcalloc(nn->max_r_vecs, sizeof(*nn->dp.xsk_pools),
 				   GFP_KERNEL);
 	if (!nn->dp.xsk_pools) {
 		err = -ENOMEM;