diff options
author | Joel Sing <jsing@cvs.openbsd.org> | 2010-07-02 04:51:14 +0000 |
---|---|---|
committer | Joel Sing <jsing@cvs.openbsd.org> | 2010-07-02 04:51:14 +0000 |
commit | 7982ddbbf9f81caf16db2c12cd617e5ca5818b2f (patch) | |
tree | aafe50ff84ff382a47b5189581b41b278e754743 /sys/arch | |
parent | e1c381042d06c10cd761be8f99e5d7dbbbd8437c (diff) |
Apparently volatile does not mean what it is supposed to mean... avoid a
deadlock by adding a sync instruction to the loop.
ok kettenis@
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/hppa/hppa/fpu.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arch/hppa/hppa/fpu.c b/sys/arch/hppa/hppa/fpu.c index 6e13acc51ee..6296dcb4fa9 100644 --- a/sys/arch/hppa/hppa/fpu.c +++ b/sys/arch/hppa/hppa/fpu.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fpu.c,v 1.2 2010/07/02 00:00:45 jsing Exp $ */ +/* $OpenBSD: fpu.c,v 1.3 2010/07/02 04:51:13 jsing Exp $ */ /* * Copyright (c) 2010 Joel Sing <jsing@openbsd.org> @@ -65,7 +65,7 @@ fpu_proc(struct proc *p, int save) panic("FPU shootdown failed!\n"); while (hfp->hfp_cpu != NULL) - ; + asm volatile ("sync" ::: "memory"); } else if (p->p_md.md_regs->tf_cr30 == ci->ci_fpu_state) { |