Skip to contentSkip to conversation

tools/mm: -Werror fixes in page-types/slabinfo

PATCH Applied Wladislav Wiebe 2 participants 3 messages Oct 22, 2024 – Oct 24, 2024

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tools/mm: -Werror fixes in page-types/slabinfo

Commit e6d2c436ff693 ("tools/mm: allow users to provide additional cflags/ldflags") passes now CFLAGS to Makefile. With this, build systems with default -Werror enabled found:

slabinfo.c:1300:25: error: ignoring return value of 'chdir' declared with attribute 'warn_unused_result' [-Werror=unused-result] chdir("..");
                         ^~~~~~~~~~~
page-types.c:397:35: error: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=] printf("%lu\t", mapcnt0);
                                 ~~^     ~~~~~~~
..

Fix page-types by using PRIu64 for uint64_t prints and check in slabinfo for return code on chdir("..").

---
 tools/mm/page-types.c | 9 +++++----
 tools/mm/slabinfo.c   | 3 ++-

 2 files changed, 7 insertions(+), 5 deletions(-)
tools/mm/page-types.c +0 -0
index 8d5595b6c59f8..69f00eab1b8c7 100644
@@ -22,6 +22,7 @@

 #include <time.h>
 #include <setjmp.h>
 #include <signal.h>
+#include <inttypes.h>
 #include <sys/types.h>
 #include <sys/errno.h>
 #include <sys/fcntl.h>
@@ -392,9 +393,9 @@ static void show_page_range(unsigned long voffset, unsigned long offset, if (opt_file)
             printf("%lx\t", voff);
         if (opt_list_cgroup)
-            printf("@%llu\t", (unsigned long long)cgroup0);
+            printf("@%" PRIu64 "\t", cgroup0);
         if (opt_list_mapcnt)
-            printf("%lu\t", mapcnt0);
+            printf("%" PRIu64 "\t", mapcnt0);
         printf("%lx\t%lx\t%s\n",
                 index, count, page_flag_name(flags0));
     }
@@ -420,9 +421,9 @@ static void show_page(unsigned long voffset, unsigned long offset, if (opt_file)
         printf("%lx\t", voffset);
     if (opt_list_cgroup)
-        printf("@%llu\t", (unsigned long long)cgroup);
+        printf("@%" PRIu64 "\t", cgroup);
     if (opt_list_mapcnt)
-        printf("%lu\t", mapcnt);
+        printf("%" PRIu64 "\t", mapcnt);

     printf("%lx\t%s\n", offset, page_flag_name(flags));
 }

tools/mm/slabinfo.c +0 -0
index cfaeaea71042e..643fd9558e09a 100644
@@ -1297,7 +1297,8 @@ static void read_slab_dir(void)

             slab->cpu_partial_free = get_obj("cpu_partial_free"); slab->alloc_node_mismatch = get_obj("alloc_node_mismatch"); slab->deactivate_bypass = get_obj("deactivate_bypass"); -            chdir("..");
+            if (chdir(".."))
+                fatal("Unable to chdir from slab ../%s\n", slab->name); if (slab->name[0] == ':')
                 alias_targets++;
             slab++;

Signature · 1 line
2.39.3.dirty
maintainer
#1 lore raw
Quoted 15 lines · On Tue, 22 Oct 2024 19:21:13 +0200 Wladislav Wiebe <[email protected]>…

Commit e6d2c436ff693 ("tools/mm: allow users to provide additional cflags/ldflags") passes now CFLAGS to Makefile. With this, build systems with default -Werror enabled found:

slabinfo.c:1300:25: error: ignoring return value of 'chdir' declared with attribute 'warn_unused_result' [-Werror=unused-result] chdir("..");
                         ^~~~~~~~~~~
page-types.c:397:35: error: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=] printf("%lu\t", mapcnt0);
                                 ~~^     ~~~~~~~
..

Quoted 3 lines

Fix page-types by using PRIu64 for uint64_t prints and check in slabinfo for return code on chdir("..").

Thanks.

Your email client messed this up in strange ways, so I basically typed it in again. I added the Fixes: target and a cc:stable.

#2 lore raw
Quoted 17 lines · Andrew Morton
Quoted 15 lines · On Tue, 22 Oct 2024 19:21:13 +0200 Wladislav Wiebe <[email protected]>…

Commit e6d2c436ff693 ("tools/mm: allow users to provide additional cflags/ldflags") passes now CFLAGS to Makefile. With this, build systems with default -Werror enabled found:

slabinfo.c:1300:25: error: ignoring return value of 'chdir' declared with attribute 'warn_unused_result' [-Werror=unused-result] chdir("..");
                         ^~~~~~~~~~~
page-types.c:397:35: error: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=] printf("%lu\t", mapcnt0);
                                 ~~^     ~~~~~~~
..

Quoted 7 lines
Quoted 3 lines

Fix page-types by using PRIu64 for uint64_t prints and check in slabinfo for return code on chdir("..").

Thanks.

Your email client messed this up in strange ways, so I basically typed it in again. I added the Fixes: target and a cc:stable.

thanks for the feedback, seems something went wrong after updating my mail client, I will fix it.