提交 026549d2 编写于 作者: J Jeff Dike 提交者: Linus Torvalds

[PATCH] uml: always disable kmalloc during shutdown

kmalloc wasn't being disabled during panic.  This patch ensures that, no
matter how UML is exiting, it is disabled.  This matters because part of the
cleanup is to remove the umid file, which involves readdir, which calls
malloc.  This must map to libc malloc, rather than kmalloc or vmalloc.
Signed-off-by: NJeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 a6f4e3cf
...@@ -69,7 +69,6 @@ static __init void do_uml_initcalls(void) ...@@ -69,7 +69,6 @@ static __init void do_uml_initcalls(void)
static void last_ditch_exit(int sig) static void last_ditch_exit(int sig)
{ {
kmalloc_ok = 0;
signal(SIGINT, SIG_DFL); signal(SIGINT, SIG_DFL);
signal(SIGTERM, SIG_DFL); signal(SIGTERM, SIG_DFL);
signal(SIGHUP, SIG_DFL); signal(SIGHUP, SIG_DFL);
......
...@@ -38,14 +38,14 @@ static void kill_off_processes(void) ...@@ -38,14 +38,14 @@ static void kill_off_processes(void)
void uml_cleanup(void) void uml_cleanup(void)
{ {
kill_off_processes(); kmalloc_ok = 0;
do_uml_exitcalls(); do_uml_exitcalls();
kill_off_processes();
} }
void machine_restart(char * __unused) void machine_restart(char * __unused)
{ {
do_uml_exitcalls(); uml_cleanup();
kill_off_processes();
CHOOSE_MODE(reboot_tt(), reboot_skas()); CHOOSE_MODE(reboot_tt(), reboot_skas());
} }
...@@ -53,8 +53,7 @@ EXPORT_SYMBOL(machine_restart); ...@@ -53,8 +53,7 @@ EXPORT_SYMBOL(machine_restart);
void machine_power_off(void) void machine_power_off(void)
{ {
do_uml_exitcalls(); uml_cleanup();
kill_off_processes();
CHOOSE_MODE(halt_tt(), halt_skas()); CHOOSE_MODE(halt_tt(), halt_skas());
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册