Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] tools/mm/page-types: Fix misc bugs
@ 2026-05-13  2:21 Ye Liu
  2026-05-13  2:21 ` [PATCH 1/3] tools/mm/page-types: Fix typo in madvise() error message Ye Liu
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Ye Liu @ 2026-05-13  2:21 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Ye Liu, linux-mm, linux-kernel

From: Ye Liu <liuye@kylinos.cn>

This series fixes three issues in tools/mm/page-types.c:

1. Fix two typos in madvise() error messages ("madvice" -> "madvise")
2. Fix operator precedence bug in the sigbus handler where the ternary
   operator binds looser than addition, producing incorrect offset
   calculation when sigbus_addr is non-NULL
3. Fix --kpageflags option declaration in getopt_long: has_arg should
   be 1 (required_argument) since the option requires a file path

Ye Liu (3):
  tools/mm/page-types: Fix typo in madvise() error message
  tools/mm/page-types: Fix ternary operator precedence in sigbus handler
  tools/mm/page-types: Fix kpageflags option argument in getopt_long

 tools/mm/page-types.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/3] tools/mm/page-types: Fix typo in madvise() error message
  2026-05-13  2:21 [PATCH 0/3] tools/mm/page-types: Fix misc bugs Ye Liu
@ 2026-05-13  2:21 ` Ye Liu
  2026-05-13 10:18   ` David Hildenbrand (Arm)
  2026-05-13  2:21 ` [PATCH 2/3] tools/mm/page-types: Fix ternary operator precedence in sigbus handler Ye Liu
  2026-05-13  2:21 ` [PATCH 3/3] tools/mm/page-types: Fix kpageflags option argument in getopt_long Ye Liu
  2 siblings, 1 reply; 7+ messages in thread
From: Ye Liu @ 2026-05-13  2:21 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Ye Liu, linux-mm, linux-kernel

From: Ye Liu <liuye@kylinos.cn>

Two error messages incorrectly spelled the madvise() function name as
"madvice". Fix the typo in both occurrences.

Signed-off-by: Ye Liu <liuye@kylinos.cn>
---
 tools/mm/page-types.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/mm/page-types.c b/tools/mm/page-types.c
index d7e5e8902af8..6594245217a8 100644
--- a/tools/mm/page-types.c
+++ b/tools/mm/page-types.c
@@ -997,7 +997,7 @@ static void walk_file_range(const char *name, int fd,
 
 		/* turn off readahead */
 		if (madvise(ptr, len, MADV_RANDOM))
-			fatal("madvice failed: %s", name);
+			fatal("madvise failed: %s", name);
 
 		if (sigsetjmp(sigbus_jmp, 1)) {
 			end = off + sigbus_addr ? sigbus_addr - ptr : 0;
@@ -1015,7 +1015,7 @@ static void walk_file_range(const char *name, int fd,
 
 		/* turn off harvesting reference bits */
 		if (madvise(ptr, len, MADV_SEQUENTIAL))
-			fatal("madvice failed: %s", name);
+			fatal("madvise failed: %s", name);
 
 		if (pagemap_read(buf, (unsigned long)ptr / page_size,
 					nr_pages) != nr_pages)
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/3] tools/mm/page-types: Fix ternary operator precedence in sigbus handler
  2026-05-13  2:21 [PATCH 0/3] tools/mm/page-types: Fix misc bugs Ye Liu
  2026-05-13  2:21 ` [PATCH 1/3] tools/mm/page-types: Fix typo in madvise() error message Ye Liu
@ 2026-05-13  2:21 ` Ye Liu
  2026-05-13 10:24   ` David Hildenbrand (Arm)
  2026-05-13  2:21 ` [PATCH 3/3] tools/mm/page-types: Fix kpageflags option argument in getopt_long Ye Liu
  2 siblings, 1 reply; 7+ messages in thread
From: Ye Liu @ 2026-05-13  2:21 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Ye Liu, linux-mm, linux-kernel

From: Ye Liu <liuye@kylinos.cn>

The ternary operator (?:) has lower precedence than addition (+), so
the expression `off + sigbus_addr ? sigbus_addr - ptr : 0` was parsed
as `(off + sigbus_addr) ? (sigbus_addr - ptr) : 0` rather than the
intended `off + (sigbus_addr ? sigbus_addr - ptr : 0)`. Add explicit
parentheses to ensure the correct evaluation order.

Signed-off-by: Ye Liu <liuye@kylinos.cn>
---
 tools/mm/page-types.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/mm/page-types.c b/tools/mm/page-types.c
index 6594245217a8..66f429f2b698 100644
--- a/tools/mm/page-types.c
+++ b/tools/mm/page-types.c
@@ -1000,7 +1000,7 @@ static void walk_file_range(const char *name, int fd,
 			fatal("madvise failed: %s", name);
 
 		if (sigsetjmp(sigbus_jmp, 1)) {
-			end = off + sigbus_addr ? sigbus_addr - ptr : 0;
+			end = off + (sigbus_addr ? sigbus_addr - ptr : 0);
 			fprintf(stderr, "got sigbus at offset %lld: %s\n",
 					(long long)end, name);
 			goto got_sigbus;
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/3] tools/mm/page-types: Fix kpageflags option argument in getopt_long
  2026-05-13  2:21 [PATCH 0/3] tools/mm/page-types: Fix misc bugs Ye Liu
  2026-05-13  2:21 ` [PATCH 1/3] tools/mm/page-types: Fix typo in madvise() error message Ye Liu
  2026-05-13  2:21 ` [PATCH 2/3] tools/mm/page-types: Fix ternary operator precedence in sigbus handler Ye Liu
@ 2026-05-13  2:21 ` Ye Liu
  2026-05-13 10:27   ` David Hildenbrand (Arm)
  2 siblings, 1 reply; 7+ messages in thread
From: Ye Liu @ 2026-05-13  2:21 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Ye Liu, linux-mm, linux-kernel

From: Ye Liu <liuye@kylinos.cn>

The --kpageflags option requires an argument to specify the kpageflags
file path, but has_arg was set to 0 (no_argument) in the long options
table. Change it to 1 (required_argument) so getopt_long correctly
parses the argument.

Signed-off-by: Ye Liu <liuye@kylinos.cn>
---
 tools/mm/page-types.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/mm/page-types.c b/tools/mm/page-types.c
index 66f429f2b698..7fc5a8be5997 100644
--- a/tools/mm/page-types.c
+++ b/tools/mm/page-types.c
@@ -1261,7 +1261,7 @@ static const struct option opts[] = {
 	{ "no-summary", 0, NULL, 'N' },
 	{ "hwpoison"  , 0, NULL, 'X' },
 	{ "unpoison"  , 0, NULL, 'x' },
-	{ "kpageflags", 0, NULL, 'F' },
+	{ "kpageflags", 1, NULL, 'F' },
 	{ "help"      , 0, NULL, 'h' },
 	{ NULL        , 0, NULL, 0 }
 };
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] tools/mm/page-types: Fix typo in madvise() error message
  2026-05-13  2:21 ` [PATCH 1/3] tools/mm/page-types: Fix typo in madvise() error message Ye Liu
@ 2026-05-13 10:18   ` David Hildenbrand (Arm)
  0 siblings, 0 replies; 7+ messages in thread
From: David Hildenbrand (Arm) @ 2026-05-13 10:18 UTC (permalink / raw)
  To: Ye Liu, Andrew Morton; +Cc: Ye Liu, linux-mm, linux-kernel

On 5/13/26 04:21, Ye Liu wrote:
> From: Ye Liu <liuye@kylinos.cn>
> 
> Two error messages incorrectly spelled the madvise() function name as
> "madvice". Fix the typo in both occurrences.
> 
> Signed-off-by: Ye Liu <liuye@kylinos.cn>
> ---

Acked-by: David Hildenbrand (Arm) <david@kernel.org>

-- 
Cheers,

David


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/3] tools/mm/page-types: Fix ternary operator precedence in sigbus handler
  2026-05-13  2:21 ` [PATCH 2/3] tools/mm/page-types: Fix ternary operator precedence in sigbus handler Ye Liu
@ 2026-05-13 10:24   ` David Hildenbrand (Arm)
  0 siblings, 0 replies; 7+ messages in thread
From: David Hildenbrand (Arm) @ 2026-05-13 10:24 UTC (permalink / raw)
  To: Ye Liu, Andrew Morton; +Cc: Ye Liu, linux-mm, linux-kernel

On 5/13/26 04:21, Ye Liu wrote:
> From: Ye Liu <liuye@kylinos.cn>
> 
> The ternary operator (?:) has lower precedence than addition (+), so
> the expression `off + sigbus_addr ? sigbus_addr - ptr : 0` was parsed
> as `(off + sigbus_addr) ? (sigbus_addr - ptr) : 0` rather than the
> intended `off + (sigbus_addr ? sigbus_addr - ptr : 0)`. Add explicit
> parentheses to ensure the correct evaluation order.
> 
> Signed-off-by: Ye Liu <liuye@kylinos.cn>
> ---
>  tools/mm/page-types.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/mm/page-types.c b/tools/mm/page-types.c
> index 6594245217a8..66f429f2b698 100644
> --- a/tools/mm/page-types.c
> +++ b/tools/mm/page-types.c
> @@ -1000,7 +1000,7 @@ static void walk_file_range(const char *name, int fd,
>  			fatal("madvise failed: %s", name);
>  
>  		if (sigsetjmp(sigbus_jmp, 1)) {
> -			end = off + sigbus_addr ? sigbus_addr - ptr : 0;
> +			end = off + (sigbus_addr ? sigbus_addr - ptr : 0);
>  			fprintf(stderr, "got sigbus at offset %lld: %s\n",
>  					(long long)end, name);
>  			goto got_sigbus;

"sigbus_addr - ptr" will give us the offset into the mmap(). Adding that to off
will give us the offset into the file.

No idea what happens if we don't have sigbus_addr ...

Anyhow, your change looks good, I just have no idea whether updating "end" here
is the right thing to do.

-- 
Cheers,

David


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/3] tools/mm/page-types: Fix kpageflags option argument in getopt_long
  2026-05-13  2:21 ` [PATCH 3/3] tools/mm/page-types: Fix kpageflags option argument in getopt_long Ye Liu
@ 2026-05-13 10:27   ` David Hildenbrand (Arm)
  0 siblings, 0 replies; 7+ messages in thread
From: David Hildenbrand (Arm) @ 2026-05-13 10:27 UTC (permalink / raw)
  To: Ye Liu, Andrew Morton; +Cc: Ye Liu, linux-mm, linux-kernel

On 5/13/26 04:21, Ye Liu wrote:
> From: Ye Liu <liuye@kylinos.cn>
> 
> The --kpageflags option requires an argument to specify the kpageflags
> file path, but has_arg was set to 0 (no_argument) in the long options
> table. Change it to 1 (required_argument) so getopt_long correctly
> parses the argument.
> 
> Signed-off-by: Ye Liu <liuye@kylinos.cn>
> ---
>  tools/mm/page-types.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/mm/page-types.c b/tools/mm/page-types.c
> index 66f429f2b698..7fc5a8be5997 100644
> --- a/tools/mm/page-types.c
> +++ b/tools/mm/page-types.c
> @@ -1261,7 +1261,7 @@ static const struct option opts[] = {
>  	{ "no-summary", 0, NULL, 'N' },
>  	{ "hwpoison"  , 0, NULL, 'X' },
>  	{ "unpoison"  , 0, NULL, 'x' },
> -	{ "kpageflags", 0, NULL, 'F' },
> +	{ "kpageflags", 1, NULL, 'F' },
>  	{ "help"      , 0, NULL, 'h' },
>  	{ NULL        , 0, NULL, 0 }
>  };


Acked-by: David Hildenbrand (Arm) <david@kernel.org>

-- 
Cheers,

David


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-05-13 10:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-13  2:21 [PATCH 0/3] tools/mm/page-types: Fix misc bugs Ye Liu
2026-05-13  2:21 ` [PATCH 1/3] tools/mm/page-types: Fix typo in madvise() error message Ye Liu
2026-05-13 10:18   ` David Hildenbrand (Arm)
2026-05-13  2:21 ` [PATCH 2/3] tools/mm/page-types: Fix ternary operator precedence in sigbus handler Ye Liu
2026-05-13 10:24   ` David Hildenbrand (Arm)
2026-05-13  2:21 ` [PATCH 3/3] tools/mm/page-types: Fix kpageflags option argument in getopt_long Ye Liu
2026-05-13 10:27   ` David Hildenbrand (Arm)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox