]> git.baikalelectronics.ru Git - kernel.git/commit
entry: Provide generic interrupt entry/exit code
authorThomas Gleixner <tglx@linutronix.de>
Wed, 22 Jul 2020 21:59:58 +0000 (23:59 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 24 Jul 2020 12:59:04 +0000 (14:59 +0200)
commitc4a89269d30351a77bba3444e63494f401832f45
tree8447dfe5dae8cbbf7df6de8ccc1bdf65cf2fa840
parenta187cc9ddfb87949969648e2222ae45fdf4d8b58
entry: Provide generic interrupt entry/exit code

Like the syscall entry/exit code interrupt/exception entry after the real
low level ASM bits should not be different accross architectures.

Provide a generic version based on the x86 code.

irqentry_enter() is called after the low level entry code and
irqentry_exit() must be invoked right before returning to the low level
code which just contains the actual return logic. The code before
irqentry_enter() and irqentry_exit() must not be instrumented. Code after
irqentry_enter() and before irqentry_exit() can be instrumented.

irqentry_enter() invokes irqentry_enter_from_user_mode() if the
interrupt/exception came from user mode. If if entered from kernel mode it
handles the kernel mode variant of establishing state for lockdep, RCU and
tracing depending on the kernel context it interrupted (idle, non-idle).

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200722220519.723703209@linutronix.de
include/linux/entry-common.h
kernel/entry/common.c