ca4bd482a0
There is a tiny possibility that when a process is started a trap is taken which causes a context switch. This moves the kernel stack unexpectedly and the task start logic no longer works. Fix this by recording the initial context location, and use that to trampoline into the user process with interrupts disabled. This ensures the context stays intact AND the kernel stack is fully unwound before the user process starts. |
||
---|---|---|
.. | ||
a64 | ||
fvp-v8r | ||
goldfish | ||
imx8 | ||
imx9 | ||
qemu | ||
rk3399 | ||
zynq-mpsoc | ||
.gitignore | ||
arch.h | ||
elf.h | ||
inttypes.h | ||
irq.h | ||
limits.h | ||
setjmp.h | ||
spinlock.h | ||
stdarg.h | ||
syscall.h | ||
types.h |