On Sat, Nov 08, 2025 at 09:48:29PM +0530, Ankit Khushwaha wrote:
> Pointer arthemitic with 'void * addr' and 'ulong dest_alignment'
> triggers following warning:
> 
> mremap_test.c:1035:31: warning: pointer comparison always evaluates to
> false [-Wtautological-compare]
>  1035 |                 if (addr + c.dest_alignment < addr) {
>       |                                             ^
> 
> this warning is raised from clang version 20.1.8 (Fedora 20.1.8-4.fc42).
> 
> use 'void *tmp_addr' to do the pointer arthemitic.
> 
> Signed-off-by: Ankit Khushwaha <[email protected]>
> ---
> Changelog:
> v2:
> - use 'void *tmp_addr' for pointer arthemitic instead of typecasting
> 'addr' to 'unsigned long long' as suggested by Andrew.
> 
> v1: 
> https://lore.kernel.org/linux-kselftest/[email protected]/
> ---
>  tools/testing/selftests/mm/mremap_test.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/mm/mremap_test.c 
> b/tools/testing/selftests/mm/mremap_test.c
> index a95c0663a011..308576437228 100644
> --- a/tools/testing/selftests/mm/mremap_test.c
> +++ b/tools/testing/selftests/mm/mremap_test.c
> @@ -994,7 +994,7 @@ static void mremap_move_multi_invalid_vmas(FILE *maps_fp, 
> unsigned long page_siz
>  static long long remap_region(struct config c, unsigned int threshold_mb,
>                             char *rand_addr)
>  {
> -     void *addr, *src_addr, *dest_addr, *dest_preamble_addr = NULL;
> +     void *addr, *tmp_addr, *src_addr, *dest_addr, *dest_preamble_addr = 
> NULL;
>       unsigned long long t, d;
>       struct timespec t_start = {0, 0}, t_end = {0, 0};
>       long long  start_ns, end_ns, align_mask, ret, offset;
> @@ -1032,7 +1032,8 @@ static long long remap_region(struct config c, unsigned 
> int threshold_mb,
>       /* Don't destroy existing mappings unless expected to overlap */
>       while (!is_remap_region_valid(addr, c.region_size) && !c.overlapping) {
>               /* Check for unsigned overflow */
> -             if (addr + c.dest_alignment < addr) {
> +             tmp_addr = addr + c.dest_alignment;

Nit: tmp_addr can be declared here.

Other than that

Acked-by: Mike Rapoport (Microsoft) <[email protected]>

> +             if (tmp_addr < addr) {
>                       ksft_print_msg("Couldn't find a valid region to remap 
> to\n");
>                       ret = -1;
>                       goto clean_up_src;
> --
> 2.51.1
> 

-- 
Sincerely yours,
Mike.

Reply via email to