[PATCH] s390/mm: Simplify gap clamping in mmap_base() using clamp()

Qasim Ijaz posted 1 patch 10 months, 1 week ago
arch/s390/mm/mmap.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
[PATCH] s390/mm: Simplify gap clamping in mmap_base() using clamp()
Posted by Qasim Ijaz 10 months, 1 week ago
mmap_base() has logic to ensure that the variable "gap" stays within the 
range defined by "gap_min" and "gap_max". Replace this with the clamp() 
macro to shorten and simplify code.

Signed-off-by: Qasim Ijaz <qasdev00@gmail.com>
---
 arch/s390/mm/mmap.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
index 76f376876e0d..a3d3e09a2828 100644
--- a/arch/s390/mm/mmap.c
+++ b/arch/s390/mm/mmap.c
@@ -63,11 +63,7 @@ static inline unsigned long mmap_base(unsigned long rnd,
 	 */
 	gap_min = SZ_128M;
 	gap_max = (STACK_TOP / 6) * 5;
-
-	if (gap < gap_min)
-		gap = gap_min;
-	else if (gap > gap_max)
-		gap = gap_max;
+	gap = clamp(gap, gap_min, gap_max);
 
 	return PAGE_ALIGN(STACK_TOP - gap - rnd);
 }
-- 
2.39.5
Re: [PATCH] s390/mm: Simplify gap clamping in mmap_base() using clamp()
Posted by Vasily Gorbik 9 months, 3 weeks ago
On Tue, Feb 04, 2025 at 04:25:08PM +0000, Qasim Ijaz wrote:
> mmap_base() has logic to ensure that the variable "gap" stays within the 
> range defined by "gap_min" and "gap_max". Replace this with the clamp() 
> macro to shorten and simplify code.
> 
> Signed-off-by: Qasim Ijaz <qasdev00@gmail.com>
> ---
>  arch/s390/mm/mmap.c | 6 +-----
>  1 file changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
> index 76f376876e0d..a3d3e09a2828 100644
> --- a/arch/s390/mm/mmap.c
> +++ b/arch/s390/mm/mmap.c
> @@ -63,11 +63,7 @@ static inline unsigned long mmap_base(unsigned long rnd,
>  	 */
>  	gap_min = SZ_128M;
>  	gap_max = (STACK_TOP / 6) * 5;
> -
> -	if (gap < gap_min)
> -		gap = gap_min;
> -	else if (gap > gap_max)
> -		gap = gap_max;
> +	gap = clamp(gap, gap_min, gap_max);
>  
>  	return PAGE_ALIGN(STACK_TOP - gap - rnd);
>  }
> -- 

Reviewed-by: Vasily Gorbik <gor@linux.ibm.com>

Applied, with a fixup removing the gap_min and gap_max variables as
Alexander proposed and aligning with your patch for x86. Thank you!

https://lore.kernel.org/all/174014934373.10177.13398467994659612713.tip-bot2@tip-bot2/
Re: [PATCH] s390/mm: Simplify gap clamping in mmap_base() using clamp()
Posted by Alexander Gordeev 10 months ago
On Tue, Feb 04, 2025 at 04:25:08PM +0000, Qasim Ijaz wrote:
> mmap_base() has logic to ensure that the variable "gap" stays within the 
> range defined by "gap_min" and "gap_max". Replace this with the clamp() 
> macro to shorten and simplify code.
> 
> Signed-off-by: Qasim Ijaz <qasdev00@gmail.com>
> ---
>  arch/s390/mm/mmap.c | 6 +-----
>  1 file changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
> index 76f376876e0d..a3d3e09a2828 100644
> --- a/arch/s390/mm/mmap.c
> +++ b/arch/s390/mm/mmap.c
> @@ -63,11 +63,7 @@ static inline unsigned long mmap_base(unsigned long rnd,
>  	 */
>  	gap_min = SZ_128M;
>  	gap_max = (STACK_TOP / 6) * 5;
> -
> -	if (gap < gap_min)
> -		gap = gap_min;
> -	else if (gap > gap_max)
> -		gap = gap_max;
> +	gap = clamp(gap, gap_min, gap_max);
>  
>  	return PAGE_ALIGN(STACK_TOP - gap - rnd);
>  }

Whenever possible I personally prefer branches over ternary operators.
But if one wants to clump it in one line, then gap_min and gap_max
are also redundant.

Thanks!