summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2008-02-04 22:31:22 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-05 09:44:31 -0800
commit576c013df0ac9ad1f217452c14ddde246bb1a70d (patch)
tree462f11121cd5157516a094fa843480c8a44f29e0 /arch
parentb54988325c4cbf8bd92c0def53387ab6516d0920 (diff)
downloadlinux-576c013df0ac9ad1f217452c14ddde246bb1a70d.tar.bz2
uml: move register initialization
Calling init_registers inside the skas3 checking causes mysterious crashes if it doesn't happen because the skas3 checking is bypassed. This patch moves it to os_early_checks. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/um/os-Linux/start_up.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c
index bcf0c9b86b10..b616e15638fb 100644
--- a/arch/um/os-Linux/start_up.c
+++ b/arch/um/os-Linux/start_up.c
@@ -342,6 +342,8 @@ static void __init check_coredump_limit(void)
void __init os_early_checks(void)
{
+ int pid;
+
/* Print out the core dump limits early */
check_coredump_limit();
@@ -351,6 +353,11 @@ void __init os_early_checks(void)
* kernel is running.
*/
check_tmpexec();
+
+ pid = start_ptraced_child();
+ if (init_registers(pid))
+ fatal("Failed to initialize default registers");
+ stop_ptraced_child(pid, 1, 1);
}
static int __init noprocmm_cmd_param(char *str, int* add)
@@ -412,9 +419,6 @@ static inline void check_skas3_ptrace_faultinfo(void)
non_fatal("found\n");
}
- if (init_registers(pid))
- fatal("Failed to initialize default registers");
-
stop_ptraced_child(pid, 1, 1);
}