Commit 928bd1b4 authored by Russell King's avatar Russell King Committed by Russell King

[ARM] vfp: fix leak of VFP_NAN_FLAG into FPSCR

The VFP code can leak VFP_NAN_FLAG into the FPSCR. It doesn't correspond
to any real FPSCR bit (and overlaps one of the exception flags).

Bug report from Daniel Jacobowitz
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent c7fd8442
...@@ -197,7 +197,7 @@ u32 vfp_double_normaliseround(int dd, struct vfp_double *vd, u32 fpscr, u32 exce ...@@ -197,7 +197,7 @@ u32 vfp_double_normaliseround(int dd, struct vfp_double *vd, u32 fpscr, u32 exce
dd, d, exceptions); dd, d, exceptions);
vfp_put_double(dd, d); vfp_put_double(dd, d);
} }
return exceptions & ~VFP_NAN_FLAG; return exceptions;
} }
/* /*
......
...@@ -180,7 +180,7 @@ static u32 vfp_emulate_instruction(u32 inst, u32 fpscr, struct pt_regs *regs) ...@@ -180,7 +180,7 @@ static u32 vfp_emulate_instruction(u32 inst, u32 fpscr, struct pt_regs *regs)
* emulate it. * emulate it.
*/ */
} }
return exceptions; return exceptions & ~VFP_NAN_FLAG;
} }
/* /*
......
...@@ -203,7 +203,7 @@ u32 vfp_single_normaliseround(int sd, struct vfp_single *vs, u32 fpscr, u32 exce ...@@ -203,7 +203,7 @@ u32 vfp_single_normaliseround(int sd, struct vfp_single *vs, u32 fpscr, u32 exce
vfp_put_float(sd, d); vfp_put_float(sd, d);
} }
return exceptions & ~VFP_NAN_FLAG; return exceptions;
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment