| From fc37a1632d40c80c067eb1bc235139f5867a2667 Mon Sep 17 00:00:00 2001 |
| From: "Desnes A. Nunes do Rosario" <desnesn@linux.ibm.com> |
| Date: Thu, 27 Feb 2020 10:47:15 -0300 |
| Subject: powerpc: fix hardware PMU exception bug on PowerVM compatibility mode systems |
| |
| From: Desnes A. Nunes do Rosario <desnesn@linux.ibm.com> |
| |
| commit fc37a1632d40c80c067eb1bc235139f5867a2667 upstream. |
| |
| PowerVM systems running compatibility mode on a few Power8 revisions are |
| still vulnerable to the hardware defect that loses PMU exceptions arriving |
| prior to a context switch. |
| |
| The software fix for this issue is enabled through the CPU_FTR_PMAO_BUG |
| cpu_feature bit, nevertheless this bit also needs to be set for PowerVM |
| compatibility mode systems. |
| |
| Fixes: 68f2f0d431d9ea4 ("powerpc: Add a cpu feature CPU_FTR_PMAO_BUG") |
| Signed-off-by: Desnes A. Nunes do Rosario <desnesn@linux.ibm.com> |
| Reviewed-by: Leonardo Bras <leonardo@linux.ibm.com> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Link: https://lore.kernel.org/r/20200227134715.9715-1-desnesn@linux.ibm.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/powerpc/kernel/cputable.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/arch/powerpc/kernel/cputable.c |
| +++ b/arch/powerpc/kernel/cputable.c |
| @@ -2193,11 +2193,13 @@ static struct cpu_spec * __init setup_cp |
| * oprofile_cpu_type already has a value, then we are |
| * possibly overriding a real PVR with a logical one, |
| * and, in that case, keep the current value for |
| - * oprofile_cpu_type. |
| + * oprofile_cpu_type. Futhermore, let's ensure that the |
| + * fix for the PMAO bug is enabled on compatibility mode. |
| */ |
| if (old.oprofile_cpu_type != NULL) { |
| t->oprofile_cpu_type = old.oprofile_cpu_type; |
| t->oprofile_type = old.oprofile_type; |
| + t->cpu_features |= old.cpu_features & CPU_FTR_PMAO_BUG; |
| } |
| } |
| |