tools/testing/selftests/mm/mremap_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Fix following build warning:
warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long long unsigned int’
Fixes: a4cb3b243343 ("selftests: mm: add a test for remapping to area immediately after existing mapping")
Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
---
tools/testing/selftests/mm/mremap_test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/mm/mremap_test.c b/tools/testing/selftests/mm/mremap_test.c
index 1d4c1589c305..dd1cbb068982 100644
--- a/tools/testing/selftests/mm/mremap_test.c
+++ b/tools/testing/selftests/mm/mremap_test.c
@@ -457,7 +457,7 @@ static long long remap_region(struct config c, unsigned int threshold_mb,
char c = (char) rand();
if (((char *) dest_preamble_addr)[i] != c) {
- ksft_print_msg("Preamble data after remap doesn't match at offset %d\n",
+ ksft_print_msg("Preamble data after remap doesn't match at offset %llu\n",
i);
ksft_print_msg("Expected: %#x\t Got: %#x\n", c & 0xff,
((char *) dest_preamble_addr)[i] & 0xff);
--
2.42.0
On Thu, 11 Jan 2024 13:20:38 +0500 Muhammad Usama Anjum <usama.anjum@collabora.com> wrote: > Fix following build warning: > warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long long unsigned int’ > Looks good to me, but... grumble. `i' is an integer. That's just how it is, Blame Fortran if you like. Discovering that someone used `i' for an unsigned long long is like seeing struct inode *page; It is surprising, and readers shouldn't be subjected to surprises. `i' is used in two ways here. Twice to iterate across threshold values (as a ULL) and once to iterate across dest_preamble_size, which is an int. It would be better to have two different variables for the two different uses. Ones with more appropriate names than `i'.
On 1/12/24 2:14 AM, Andrew Morton wrote: > On Thu, 11 Jan 2024 13:20:38 +0500 Muhammad Usama Anjum <usama.anjum@collabora.com> wrote: > >> Fix following build warning: >> warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long long unsigned int’ >> > > Looks good to me, but... grumble. > > `i' is an integer. That's just how it is, Blame Fortran if you like. Didn't know this. Thanks for sharing. I'll send a v2 by using two variables. > Discovering that someone used `i' for an unsigned long long is like > seeing > > struct inode *page; > > It is surprising, and readers shouldn't be subjected to surprises. > > `i' is used in two ways here. Twice to iterate across threshold values > (as a ULL) and once to iterate across dest_preamble_size, which is an > int. It would be better to have two different variables for the two > different uses. Ones with more appropriate names than `i'. > -- BR, Muhammad Usama Anjum
© 2016 - 2025 Red Hat, Inc.