]> git.baikalelectronics.ru Git - kernel.git/commit
xtensa: implement fake NMI
authorMax Filippov <jcmvbkbc@gmail.com>
Thu, 16 Jul 2015 07:37:31 +0000 (10:37 +0300)
committerMax Filippov <jcmvbkbc@gmail.com>
Mon, 17 Aug 2015 04:33:39 +0000 (07:33 +0300)
commit6575b47d6ee8b43d64e0c4c0d3f884a5ba2f8a16
treeca3aae4c2e29ee81c66dcc16eb835e0b8c4e631f
parent84af28830a5639234c0b819575602c0754e1a506
xtensa: implement fake NMI

In case perf IRQ is the highest of the medium-level IRQs, and is alone
on its level, it may be treated as NMI:
- LOCKLEVEL is defined to be one level less than EXCM level,
- IRQ masking never lowers current IRQ level,
- new fake exception cause code, EXCCAUSE_MAPPED_NMI is assigned to that
  IRQ; new second level exception handler, do_nmi, assigned to it
  handles it as NMI,
- atomic operations in configurations without s32c1i still need to mask
  all interrupts.

Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/include/asm/atomic.h
arch/xtensa/include/asm/cmpxchg.h
arch/xtensa/include/asm/irqflags.h
arch/xtensa/include/asm/processor.h
arch/xtensa/kernel/entry.S
arch/xtensa/kernel/irq.c
arch/xtensa/kernel/perf_event.c
arch/xtensa/kernel/traps.c
arch/xtensa/kernel/vectors.S