aboutsummaryrefslogtreecommitdiffstats
path: root/arch/avr32/kernel
diff options
context:
space:
mode:
authorAndreas Bießmann <andreas@biessmann.de>2013-10-24 06:31:03 -0400
committerHans-Christian Egtvedt <hegtvedt@cisco.com>2013-11-20 03:53:21 -0500
commit7a2a74f4b856993218aa7cdeeb6c3103101340db (patch)
treea33d46eda9bf3a8c28e90b34e0868426ecd7b0f8 /arch/avr32/kernel
parentb4789b8e6be3151a955ade74872822f30e8cd914 (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.S20
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
18kernel_entry: 16kernel_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
37init_sr:
38 .long 0x007f0000 /* Supervisor mode, everything masked */
39stack_addr:
40 .long init_thread_union
41kernel_start_addr: 21kernel_start_addr:
42 .long start_kernel 22 .long start_kernel