mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
powerpc/64s: machine check do not trace real-mode handler
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. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Reviewed-by: Christophe Leroy <christophe.leroy@c-s.fr> Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Link: https://lore.kernel.org/r/20200508043408.886394-14-npiggin@gmail.com
This commit is contained in:
parent
f2d7f62e4a
commit
abd106fb43
1 changed files with 8 additions and 1 deletions
|
@ -16,6 +16,7 @@
|
|||
#include <linux/export.h>
|
||||
#include <linux/irq_work.h>
|
||||
#include <linux/extable.h>
|
||||
#include <linux/ftrace.h>
|
||||
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/mce.h>
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue