Re: Stable backport request: powerpc/mm radix_tlb warnings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 1 Mar 2023 at 22:31, Daniel Díaz <daniel.diaz@xxxxxxxxxx> wrote:
> Hello!
>
> Would the stable maintainers please consider backporting the following
> commit to the 5.15, 6.1, and 6.2 stable branches? It's been
> build-tested and verified it fixes the problem described therein.
>
> commit d78c8e32890ef7eca79ffd67c96022c7f9d8cce4
> Author: Anders Roxell <anders.roxell@xxxxxxxxxx>
> Date:   Wed Aug 10 13:43:18 2022 +0200
>
>     powerpc/mm: Rearrange if-else block to avoid clang warning
>
> Clang (13, 14, 15, 16, nightly) warns as follows:
> -----8<----------8<----------8<-----
> arch/powerpc/mm/book3s64/radix_tlb.c:1191:23: error: variable 'hstart'
> is uninitialized when used here
>   __tlbiel_va_range(hstart, hend, pid,
>                     ^~~~~~
> arch/powerpc/mm/book3s64/radix_tlb.c:1191:31: error: variable 'hend'
> is uninitialized when used here
>   __tlbiel_va_range(hstart, hend, pid,
>                             ^~~~
> ----->8---------->8---------->8-----
>
> Those warnings make the builds fail.
>
> The same patch applies to 5.10 with fuzz 2 (offset -243 lines).
> Attached is that updated patch.
>
> The code for 5.4 (and below) is different, so this patch would not apply there.
>
> Thanks and greetings!
>
> Daniel Díaz
> daniel.diaz@xxxxxxxxxx

+ stable mailing list

-- 
ddiaz
From c12cf1d2078350a91fcdaac9d0978ef06efea3ed Mon Sep 17 00:00:00 2001
From: Anders Roxell <anders.roxell@xxxxxxxxxx>
Date: Wed, 10 Aug 2022 13:43:18 +0200
Subject: [PATCH] powerpc/mm: Rearrange if-else block to avoid clang warning
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

commit d78c8e32890ef7eca79ffd67c96022c7f9d8cce4 upstream.

Clang warns:

  arch/powerpc/mm/book3s64/radix_tlb.c:1191:23: error: variable 'hstart' is uninitialized when used here
    __tlbiel_va_range(hstart, hend, pid,
                      ^~~~~~
  arch/powerpc/mm/book3s64/radix_tlb.c:1191:31: error: variable 'hend' is uninitialized when used here
    __tlbiel_va_range(hstart, hend, pid,
                              ^~~~

Rework the 'if (IS_ENABLE(CONFIG_TRANSPARENT_HUGEPAGE))' so hstart/hend
is always initialized to silence the warnings. That will also simplify
the 'else' path. Clang is getting confused with these warnings, but the
warnings is a false-positive.

Suggested-by: Arnd Bergmann <arnd@xxxxxxxx>
Suggested-by: Nathan Chancellor <nathan@xxxxxxxxxx>
Reviewed-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx>
Signed-off-by: Anders Roxell <anders.roxell@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Daniel Díaz <daniel.diaz@xxxxxxxxxx>
Link: https://lore.kernel.org/r/20220810114318.3220630-1-anders.roxell@xxxxxxxxxx
---
 arch/powerpc/mm/book3s64/radix_tlb.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/arch/powerpc/mm/book3s64/radix_tlb.c b/arch/powerpc/mm/book3s64/radix_tlb.c
index 4c2f75916a7e..abbfd5cc40c9 100644
--- a/arch/powerpc/mm/book3s64/radix_tlb.c
+++ b/arch/powerpc/mm/book3s64/radix_tlb.c
@@ -941,15 +941,12 @@ static inline void __radix__flush_tlb_range(struct mm_struct *mm,
 			}
 		}
 	} else {
-		bool hflush = false;
+		bool hflush;
 		unsigned long hstart, hend;
 
-		if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) {
-			hstart = (start + PMD_SIZE - 1) & PMD_MASK;
-			hend = end & PMD_MASK;
-			if (hstart < hend)
-				hflush = true;
-		}
+		hstart = (start + PMD_SIZE - 1) & PMD_MASK;
+		hend = end & PMD_MASK;
+		hflush = IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && hstart < hend;
 
 		if (local) {
 			asm volatile("ptesync": : :"memory");
-- 
2.34.1


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux