Official MINIX sources - Automatically replicated from gerrit.minix3.org
Those features were not configured properly and had a race-condition when enabling back interrupts before a sysexit/sysret. Configuration: The BSP is executing tss_init on behalf of APs. Thus any writes in the MSRs in tss_init would end up in the BSP's MSRs leading to: * BSP not using the correct kernel stack. * APs using undefined instruction/stack pointer and code segment upon entering the kernel. Fix: Let the cores writing in their own MSRs. Race-condition: When restoring a process' EFLAGS before a sysexit/sysret interrupts could be enabled while the core was still in the kernel. If an interrupt is triggered at this point it would lead to a deadlock on the BKL down the line. Fix: Disable IF in saved EFLAGS and use sti before sysexit/sysret. |
||
|---|---|---|
| bin | ||
| common | ||
| crypto | ||
| dist/pf/sbin/pfctl | ||
| distrib | ||
| docs | ||
| etc | ||
| external | ||
| games | ||
| gnu | ||
| include | ||
| lib | ||
| libexec | ||
| minix | ||
| releasetools | ||
| sbin | ||
| share | ||
| sys | ||
| tests | ||
| tools | ||
| usr.bin | ||
| usr.sbin | ||
| .gitignore | ||
| .gitreview | ||
| build.sh | ||
| LICENSE | ||
| Makefile | ||
| Makefile.inc | ||