summaryrefslogtreecommitdiffstats
path: root/sys/amd64/amd64/apic_vector.S
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2012-02-07 23:24:29 +0000
committerjkim <jkim@FreeBSD.org>2012-02-07 23:24:29 +0000
commitbfd149db909fffedd3f6345ad716d401ff63c434 (patch)
tree8df8759d69451679c07970cbf2368f16207c96a3 /sys/amd64/amd64/apic_vector.S
parent1fecd2eae2c3cb068c4199088b928b88e895cd44 (diff)
downloadFreeBSD-src-bfd149db909fffedd3f6345ad716d401ff63c434.zip
FreeBSD-src-bfd149db909fffedd3f6345ad716d401ff63c434.tar.gz
Do not EOI local APIC too early. Just do doreti normally after resuming.
Diffstat (limited to 'sys/amd64/amd64/apic_vector.S')
-rw-r--r--sys/amd64/amd64/apic_vector.S7
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/amd64/amd64/apic_vector.S b/sys/amd64/amd64/apic_vector.S
index 96c778d..6465247 100644
--- a/sys/amd64/amd64/apic_vector.S
+++ b/sys/amd64/amd64/apic_vector.S
@@ -300,13 +300,10 @@ IDTVEC(cpustop)
IDTVEC(cpususpend)
PUSH_FRAME
+ call cpususpend_handler
movq lapic, %rax
movl $0, LA_EOI(%rax) /* End Of Interrupt to APIC */
-
- call cpususpend_handler
-
- POP_FRAME
- jmp doreti_iret
+ jmp doreti
/*
* Executed by a CPU when it receives a RENDEZVOUS IPI from another CPU.
OpenPOWER on IntegriCloud