2024-01-08 04:14:19

by Tiezhu Yang

[permalink] [raw]
Subject: [PATCH] btrfs: send: Silence build warning about kvcalloc()

There exist the following warning when building kernel v6.7:

CC fs/btrfs/send.o
fs/btrfs/send.c: In function ‘btrfs_ioctl_send’:
fs/btrfs/send.c:8208:44: warning: ‘kvcalloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Wcalloc-transposed-args]
8208 | sctx->clone_roots = kvcalloc(sizeof(*sctx->clone_roots),
| ^
fs/btrfs/send.c:8208:44: note: earlier argument should specify number of elements, later size of each element

tested with the latest upstream toolchains (20240105):

[fedora@linux 6.7.test]$ gcc --version
gcc (GCC) 14.0.0 20240105 (experimental)
[fedora@linux 6.7.test]$ as --version
GNU assembler (GNU Binutils) 2.41.50.20240105
[fedora@linux 6.7.test]$ ld --version
GNU ld (GNU Binutils) 2.41.50.20240105

just switch the first and second arguments of kvcalloc() to silence
the build warning, compile tested only.

Fixes: bae12df966f0 ("btrfs: use kvcalloc for allocation in btrfs_ioctl_send()")
Signed-off-by: Tiezhu Yang <[email protected]>
---
fs/btrfs/send.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index 4e36550618e5..2d7519a6ce72 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -8205,8 +8205,8 @@ long btrfs_ioctl_send(struct inode *inode, struct btrfs_ioctl_send_args *arg)
goto out;
}

- sctx->clone_roots = kvcalloc(sizeof(*sctx->clone_roots),
- arg->clone_sources_count + 1,
+ sctx->clone_roots = kvcalloc(arg->clone_sources_count + 1,
+ sizeof(*sctx->clone_roots),
GFP_KERNEL);
if (!sctx->clone_roots) {
ret = -ENOMEM;
--
2.42.0



2024-01-08 17:50:57

by David Sterba

[permalink] [raw]
Subject: Re: [PATCH] btrfs: send: Silence build warning about kvcalloc()

On Mon, Jan 08, 2024 at 12:13:51PM +0800, Tiezhu Yang wrote:
> There exist the following warning when building kernel v6.7:
>
> CC fs/btrfs/send.o
> fs/btrfs/send.c: In function ‘btrfs_ioctl_send’:
> fs/btrfs/send.c:8208:44: warning: ‘kvcalloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Wcalloc-transposed-args]
> 8208 | sctx->clone_roots = kvcalloc(sizeof(*sctx->clone_roots),
> | ^
> fs/btrfs/send.c:8208:44: note: earlier argument should specify number of elements, later size of each element
>
> tested with the latest upstream toolchains (20240105):
>
> [fedora@linux 6.7.test]$ gcc --version
> gcc (GCC) 14.0.0 20240105 (experimental)
> [fedora@linux 6.7.test]$ as --version
> GNU assembler (GNU Binutils) 2.41.50.20240105
> [fedora@linux 6.7.test]$ ld --version
> GNU ld (GNU Binutils) 2.41.50.20240105
>
> just switch the first and second arguments of kvcalloc() to silence
> the build warning, compile tested only.
>
> Fixes: bae12df966f0 ("btrfs: use kvcalloc for allocation in btrfs_ioctl_send()")
> Signed-off-by: Tiezhu Yang <[email protected]>

Thanks, a fix has been already sent
https://lore.kernel.org/linux-btrfs/[email protected]/