mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
powerpc/64s: Fix HV NMI vs HV interrupt recoverability test
HV interrupts that use HSRR registers do not enter with MSR[RI] clear, but their entry code is not recoverable vs NMI, due to shared use of HSPRG1 as a scratch register to save r13. This means that a system reset or machine check that hits in HSRR interrupt entry can cause r13 to be silently corrupted. Fix this by marking NMIs non-recoverable if they land in HV interrupt ranges. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
3b4d07d267
commit
ccd477028a
5 changed files with 87 additions and 0 deletions
|
@ -31,6 +31,7 @@
|
|||
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/mce.h>
|
||||
#include <asm/nmi.h>
|
||||
|
||||
static DEFINE_PER_CPU(int, mce_nest_count);
|
||||
static DEFINE_PER_CPU(struct machine_check_event[MAX_MC_EVT], mce_event);
|
||||
|
@ -490,6 +491,8 @@ long machine_check_early(struct pt_regs *regs)
|
|||
{
|
||||
long handled = 0;
|
||||
|
||||
hv_nmi_check_nonrecoverable(regs);
|
||||
|
||||
/*
|
||||
* See if platform is capable of handling machine check.
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue