diff options
author | Ian Moffett <ian@osmora.org> | 2025-04-17 02:53:00 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-04-17 02:57:37 -0400 |
commit | 5f13039023890e9c634912704464601f199c672d (patch) | |
tree | 334ea5fa6fcfd3c08972de9f75e8c3b8bc04b745 /sys/kern/kern_sched.c | |
parent | 577441588d3ed1856ce8ea00b07522a9d02a16bb (diff) |
kernel: Enable interrupts upon sched entry
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/kern/kern_sched.c')
-rw-r--r-- | sys/kern/kern_sched.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/kern/kern_sched.c b/sys/kern/kern_sched.c index c1eb3d8..386406e 100644 --- a/sys/kern/kern_sched.c +++ b/sys/kern/kern_sched.c @@ -33,8 +33,10 @@ #include <sys/cdefs.h> #include <sys/param.h> #include <sys/syslog.h> +#include <sys/atomic.h> #include <machine/frame.h> #include <machine/cpu.h> +#include <machine/cdefs.h> #include <vm/pmap.h> #include <dev/timer.h> #include <assert.h> @@ -239,6 +241,18 @@ sched_switch(struct trapframe *tf) void sched_enter(void) { + static int nenter = 0; + + /* + * Enable interrupts for all processors and + * sync on first entry. + */ + md_inton(); + if (nenter == 0) { + md_sync_all(); + atomic_inc_int(&nenter); + } + for (;;) { sched_oneshot(false); md_pause(); |