Fix some paging related bugs exposed by the spawn stress test.

- Process::exec() needs to restore the original paging scope when called
  on a non-current process.
- Add missing InterruptDisabler guards around g_processes access.
- Only flush the TLB when modifying the active page tables.
This commit is contained in:
Andreas Kling
2018-11-09 01:25:31 +01:00
parent 7b96218389
commit e71cb1c56b
13 changed files with 110 additions and 67 deletions

View File

@@ -67,7 +67,7 @@ bool Scheduler::pick_next()
if (process.state() == Process::Dead) {
if (current != &process && !Process::from_pid(process.ppid()))
Process::reap(process.pid());
Process::reap(process);
return true;
}