UML - Stop specially protecting kernel stacks
PATCH 4/6 UML - Stop specially protecting kernel stacks
Map all of physical memory as executable to avoid having to change stack protections during fork and exit.
unprotect_stack is now called only from MODE_TT code, so it is marked as such.
Signed-off-by Jeff Dike <[email protected]>
--
arch/um/include/kern_util.h | 2 ++ arch/um/kernel/init_task.c | 2 ++ arch/um/kernel/physmem.c | 2 +- arch/um/kernel/process.c | 5 ++--- 4 files changed, 7 insertions(+), 4 deletions(-)
arch/um/kernel/physmem.c +1 -1
@@ -105,7 +105,7 @@ void __init setup_physmem(unsigned long offset = uml_reserved - uml_physmem; err =os_map_memory ((void *) uml_reserved, physmem_fd, offset, - len - offset,1 ,1 ,0 ); + len - offset,1 ,1 ,1 );if (err <0 ){os_print_error (err,"Mapping memory" );exit (1 );
arch/um/kernel/process.c +2 -3
@@ -82,9 +82,9 @@ unsigned long alloc_stack(int order, intif (atomic) flags =GFP_ATOMIC ; page =__get_free_pages (flags, order); -if (page ==0 ) +if (page ==0 )return 0 ; -stack_protections (page); +return page; }
@@ -141,7 +141,6 @@ void release_thread(struct task_struct *void exit_thread (void ) { -unprotect_stack ((unsigned long ) current_thread); }void *get_current (void )
arch/um/include/kern_util.h +2 -0
@@ -82,7 +82,9 @@ extern void check_stack_overflow(void *pextern void relay_signal (int sig,union uml_pt_regs *regs);extern int user_context (unsigned long sp);extern void timer_irq (union uml_pt_regs *regs); +#ifdef CONFIG_MODE_TT extern void unprotect_stack (unsigned long stack); +#endif extern void do_uml_exitcalls (void );extern int attach_debugger (int idle_pid,int pid,int stop);extern int config_gdb (char *str);
arch/um/kernel/init_task.c +2 -0
@@ -47,7 +47,9 @@ union thread_union cpu0_irqstack __attribute__((__section__(".data.init_irqstack"))) = {INIT_THREAD_INFO (init_task) }; +#ifdef CONFIG_MODE_TT void unprotect_stack (unsigned long stack) {os_protect_memory ((void *) stack,THREAD_SIZE ,1 ,1 ,0 ); } +#endif
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel