summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2000-11-14 23:01:24 +0000
committerjhb <jhb@FreeBSD.org>2000-11-14 23:01:24 +0000
commitebf980ffa4c56ac41b9f7956bd8a977ccabb5555 (patch)
treee959e38c2570a3d93b5f841da0c103d96d8fb540 /sys
parent1bb5251fa55580a90d8847dc57c96e447626d19b (diff)
downloadFreeBSD-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.S3
-rw-r--r--sys/amd64/amd64/exception.s3
-rw-r--r--sys/i386/i386/exception.s3
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
OpenPOWER on IntegriCloud