Re: [PATCH v3 13/15] powerpc/64s: machine check do not trace real-mode handler

2020-04-07 Thread Christophe Leroy




Le 07/04/2020 à 07:16, Nicholas Piggin a écrit :

Rather than notrace annotations throughout a significant part of the
machine check code across kernel/ pseries/ and powernv/ which can
easily be broken and is infrequently tested, use paca->ftrace_enabled
to blanket-disable tracing of the real-mode non-maskable handler.

Acked-by: Naveen N. Rao 
Signed-off-by: Nicholas Piggin 


Reviewed-by: Christophe Leroy 


---
  arch/powerpc/kernel/mce.c | 9 -
  1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/mce.c b/arch/powerpc/kernel/mce.c
index be7e3f92a7b5..fd90c0eda229 100644
--- a/arch/powerpc/kernel/mce.c
+++ b/arch/powerpc/kernel/mce.c
@@ -16,6 +16,7 @@
  #include 
  #include 
  #include 
+#include 
  
  #include 

  #include 
@@ -571,10 +572,14 @@ EXPORT_SYMBOL_GPL(machine_check_print_event_info);
   *
   * regs->nip and regs->msr contains srr0 and ssr1.
   */
-long machine_check_early(struct pt_regs *regs)
+long notrace machine_check_early(struct pt_regs *regs)
  {
long handled = 0;
bool nested = in_nmi();
+   u8 ftrace_enabled = this_cpu_get_ftrace_enabled();
+
+   this_cpu_set_ftrace_enabled(0);
+
if (!nested)
nmi_enter();
  
@@ -589,6 +594,8 @@ long machine_check_early(struct pt_regs *regs)

if (!nested)
nmi_exit();
  
+	this_cpu_set_ftrace_enabled(ftrace_enabled);

+
return handled;
  }
  



[PATCH v3 13/15] powerpc/64s: machine check do not trace real-mode handler

2020-04-06 Thread Nicholas Piggin
Rather than notrace annotations throughout a significant part of the
machine check code across kernel/ pseries/ and powernv/ which can
easily be broken and is infrequently tested, use paca->ftrace_enabled
to blanket-disable tracing of the real-mode non-maskable handler.

Acked-by: Naveen N. Rao 
Signed-off-by: Nicholas Piggin 
---
 arch/powerpc/kernel/mce.c | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/mce.c b/arch/powerpc/kernel/mce.c
index be7e3f92a7b5..fd90c0eda229 100644
--- a/arch/powerpc/kernel/mce.c
+++ b/arch/powerpc/kernel/mce.c
@@ -16,6 +16,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -571,10 +572,14 @@ EXPORT_SYMBOL_GPL(machine_check_print_event_info);
  *
  * regs->nip and regs->msr contains srr0 and ssr1.
  */
-long machine_check_early(struct pt_regs *regs)
+long notrace machine_check_early(struct pt_regs *regs)
 {
long handled = 0;
bool nested = in_nmi();
+   u8 ftrace_enabled = this_cpu_get_ftrace_enabled();
+
+   this_cpu_set_ftrace_enabled(0);
+
if (!nested)
nmi_enter();
 
@@ -589,6 +594,8 @@ long machine_check_early(struct pt_regs *regs)
if (!nested)
nmi_exit();
 
+   this_cpu_set_ftrace_enabled(ftrace_enabled);
+
return handled;
 }
 
-- 
2.23.0