|
@@ -21,6 +21,12 @@
|
|
|
#define ARM_CPU_KEEP(x)
|
|
|
#endif
|
|
|
|
|
|
+#if defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)
|
|
|
+#define ARM_EXIT_KEEP(x) x
|
|
|
+#else
|
|
|
+#define ARM_EXIT_KEEP(x)
|
|
|
+#endif
|
|
|
+
|
|
|
OUTPUT_ARCH(arm)
|
|
|
ENTRY(stext)
|
|
|
|
|
@@ -43,6 +49,7 @@ SECTIONS
|
|
|
_sinittext = .;
|
|
|
HEAD_TEXT
|
|
|
INIT_TEXT
|
|
|
+ ARM_EXIT_KEEP(EXIT_TEXT)
|
|
|
_einittext = .;
|
|
|
ARM_CPU_DISCARD(PROC_INFO)
|
|
|
__arch_info_begin = .;
|
|
@@ -67,6 +74,7 @@ SECTIONS
|
|
|
#ifndef CONFIG_XIP_KERNEL
|
|
|
__init_begin = _stext;
|
|
|
INIT_DATA
|
|
|
+ ARM_EXIT_KEEP(EXIT_DATA)
|
|
|
#endif
|
|
|
}
|
|
|
|
|
@@ -162,6 +170,7 @@ SECTIONS
|
|
|
. = ALIGN(PAGE_SIZE);
|
|
|
__init_begin = .;
|
|
|
INIT_DATA
|
|
|
+ ARM_EXIT_KEEP(EXIT_DATA)
|
|
|
. = ALIGN(PAGE_SIZE);
|
|
|
__init_end = .;
|
|
|
#endif
|