]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftest/mm: fix pointer comparison in mremap_test
authorAnkit Khushwaha <ankitkhushwaha.linux@gmail.com>
Sat, 8 Nov 2025 16:18:29 +0000 (21:48 +0530)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 20 Nov 2025 21:43:57 +0000 (13:43 -0800)
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.

Link: https://lkml.kernel.org/r/20251108161829.25105-1-ankitkhushwaha.linux@gmail.com
Signed-off-by: Ankit Khushwaha <ankitkhushwaha.linux@gmail.com>
Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/mremap_test.c

index bf2863b102e3d45a96ac555ee8a86dc8613f44e1..5f073504e0b104494f039611fc51314efc013941 100644 (file)
@@ -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;
+               if (tmp_addr < addr) {
                        ksft_print_msg("Couldn't find a valid region to remap to\n");
                        ret = -1;
                        goto clean_up_src;