diff options
author | dillon <dillon@FreeBSD.org> | 2000-03-29 06:15:43 +0000 |
---|---|---|
committer | dillon <dillon@FreeBSD.org> | 2000-03-29 06:15:43 +0000 |
commit | cccdb366d9a69e17a36d6d01316a4d121537cc37 (patch) | |
tree | cefbc21bfdfd8240e69ffe530637274f3e64bf26 /sys/i386/isa/apic_vector.s | |
parent | 6a7dfc7767e1d130ee1db535b5a7e3633ba5409d (diff) | |
download | FreeBSD-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.s | 6 |
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 |