[PATCH] ARM: vfp: Fix up exception location in Thumb mode
Colin Cross
ccross at android.com
Wed Feb 9 13:12:41 EST 2011
On Wed, Jan 26, 2011 at 11:30 PM, Colin Cross <ccross at android.com> wrote:
> This patch is on top of your first patch that cleans up the comments,
> but not the second patch that fixes the PC in the VFP exception case.
> Compiled but not run tested, and I can't test crunch or iwmmxt.
> vfpmodule.c may be able to be simplified (right now its both adding
> and subtracting 4 from regs->ARM_pc).
>
> arch/arm/kernel/crunch-bits.S | 3 ---
> arch/arm/kernel/entry-armv.S | 38 ++++++++++++++++++++------------------
> arch/arm/kernel/iwmmxt.S | 3 ---
> arch/arm/nwfpe/entry.S | 1 +
> arch/arm/vfp/vfphw.S | 5 -----
> arch/arm/vfp/vfpmodule.c | 6 ++++++
> 6 files changed, 27 insertions(+), 29 deletions(-)
Finally got a chance to do some quick testing on this, it needs one
more change to drop the correction in do_undefinstr in traps.c, and
fix one register in entry-armv.S. Russell, do you have any interest
in this solution? Alternatively, a one line change to store the
corrected PC into the stack in vfphw.S instead of entry-armv.S will
fix the original problem (VFP_bounce from thumb mode returning to the
wrong address) without causing the problem introduced by your second
patch (undefined NEON or VFP-D32 instructions in thumb mode returning
to the wrong address).
More information about the linux-arm-kernel
mailing list