diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/amd64/amd64/apic_vector.S | 5 | ||||
-rw-r--r-- | sys/i386/i386/apic_vector.s | 5 |
2 files changed, 4 insertions, 6 deletions
diff --git a/sys/amd64/amd64/apic_vector.S b/sys/amd64/amd64/apic_vector.S index 2e7e445..5d7685b 100644 --- a/sys/amd64/amd64/apic_vector.S +++ b/sys/amd64/amd64/apic_vector.S @@ -297,11 +297,10 @@ IDTVEC(cpustop) test %eax, %eax jnz 2f - xorq %rax, %rax - lock - xchgq cpustop_restartfunc, %rax + movq cpustop_restartfunc, %rax testq %rax, %rax jz 2f + movq $0, cpustop_restartfunc /* One-shot */ call *%rax 2: diff --git a/sys/i386/i386/apic_vector.s b/sys/i386/i386/apic_vector.s index e8f6f9d..99b765f 100644 --- a/sys/i386/i386/apic_vector.s +++ b/sys/i386/i386/apic_vector.s @@ -340,11 +340,10 @@ IDTVEC(cpustop) test %eax, %eax jnz 2f - xorl %eax, %eax - lock - xchgl CNAME(cpustop_restartfunc), %eax + movl CNAME(cpustop_restartfunc), %eax test %eax, %eax jz 2f + movl $0, CNAME(cpustop_restartfunc) /* One-shot */ call *%eax 2: |