um: Move uml_postsetup in the init_thread stack
PATCH v2 1/2 um: Move uml_postsetup in the init_thread stack
atomic_notifier_chain_register() and uml_postsetup() do call kernel code that rely on the current macro and a valid task_struct resp. thread_info struct.
--- arch/um/include/shared/as-layout.h | 1 + arch/um/kernel/um_arch.c | 15 ++++++++++----- arch/um/os-Linux/skas/process.c | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-)
arch/um/include/shared/as-layout.h +1 -0
@@ -56,6 +56,7 @@ extern unsigned long brk_start;extern unsigned long host_task_size;extern int linux_main (int argc,char **argv); +extern void uml_finishsetup (void );struct siginfo ;extern void (*sig_info[])(int ,struct siginfo *si,struct uml_pt_regs *);
arch/um/kernel/um_arch.c +10 -5
@@ -247,6 +247,16 @@ static struct notifier_block panic_exit_notifier = { .priority = 0 }; +void uml_finishsetup (void ) +{ +atomic_notifier_chain_register (&panic_notifier_list, + &panic_exit_notifier); + +uml_postsetup (); + +new_thread_handler (); +} +/* Set during early boot */ unsigned long task_size;EXPORT_SYMBOL (task_size);
@@ -367,11 +377,6 @@ int __init linux_main(int argc, char **argv)printf ("Kernel virtual memory size shrunk to %lu bytes\n" , virtmem_size); -atomic_notifier_chain_register (&panic_notifier_list, - &panic_exit_notifier); - -uml_postsetup (); -stack_protections ((unsigned long ) &init_thread_info);os_flush_stdout ();
arch/um/os-Linux/skas/process.c +1 -1
@@ -674,7 +674,7 @@ int start_idle_thread(void *stack, jmp_buf *switch_buf) n =setjmp (initial_jmpbuf);switch (n) {case INIT_JMP_NEW_THREAD : - (*switch_buf)[0 ].JB_IP = (unsigned long ) new_thread_handler; + (*switch_buf)[0 ].JB_IP = (unsigned long ) uml_finishsetup; (*switch_buf)[0 ].JB_SP = (unsigned long ) stack +UM_THREAD_SIZE -sizeof (void *);break ;
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://p.sf.net/sfu/Zoho
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel