zephyr/kernel
Andrew Boie 2cfeba8507 x86: implement interrupt stack trampoline
Upon hard/soft irq or exception entry/exit, handle transitions
off or onto the trampoline stack, which is the only stack that
can be used on the kernel side when the shadow page table
is active. We swap page tables when on this stack.

Adjustments to page tables are now as follows:

- Any adjustments for stack memory access now are always done
  to the user page tables

- Any adjustments for memory domains are now always done to
  the user page tables

- With KPTI, resetting a page now clears the present bit

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-02-14 12:46:36 -05:00
..
include x86: implement interrupt stack trampoline 2019-02-14 12:46:36 -05:00
atomic_c.c kernel/atomic_c: Spinlockify 2019-02-08 14:49:39 -05:00
CMakeLists.txt cmake: Use variables for target names 2019-01-19 07:21:55 -05:00
compiler_stack_protect.c kernel: add CODE_UNREACHABLE in _StackCheckHandler 2018-04-17 10:50:12 -07:00
device.c kernel: check retval of driver init 2018-12-07 19:33:23 -05:00
errno.c kernel: userspace: reserve stack space to store local data 2018-08-17 09:40:52 -07:00
idle.c power: Fix naming of Kconfig options controlling deep sleep states 2019-02-12 07:46:32 -05:00
init.c kernel: Add _unlocked() variant to context switch primitives 2019-02-08 14:49:39 -05:00
int_latency_bench.c kernel: Make statements evaluate boolean expressions 2019-01-07 08:52:07 -05:00
Kconfig kernel: minor syntax fix in Kconfig 2019-02-12 08:29:33 -06:00
Kconfig.power_mgmt power: Fix naming of Kconfig options controlling deep sleep states 2019-02-12 07:46:32 -05:00
mailbox.c kernel/mbox: Spinlockify 2019-02-08 14:49:39 -05:00
mem_domain.c kernel/mem_domain: Spinlockify 2019-02-08 14:49:39 -05:00
mem_slab.c kernel/mem_slab: Spinlockify 2019-02-08 14:49:39 -05:00
mempool.c kernel/mempool: Spinlockify 2019-02-08 14:49:39 -05:00
msg_q.c kernel/msg_q: Spinlockify 2019-02-08 14:49:39 -05:00
mutex.c kernel/mutex: Spinlockify 2019-02-08 14:49:39 -05:00
pipes.c kernel/pipe: Spinlockify 2019-02-08 14:49:39 -05:00
poll.c kernel/poll: Spinlockify 2019-02-08 14:49:39 -05:00
queue.c kernel/queue: Spinlockify 2019-02-08 14:49:39 -05:00
sched.c kernel/sched: _thread_priority_set needs to be sched_lock aware 2019-02-08 14:49:39 -05:00
sem.c kernel/k_sem: Spinlockify 2019-02-08 14:49:39 -05:00
smp.c kernel: Add _unlocked() variant to context switch primitives 2019-02-08 14:49:39 -05:00
stack.c kernel/stack: Spinlockify 2019-02-08 14:49:39 -05:00
system_work_q.c kernel: system_work_q: Set dedicated "sysworkq" name. 2018-10-19 07:58:45 -04:00
thread_abort.c kernel/thread_abort: Remove needless locking 2019-02-08 14:49:39 -05:00
thread.c kernel/thread: Spinlockify 2019-02-08 14:49:39 -05:00
timeout.c misc/dlist: Swap insertion API for a faster one 2019-02-01 15:57:21 -05:00
timer.c kernel/timer: Spinlockify 2019-02-08 14:49:39 -05:00
userspace_handler.c kernel: Make statements evaluate boolean expressions 2019-01-07 08:52:07 -05:00
userspace.c kernel/userspace: Spinlockification 2019-02-08 14:49:39 -05:00
version.c doc: add kernel version API to doxygen 2018-12-08 17:24:53 -05:00
work_q.c kernel/work_q: Spinlockify 2019-02-08 14:49:39 -05:00