Page MenuHomeFreeBSD

D38000.id115252.diff
No OneTemporary

D38000.id115252.diff

diff --git a/sys/arm64/arm64/exec_machdep.c b/sys/arm64/arm64/exec_machdep.c
--- a/sys/arm64/arm64/exec_machdep.c
+++ b/sys/arm64/arm64/exec_machdep.c
@@ -519,8 +519,7 @@
#ifdef VFP
struct pcb *curpcb;
- critical_enter();
-
+ MPASS(td == curthread);
if ((mcp->mc_flags & _MC_FP_VALID) != 0) {
curpcb = curthread->td_pcb;
@@ -528,7 +527,9 @@
* Discard any vfp state for the current thread, we
* are about to override it.
*/
+ critical_enter();
vfp_discard(td);
+ critical_exit();
KASSERT(curpcb->pcb_fpusaved == &curpcb->pcb_fpustate,
("Called set_fpcontext while the kernel is using the VFP"));
@@ -538,8 +539,6 @@
curpcb->pcb_fpustate.vfp_fpsr = mcp->mc_fpregs.fp_sr;
curpcb->pcb_fpflags = mcp->mc_fpregs.fp_flags & PCB_FP_USERMASK;
}
-
- critical_exit();
#endif
}

File Metadata

Mime Type
text/plain
Expires
Fri, May 1, 6:02 AM (9 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32557705
Default Alt Text
D38000.id115252.diff (820 B)

Event Timeline