Skip to content

Commit

Permalink
[ARM] 3499/1: Fix VFP FPSCR corruption for double exception case
Browse files Browse the repository at this point in the history
Patch from George G. Davis

The ARM VFP FPSCR register is corrupted when a condition flags modifying
VFP instruction is followed by a non-condition flags modifying VFP
instruction and both instructions raise exceptions.  The fix is to
read the current FPSCR in between emulation of these two instructions
and use the current FPSCR value when handling the second exception.

Signed-off-by: George G. Davis <gdavis@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
George G. Davis authored and Russell King committed May 5, 2006
1 parent 2eb9d31 commit b7d7ef8
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion arch/arm/vfp/vfpmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ void VFP9_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs)
*/
barrier();
trigger = fmrx(FPINST2);
fpscr = fmrx(FPSCR);
orig_fpscr = fpscr = fmrx(FPSCR);

emulate:
exceptions = vfp_emulate_instruction(trigger, fpscr, regs);
Expand Down

0 comments on commit b7d7ef8

Please sign in to comment.