diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-01 19:30:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-01 19:30:45 -0400 |
commit | 9a2533c3eb91b3e769c2612c5d68e811bfc0ecf6 (patch) | |
tree | 74865c4c40442d109e42bcc72009ebd0c320eba3 /arch/arm/kernel/traps.c | |
parent | d4fdc32517efaab0493c134d5cc070c252d51275 (diff) | |
parent | b74253f78400f9a4b42da84bb1de7540b88ce7c4 (diff) |
Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm
Pull ARM fixes from Russell King:
"This fixes various issues found during July"
* 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
ARM: 7479/1: mm: avoid NULL dereference when flushing gate_vma with VIVT caches
ARM: Fix undefined instruction exception handling
ARM: 7480/1: only call smp_send_stop() on SMP
ARM: 7478/1: errata: extend workaround for erratum #720789
ARM: 7477/1: vfp: Always save VFP state in vfp_pm_suspend on UP
ARM: 7476/1: vfp: only clear vfp state for current cpu in vfp_pm_suspend
ARM: 7468/1: ftrace: Trace function entry before updating index
ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+
ARM: 7466/1: disable interrupt before spinning endlessly
ARM: 7465/1: Handle >4GB memory sizes in device tree and mem=size@start option
Diffstat (limited to 'arch/arm/kernel/traps.c')
-rw-r--r-- | arch/arm/kernel/traps.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index 8b97d739b17b..7978d4f0f3ae 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -402,18 +402,10 @@ static int call_undef_hook(struct pt_regs *regs, unsigned int instr) | |||
402 | 402 | ||
403 | asmlinkage void __exception do_undefinstr(struct pt_regs *regs) | 403 | asmlinkage void __exception do_undefinstr(struct pt_regs *regs) |
404 | { | 404 | { |
405 | unsigned int correction = thumb_mode(regs) ? 2 : 4; | ||
406 | unsigned int instr; | 405 | unsigned int instr; |
407 | siginfo_t info; | 406 | siginfo_t info; |
408 | void __user *pc; | 407 | void __user *pc; |
409 | 408 | ||
410 | /* | ||
411 | * According to the ARM ARM, PC is 2 or 4 bytes ahead, | ||
412 | * depending whether we're in Thumb mode or not. | ||
413 | * Correct this offset. | ||
414 | */ | ||
415 | regs->ARM_pc -= correction; | ||
416 | |||
417 | pc = (void __user *)instruction_pointer(regs); | 409 | pc = (void __user *)instruction_pointer(regs); |
418 | 410 | ||
419 | if (processor_mode(regs) == SVC_MODE) { | 411 | if (processor_mode(regs) == SVC_MODE) { |