[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