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);
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'.
linux-kselftest-mirror@lists.linaro.org