diff options
author | Andreas Bießmann <andreas@biessmann.de> | 2013-10-24 12:31:03 +0200 |
---|---|---|
committer | Hans-Christian Egtvedt <hegtvedt@cisco.com> | 2013-11-20 09:53:21 +0100 |
commit | 7a2a74f4b856993218aa7cdeeb6c3103101340db (patch) | |
tree | a33d46eda9bf3a8c28e90b34e0868426ecd7b0f8 /arch/avr32/kernel/head.S | |
parent | b4789b8e6be3151a955ade74872822f30e8cd914 (diff) | |
download | lwn-7a2a74f4b856993218aa7cdeeb6c3103101340db.tar.gz lwn-7a2a74f4b856993218aa7cdeeb6c3103101340db.zip |
avr32: setup crt for early panic()
Before the CRT was (fully) set up in kernel_entry (bss cleared before in
_start, but also not before jump to panic() in no_tag_table case).
This patch fixes this up to have a fully working CRT when branching to panic()
in no_tag_table.
Signed-off-by: Andreas Bießmann <andreas@biessmann.de>
Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
Cc: stable@vger.kernel.org
Diffstat (limited to 'arch/avr32/kernel/head.S')
-rw-r--r-- | arch/avr32/kernel/head.S | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/arch/avr32/kernel/head.S b/arch/avr32/kernel/head.S index 6163bd0acb95..59eae6dfbed2 100644 --- a/arch/avr32/kernel/head.S +++ b/arch/avr32/kernel/head.S @@ -10,33 +10,13 @@ #include <linux/linkage.h> #include <asm/page.h> -#include <asm/thread_info.h> -#include <asm/sysreg.h> .section .init.text,"ax" .global kernel_entry kernel_entry: - /* Initialize status register */ - lddpc r0, init_sr - mtsr SYSREG_SR, r0 - - /* Set initial stack pointer */ - lddpc sp, stack_addr - sub sp, -THREAD_SIZE - -#ifdef CONFIG_FRAME_POINTER - /* Mark last stack frame */ - mov lr, 0 - mov r7, 0 -#endif - /* Start the show */ lddpc pc, kernel_start_addr .align 2 -init_sr: - .long 0x007f0000 /* Supervisor mode, everything masked */ -stack_addr: - .long init_thread_union kernel_start_addr: .long start_kernel |