summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2013-02-26 19:59:52 +0000
committercognet <cognet@FreeBSD.org>2013-02-26 19:59:52 +0000
commitf7d7c01cb9a18a84ff7f6e93f91b46f08d8e5982 (patch)
tree464d4af0bbfb0d3fbcc581c0bc4724fb9725b9c3 /sys/arm
parent6376afdd72905ec01bc3af03881d18f0940137bc (diff)
downloadFreeBSD-src-f7d7c01cb9a18a84ff7f6e93f91b46f08d8e5982.zip
FreeBSD-src-f7d7c01cb9a18a84ff7f6e93f91b46f08d8e5982.tar.gz
Fix SMP build.
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/arm/vfp.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/arm/arm/vfp.c b/sys/arm/arm/vfp.c
index bde566c..c163af0 100644
--- a/sys/arm/arm/vfp.c
+++ b/sys/arm/arm/vfp.c
@@ -43,7 +43,6 @@ unsigned int get_coprocessorACR(void);
int vfp_bounce(u_int, u_int, struct trapframe *, int);
void vfp_discard(void);
void vfp_enable(void);
-void vfp_init(void);
void vfp_restore(struct vfp_state *);
void vfp_store(struct vfp_state *);
void set_coprocessorACR(u_int);
@@ -74,8 +73,8 @@ void
set_coprocessorACR(u_int val)
{
__asm __volatile("mcr p15, 0, %0, c1, c0, 2\n\t"
- "isb\n\t"
: : "r" (val) : "cc");
+ isb();
}
@@ -140,7 +139,7 @@ vfp_bounce(u_int addr, u_int insn, struct trapframe *frame, int code)
#ifdef SMP
/* don't save if newer registers are on another processor */
if (vfptd /* && (vfptd == curthread) */ &&
- (vfptd->td_pcb->pcb_vfpcpu == PCPU_GET(vfpcpu))
+ (vfptd->td_pcb->pcb_vfpcpu == PCPU_GET(cpu)))
#else
/* someone did not save their registers, */
if (vfptd /* && (vfptd == curthread) */)
@@ -168,7 +167,7 @@ vfp_bounce(u_int addr, u_int insn, struct trapframe *frame, int code)
*/
vfp_restore(&curpcb->pcb_vfpstate);
#ifdef SMP
- curpcb->pcb_cpu = PCPU_GET(cpu);
+ curpcb->pcb_vfpcpu = PCPU_GET(cpu);
#endif
PCPU_SET(vfpcthread, PCPU_GET(curthread));
return 0;
OpenPOWER on IntegriCloud