diff options
author | Andreas Bießmann <andreas@biessmann.de> | 2013-10-24 06:31:03 -0400 |
---|---|---|
committer | Hans-Christian Egtvedt <hegtvedt@cisco.com> | 2013-11-20 03:53:21 -0500 |
commit | 7a2a74f4b856993218aa7cdeeb6c3103101340db (patch) | |
tree | a33d46eda9bf3a8c28e90b34e0868426ecd7b0f8 /arch/avr32/kernel | |
parent | b4789b8e6be3151a955ade74872822f30e8cd914 (diff) |
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')
-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 @@ | |||
10 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
11 | 11 | ||
12 | #include <asm/page.h> | 12 | #include <asm/page.h> |
13 | #include <asm/thread_info.h> | ||
14 | #include <asm/sysreg.h> | ||
15 | 13 | ||
16 | .section .init.text,"ax" | 14 | .section .init.text,"ax" |
17 | .global kernel_entry | 15 | .global kernel_entry |
18 | kernel_entry: | 16 | kernel_entry: |
19 | /* Initialize status register */ | ||
20 | lddpc r0, init_sr | ||
21 | mtsr SYSREG_SR, r0 | ||
22 | |||
23 | /* Set initial stack pointer */ | ||
24 | lddpc sp, stack_addr | ||
25 | sub sp, -THREAD_SIZE | ||
26 | |||
27 | #ifdef CONFIG_FRAME_POINTER | ||
28 | /* Mark last stack frame */ | ||
29 | mov lr, 0 | ||
30 | mov r7, 0 | ||
31 | #endif | ||
32 | |||
33 | /* Start the show */ | 17 | /* Start the show */ |
34 | lddpc pc, kernel_start_addr | 18 | lddpc pc, kernel_start_addr |
35 | 19 | ||
36 | .align 2 | 20 | .align 2 |
37 | init_sr: | ||
38 | .long 0x007f0000 /* Supervisor mode, everything masked */ | ||
39 | stack_addr: | ||
40 | .long init_thread_union | ||
41 | kernel_start_addr: | 21 | kernel_start_addr: |
42 | .long start_kernel | 22 | .long start_kernel |