diff mbox series

powerpc: Fix action argument for cpufeatures-based TLB flush

Message ID 1506488151-9825-1-git-send-email-jk@ozlabs.org (mailing list archive)
State Accepted
Commit 3b7af5c0fd9631762d1c4d7b4cee76f571dd3c2c
Headers show
Series powerpc: Fix action argument for cpufeatures-based TLB flush | expand

Commit Message

Jeremy Kerr Sept. 27, 2017, 4:55 a.m. UTC
Commit 41d0c2ecde introduced calls to __flush_tlb_power[89] from the
cpufeatures code, specifying the number of sets to flush.

However, these functions take an action argument, not a number of sets.
This means we hit the BUG() in __flush_tlb_{206,300} when using
cpufeatures-style configuration.

This change passes TLB_INVAL_SCOPE_GLOBAL instead.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
CC: Nicholas Piggin <npiggin@gmail.com>
---
 arch/powerpc/kernel/dt_cpu_ftrs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Nicholas Piggin Sept. 27, 2017, 5:44 a.m. UTC | #1
On Wed, 27 Sep 2017 12:55:51 +0800
Jeremy Kerr <jk@ozlabs.org> wrote:

> Commit 41d0c2ecde introduced calls to __flush_tlb_power[89] from the
> cpufeatures code, specifying the number of sets to flush.
> 
> However, these functions take an action argument, not a number of sets.
> This means we hit the BUG() in __flush_tlb_{206,300} when using
> cpufeatures-style configuration.
> 
> This change passes TLB_INVAL_SCOPE_GLOBAL instead.
> 
> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
> CC: Nicholas Piggin <npiggin@gmail.com>

Thanks for this, yes it's obviously correct. Sigh, I thought I'd posted
the the same thing, but I didn't actually send it to linuxppc-dev. I had
another one to use early_radix_enabled() rather than radix_enabled()
in the series too. I'll send it.

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Michael Ellerman Oct. 5, 2017, 4:22 a.m. UTC | #2
On Wed, 2017-09-27 at 04:55:51 UTC, Jeremy Kerr wrote:
> Commit 41d0c2ecde introduced calls to __flush_tlb_power[89] from the
> cpufeatures code, specifying the number of sets to flush.
> 
> However, these functions take an action argument, not a number of sets.
> This means we hit the BUG() in __flush_tlb_{206,300} when using
> cpufeatures-style configuration.
> 
> This change passes TLB_INVAL_SCOPE_GLOBAL instead.
> 
> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
> CC: Nicholas Piggin <npiggin@gmail.com>
> Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

Applied to powerpc fixes, thanks.

https://git.kernel.org/powerpc/c/3b7af5c0fd9631762d1c4d7b4cee76

cheers
diff mbox series

Patch

diff --git a/arch/powerpc/kernel/dt_cpu_ftrs.c b/arch/powerpc/kernel/dt_cpu_ftrs.c
index 1df770e..7275fed 100644
--- a/arch/powerpc/kernel/dt_cpu_ftrs.c
+++ b/arch/powerpc/kernel/dt_cpu_ftrs.c
@@ -102,10 +102,10 @@  static void cpufeatures_flush_tlb(void)
 	case PVR_POWER8:
 	case PVR_POWER8E:
 	case PVR_POWER8NVL:
-		__flush_tlb_power8(POWER8_TLB_SETS);
+		__flush_tlb_power8(TLB_INVAL_SCOPE_GLOBAL);
 		break;
 	case PVR_POWER9:
-		__flush_tlb_power9(POWER9_TLB_SETS_HASH);
+		__flush_tlb_power9(TLB_INVAL_SCOPE_GLOBAL);
 		break;
 	default:
 		pr_err("unknown CPU version for boot TLB flush\n");