[PATCH 1/3] mm/pagewalk: use min() macro instead of manual ternary

Sahil Chandna posted 3 patches 1 week, 6 days ago
There is a newer version of this series
[PATCH 1/3] mm/pagewalk: use min() macro instead of manual ternary
Posted by Sahil Chandna 1 week, 6 days ago
 mm: pagewalk: use min() macro instead of manual ternary expression

Use the kernel-provided min() macro to compute the minimum value instead
of an explicit ternary expression. This improves readability and matches
common kernel style.

This was flagged by Coccinelle
(misc/minmax.cocci) as an opportunity to use min().

Found by: make coccicheck MODE=report M=mm/
No functional change intended.

Signed-off-by: Sahil Chandna <chandna.sahil@gmail.com>
---
 mm/pagewalk.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/pagewalk.c b/mm/pagewalk.c
index 9f91cf85a5be..82db421b5b34 100644
--- a/mm/pagewalk.c
+++ b/mm/pagewalk.c
@@ -313,7 +313,7 @@ static unsigned long hugetlb_entry_end(struct hstate *h, unsigned long addr,
 				       unsigned long end)
 {
 	unsigned long boundary = (addr & huge_page_mask(h)) + huge_page_size(h);
-	return boundary < end ? boundary : end;
+	return min(boundary, end);
 }
 
 static int walk_hugetlb_range(unsigned long addr, unsigned long end,
-- 
2.50.1
Re: [PATCH 1/3] mm/pagewalk: use min() macro instead of manual ternary
Posted by David Laight 1 week, 6 days ago
On Tue, 18 Nov 2025 11:38:49 +0530
Sahil Chandna <chandna.sahil@gmail.com> wrote:

>  mm: pagewalk: use min() macro instead of manual ternary expression
> 
> Use the kernel-provided min() macro to compute the minimum value instead
> of an explicit ternary expression. This improves readability and matches
> common kernel style.
> 
> This was flagged by Coccinelle
> (misc/minmax.cocci) as an opportunity to use min().
> 
> Found by: make coccicheck MODE=report M=mm/
> No functional change intended.
> 
> Signed-off-by: Sahil Chandna <chandna.sahil@gmail.com>
> ---
>  mm/pagewalk.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/pagewalk.c b/mm/pagewalk.c
> index 9f91cf85a5be..82db421b5b34 100644
> --- a/mm/pagewalk.c
> +++ b/mm/pagewalk.c
> @@ -313,7 +313,7 @@ static unsigned long hugetlb_entry_end(struct hstate *h, unsigned long addr,
>  				       unsigned long end)
>  {
>  	unsigned long boundary = (addr & huge_page_mask(h)) + huge_page_size(h);
> -	return boundary < end ? boundary : end;
> +	return min(boundary, end);

You can remove the temporary:
	return min((addr & huge_page_mask(h)) + huge_page_size(h), end);

  David

>  }
>  
>  static int walk_hugetlb_range(unsigned long addr, unsigned long end,
Re: [PATCH 1/3] mm/pagewalk: use min() macro instead of manual ternary
Posted by Matthew Wilcox 1 week, 6 days ago
On Tue, Nov 18, 2025 at 10:45:37AM +0000, David Laight wrote:
> On Tue, 18 Nov 2025 11:38:49 +0530
> Sahil Chandna <chandna.sahil@gmail.com> wrote:
> > +++ b/mm/pagewalk.c
> > @@ -313,7 +313,7 @@ static unsigned long hugetlb_entry_end(struct hstate *h, unsigned long addr,
> >  				       unsigned long end)
> >  {
> >  	unsigned long boundary = (addr & huge_page_mask(h)) + huge_page_size(h);
> > -	return boundary < end ? boundary : end;
> > +	return min(boundary, end);
> 
> You can remove the temporary:
> 	return min((addr & huge_page_mask(h)) + huge_page_size(h), end);

You can, but I'm not sure that's better.  What would be better is:

	unsigned long boundary = (addr | ~huge_page_mask(h)) + 1;
	return min(boundary, end);

if you insist, we could do:

	return min((addr | ~huge_page_mask(h)) + 1, end);
Re: [PATCH 1/3] mm/pagewalk: use min() macro instead of manual ternary
Posted by David Laight 1 week, 6 days ago
On Tue, 18 Nov 2025 15:18:50 +0000
Matthew Wilcox <willy@infradead.org> wrote:

> On Tue, Nov 18, 2025 at 10:45:37AM +0000, David Laight wrote:
> > On Tue, 18 Nov 2025 11:38:49 +0530
> > Sahil Chandna <chandna.sahil@gmail.com> wrote:  
> > > +++ b/mm/pagewalk.c
> > > @@ -313,7 +313,7 @@ static unsigned long hugetlb_entry_end(struct hstate *h, unsigned long addr,
> > >  				       unsigned long end)
> > >  {
> > >  	unsigned long boundary = (addr & huge_page_mask(h)) + huge_page_size(h);
> > > -	return boundary < end ? boundary : end;
> > > +	return min(boundary, end);  
> > 
> > You can remove the temporary:
> > 	return min((addr & huge_page_mask(h)) + huge_page_size(h), end);  
> 
> You can, but I'm not sure that's better.  What would be better is:
> 
> 	unsigned long boundary = (addr | ~huge_page_mask(h)) + 1;
> 	return min(boundary, end);
> 
> if you insist, we could do:
> 
> 	return min((addr | ~huge_page_mask(h)) + 1, end);

Indeed...

	David
Re: [PATCH 1/3] mm/pagewalk: use min() macro instead of manual ternary
Posted by Markus Elfring 1 week, 6 days ago
>  mm: pagewalk: use min() macro instead of manual ternary expression

How do you think about to avoid the repetition of a patch subject
in the change description?


…
> This was flagged by Coccinelle
> (misc/minmax.cocci) as an opportunity to use min().

Would an other word wrapping be a bit nicer?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.18-rc6#n658

Regards,
Markus