summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/apic_vector.s
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2000-03-29 06:15:43 +0000
committerdillon <dillon@FreeBSD.org>2000-03-29 06:15:43 +0000
commitcccdb366d9a69e17a36d6d01316a4d121537cc37 (patch)
treecefbc21bfdfd8240e69ffe530637274f3e64bf26 /sys/i386/isa/apic_vector.s
parent6a7dfc7767e1d130ee1db535b5a7e3633ba5409d (diff)
downloadFreeBSD-src-cccdb366d9a69e17a36d6d01316a4d121537cc37.zip
FreeBSD-src-cccdb366d9a69e17a36d6d01316a4d121537cc37.tar.gz
The SMP cleanup commit broke need_resched, this fixes that and also
removed unncessary MPLOCKED and 'lock' prefixes from the interrupt nesting level, since (A) the MP lock is held at the time, and (B) since the neting level is restored prior to return any interrupted code will see a consistent value.
Diffstat (limited to 'sys/i386/isa/apic_vector.s')
-rw-r--r--sys/i386/isa/apic_vector.s6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/i386/isa/apic_vector.s b/sys/i386/isa/apic_vector.s
index 587d763..602b4ce 100644
--- a/sys/i386/isa/apic_vector.s
+++ b/sys/i386/isa/apic_vector.s
@@ -455,8 +455,7 @@ _Xcpuast:
movl _cpl, %eax
pushl %eax
- movl $1, _astpending /* XXX */
- lock
+ orl $AST_PENDING, _astpending /* XXX */
incb _intr_nesting_level
sti
@@ -468,7 +467,7 @@ _Xcpuast:
lock
btrl %eax, CNAME(resched_cpus)
jnc 2f
- orl $AST_RESCHED,_astpending
+ orl $AST_PENDING+AST_RESCHED,_astpending
lock
incl CNAME(want_resched_cnt)
2:
@@ -512,7 +511,6 @@ _Xforward_irq:
movl _cpl, %eax
pushl %eax
- lock
incb _intr_nesting_level
sti
OpenPOWER on IntegriCloud