diff options
author | jhb <jhb@FreeBSD.org> | 2000-11-14 23:01:24 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2000-11-14 23:01:24 +0000 |
commit | ebf980ffa4c56ac41b9f7956bd8a977ccabb5555 (patch) | |
tree | e959e38c2570a3d93b5f841da0c103d96d8fb540 /sys | |
parent | 1bb5251fa55580a90d8847dc57c96e447626d19b (diff) | |
download | FreeBSD-src-ebf980ffa4c56ac41b9f7956bd8a977ccabb5555.zip FreeBSD-src-ebf980ffa4c56ac41b9f7956bd8a977ccabb5555.tar.gz |
Always enable interrupts during fork_trampoline() after releasing the
sched_lock. This is needed for kernel threads that are created before
interrupts are enabled. kthreads created by kld's that are created at
SI_SUB_KLD such as the random kthread.
Tested by: phk
Diffstat (limited to 'sys')
-rw-r--r-- | sys/amd64/amd64/exception.S | 3 | ||||
-rw-r--r-- | sys/amd64/amd64/exception.s | 3 | ||||
-rw-r--r-- | sys/i386/i386/exception.s | 3 |
3 files changed, 9 insertions, 0 deletions
diff --git a/sys/amd64/amd64/exception.S b/sys/amd64/amd64/exception.S index a36375a..b891c33 100644 --- a/sys/amd64/amd64/exception.S +++ b/sys/amd64/amd64/exception.S @@ -304,6 +304,9 @@ IDTVEC(int0x80_syscall) ENTRY(fork_trampoline) MTX_EXIT(_sched_lock, %ecx) + sti /* XXX: we need this for kernel threads + created very early before interrupts + are enabled */ #ifdef SMP cmpl $0,_switchtime diff --git a/sys/amd64/amd64/exception.s b/sys/amd64/amd64/exception.s index a36375a..b891c33 100644 --- a/sys/amd64/amd64/exception.s +++ b/sys/amd64/amd64/exception.s @@ -304,6 +304,9 @@ IDTVEC(int0x80_syscall) ENTRY(fork_trampoline) MTX_EXIT(_sched_lock, %ecx) + sti /* XXX: we need this for kernel threads + created very early before interrupts + are enabled */ #ifdef SMP cmpl $0,_switchtime diff --git a/sys/i386/i386/exception.s b/sys/i386/i386/exception.s index a36375a..b891c33 100644 --- a/sys/i386/i386/exception.s +++ b/sys/i386/i386/exception.s @@ -304,6 +304,9 @@ IDTVEC(int0x80_syscall) ENTRY(fork_trampoline) MTX_EXIT(_sched_lock, %ecx) + sti /* XXX: we need this for kernel threads + created very early before interrupts + are enabled */ #ifdef SMP cmpl $0,_switchtime |