diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-04-03 11:20:16 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-04-03 11:20:16 -0700 |
commit | a943353d170e286dd3d877ac5aa15c1034cdfefc (patch) | |
tree | 1ddf9f95bf219c9767ac0e6a7a335b243d05c306 /arch/arm/kernel | |
parent | e6d05acd57013114977ec77a131fe79d2f542774 (diff) | |
parent | 0b521e9e31453ce1395000a6829f09fd35a0c138 (diff) |
Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
Pull ARM updates from Russell King:
- replace setup_irq() with request_irq() for ebsa110, footbridge, rpc
- fix clang assembly error in kexec code
- remove .fixup section in boot stub
- decompressor / EFI cache flushing updates
* tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
ARM: 8966/1: rpc: replace setup_irq() by request_irq()
ARM: 8965/2: footbridge: replace setup_irq() by request_irq()
ARM: 8964/1: ebsa110: replace setup_irq() by request_irq()
ARM: 8962/1: kexec: drop invalid assembly argument
ARM: decompressor: switch to by-VA cache maintenance for v7 cores
ARM: decompressor: prepare cache_clean_flush for doing by-VA maintenance
ARM: decompressor: factor out routine to obtain the inflated image size
ARM: 8959/1: Remove unused .fixup section in boot stub
ARM: allow unwinder to unwind recursive functions
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/relocate_kernel.S | 8 | ||||
-rw-r--r-- | arch/arm/kernel/unwind.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/arch/arm/kernel/relocate_kernel.S b/arch/arm/kernel/relocate_kernel.S index 7eaa2ae7aff5..72a08786e16e 100644 --- a/arch/arm/kernel/relocate_kernel.S +++ b/arch/arm/kernel/relocate_kernel.S @@ -25,26 +25,26 @@ ENTRY(relocate_new_kernel) ldr r3, [r0],#4 /* Is it a destination page. Put destination address to r4 */ - tst r3,#1,0 + tst r3,#1 beq 1f bic r4,r3,#1 b 0b 1: /* Is it an indirection page */ - tst r3,#2,0 + tst r3,#2 beq 1f bic r0,r3,#2 b 0b 1: /* are we done ? */ - tst r3,#4,0 + tst r3,#4 beq 1f b 2f 1: /* is it source ? */ - tst r3,#8,0 + tst r3,#8 beq 0b bic r3,r3,#8 mov r6,#1024 diff --git a/arch/arm/kernel/unwind.c b/arch/arm/kernel/unwind.c index 4574e6aea0a5..11a964fd66f4 100644 --- a/arch/arm/kernel/unwind.c +++ b/arch/arm/kernel/unwind.c @@ -444,7 +444,7 @@ int unwind_frame(struct stackframe *frame) ctrl.vrs[PC] = ctrl.vrs[LR]; /* check for infinite loop */ - if (frame->pc == ctrl.vrs[PC]) + if (frame->pc == ctrl.vrs[PC] && frame->sp == ctrl.vrs[SP]) return -URC_FAILURE; frame->fp = ctrl.vrs[FP]; |