mirror of https://gitee.com/openkylin/linux.git
uml: remove task_protections
Replaced task_protections with stack_protections since they do the same thing, and task_protections was misnamed anyway. This needs THREAD_SIZE, so that's imported via common-offsets.h Also tidied up the code in the vicinity. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
22258d406f
commit
57598fd7b3
|
@ -28,3 +28,5 @@ DEFINE(UM_NR_CPUS, NR_CPUS);
|
|||
|
||||
/* For crypto assembler code. */
|
||||
DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx));
|
||||
|
||||
DEFINE(UM_THREAD_SIZE, THREAD_SIZE);
|
||||
|
|
|
@ -272,7 +272,6 @@ extern void do_longjmp(void *p, int val);
|
|||
|
||||
/* util.c */
|
||||
extern void stack_protections(unsigned long address);
|
||||
extern void task_protections(unsigned long address);
|
||||
extern int raw(int fd);
|
||||
extern void setup_machinename(char *machine_out);
|
||||
extern void setup_hostinfo(char *buf, int len);
|
||||
|
|
|
@ -57,7 +57,7 @@ void flush_thread_tt(void)
|
|||
enable_timer();
|
||||
free_page(stack);
|
||||
protect_memory(uml_reserved, high_physmem - uml_reserved, 1, 1, 0, 1);
|
||||
task_protections((unsigned long) current_thread);
|
||||
stack_protections((unsigned long) current_thread);
|
||||
force_flush_all();
|
||||
unblock_signals();
|
||||
}
|
||||
|
|
|
@ -209,7 +209,7 @@ void finish_fork_handler(int sig)
|
|||
if(current->mm != current->parent->mm)
|
||||
protect_memory(uml_reserved, high_physmem - uml_reserved, 1,
|
||||
1, 0, 1);
|
||||
task_protections((unsigned long) current_thread);
|
||||
stack_protections((unsigned long) current_thread);
|
||||
|
||||
free_page(current->thread.temp_stack);
|
||||
local_irq_disable();
|
||||
|
|
|
@ -459,7 +459,7 @@ int __init linux_main(int argc, char **argv)
|
|||
|
||||
uml_postsetup();
|
||||
|
||||
task_protections((unsigned long) &init_thread_info);
|
||||
stack_protections((unsigned long) &init_thread_info);
|
||||
os_flush_stdout();
|
||||
|
||||
return CHOOSE_MODE(start_uml_tt(), start_uml_skas());
|
||||
|
|
|
@ -33,25 +33,8 @@
|
|||
|
||||
void stack_protections(unsigned long address)
|
||||
{
|
||||
int prot = PROT_READ | PROT_WRITE | PROT_EXEC;
|
||||
|
||||
if(mprotect((void *) address, UM_KERN_PAGE_SIZE, prot) < 0)
|
||||
panic("protecting stack failed, errno = %d", errno);
|
||||
}
|
||||
|
||||
void task_protections(unsigned long address)
|
||||
{
|
||||
unsigned long guard = address + UM_KERN_PAGE_SIZE;
|
||||
unsigned long stack = guard + UM_KERN_PAGE_SIZE;
|
||||
int prot = 0, pages;
|
||||
|
||||
#ifdef notdef
|
||||
if(mprotect((void *) stack, UM_KERN_PAGE_SIZE, prot) < 0)
|
||||
panic("protecting guard page failed, errno = %d", errno);
|
||||
#endif
|
||||
pages = (1 << UML_CONFIG_KERNEL_STACK_ORDER) - 2;
|
||||
prot = PROT_READ | PROT_WRITE | PROT_EXEC;
|
||||
if(mprotect((void *) stack, pages * UM_KERN_PAGE_SIZE, prot) < 0)
|
||||
if(mprotect((void *) address, UM_THREAD_SIZE,
|
||||
PROT_READ | PROT_WRITE | PROT_EXEC) < 0)
|
||||
panic("protecting stack failed, errno = %d", errno);
|
||||
}
|
||||
|
||||
|
@ -72,7 +55,7 @@ int raw(int fd)
|
|||
|
||||
/* XXX tcsetattr could have applied only some changes
|
||||
* (and cfmakeraw() is a set of changes) */
|
||||
return(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void setup_machinename(char *machine_out)
|
||||
|
|
Loading…
Reference in New Issue