summaryrefslogtreecommitdiffstats
path: root/sys/amd64/amd64/vm_machdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/amd64/amd64/vm_machdep.c')
-rw-r--r--sys/amd64/amd64/vm_machdep.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c
index 9f5d6c0..d58e5a6 100644
--- a/sys/amd64/amd64/vm_machdep.c
+++ b/sys/amd64/amd64/vm_machdep.c
@@ -578,13 +578,7 @@ vm_page_zero_idle()
TAILQ_REMOVE(&vm_page_queues[m->queue].pl, m, pageq);
m->queue = PQ_NONE;
splx(s);
-#if 0
- rel_mplock();
-#endif
pmap_zero_page(VM_PAGE_TO_PHYS(m));
-#if 0
- get_mplock();
-#endif
(void)splvm();
vm_page_flag_set(m, PG_ZERO);
m->queue = PQ_FREE + m->pc;
@@ -606,6 +600,12 @@ vm_page_zero_idle()
#ifdef SMP
}
#endif
+ /*
+ * We have to enable interrupts for a moment if the try_mplock fails
+ * in order to potentially take an IPI. XXX this should be in
+ * swtch.s
+ */
+ __asm __volatile("sti; nop; cli" : : : "memory");
return (0);
}
OpenPOWER on IntegriCloud