Commit 598d188a authored by Tyler's avatar Tyler Committed by Linus Torvalds

[PATCH] uml: clean up address space limits code

I was looking at the code of the UML and more precisely at the functions
set_task_sizes_tt and set_task_sizes_skas.  I noticed that these 2 functions
take a paramater (arg) which is not used : the function is always called with
the value 0.

I suppose that this value might change in the future (or even can be
configured), so I added a constant in mem_user.h file.

Also, I rounded CONFIG_HOST_TASk_SIZE to a 4M.
Signed-off-by: default avatarTyler <tyler@agat.net>
Signed-off-by: default avatarJeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 5f49d724
...@@ -29,7 +29,7 @@ extern void flush_tlb_mm_skas(struct mm_struct *mm); ...@@ -29,7 +29,7 @@ extern void flush_tlb_mm_skas(struct mm_struct *mm);
extern void force_flush_all_skas(void); extern void force_flush_all_skas(void);
extern long execute_syscall_skas(void *r); extern long execute_syscall_skas(void *r);
extern void before_mem_skas(unsigned long unused); extern void before_mem_skas(unsigned long unused);
extern unsigned long set_task_sizes_skas(int arg, unsigned long *host_size_out, extern unsigned long set_task_sizes_skas(unsigned long *host_size_out,
unsigned long *task_size_out); unsigned long *task_size_out);
extern int start_uml_skas(void); extern int start_uml_skas(void);
extern int external_pid_skas(struct task_struct *task); extern int external_pid_skas(struct task_struct *task);
......
...@@ -30,7 +30,7 @@ extern void flush_tlb_mm_tt(struct mm_struct *mm); ...@@ -30,7 +30,7 @@ extern void flush_tlb_mm_tt(struct mm_struct *mm);
extern void force_flush_all_tt(void); extern void force_flush_all_tt(void);
extern long execute_syscall_tt(void *r); extern long execute_syscall_tt(void *r);
extern void before_mem_tt(unsigned long brk_start); extern void before_mem_tt(unsigned long brk_start);
extern unsigned long set_task_sizes_tt(int arg, unsigned long *host_size_out, extern unsigned long set_task_sizes_tt(unsigned long *host_size_out,
unsigned long *task_size_out); unsigned long *task_size_out);
extern int start_uml_tt(void); extern int start_uml_tt(void);
extern int external_pid_tt(struct task_struct *task); extern int external_pid_tt(struct task_struct *task);
......
...@@ -9,14 +9,14 @@ ...@@ -9,14 +9,14 @@
#include "mem_user.h" #include "mem_user.h"
#include "skas.h" #include "skas.h"
unsigned long set_task_sizes_skas(int arg, unsigned long *host_size_out, unsigned long set_task_sizes_skas(unsigned long *host_size_out,
unsigned long *task_size_out) unsigned long *task_size_out)
{ {
/* Round up to the nearest 4M */ /* Round up to the nearest 4M */
unsigned long top = ROUND_4M((unsigned long) &arg); unsigned long top = ROUND_4M((unsigned long) &host_size_out);
#ifdef CONFIG_HOST_TASK_SIZE #ifdef CONFIG_HOST_TASK_SIZE
*host_size_out = CONFIG_HOST_TASK_SIZE; *host_size_out = ROUND_4M(CONFIG_HOST_TASK_SIZE);
*task_size_out = CONFIG_HOST_TASK_SIZE; *task_size_out = CONFIG_HOST_TASK_SIZE;
#else #else
*host_size_out = top; *host_size_out = top;
...@@ -24,16 +24,5 @@ unsigned long set_task_sizes_skas(int arg, unsigned long *host_size_out, ...@@ -24,16 +24,5 @@ unsigned long set_task_sizes_skas(int arg, unsigned long *host_size_out,
*task_size_out = top; *task_size_out = top;
else *task_size_out = CONFIG_STUB_START & PGDIR_MASK; else *task_size_out = CONFIG_STUB_START & PGDIR_MASK;
#endif #endif
return(((unsigned long) set_task_sizes_skas) & ~0xffffff); return ((unsigned long) set_task_sizes_skas) & ~0xffffff;
} }
/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
* adjust the settings for this buffer only. This must remain at the end
* of the file.
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
* End:
*/
...@@ -24,22 +24,11 @@ void before_mem_tt(unsigned long brk_start) ...@@ -24,22 +24,11 @@ void before_mem_tt(unsigned long brk_start)
#define SIZE ((CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS) * 0x20000000) #define SIZE ((CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS) * 0x20000000)
#define START (CONFIG_TOP_ADDR - SIZE) #define START (CONFIG_TOP_ADDR - SIZE)
unsigned long set_task_sizes_tt(int arg, unsigned long *host_size_out, unsigned long set_task_sizes_tt(unsigned long *host_size_out,
unsigned long *task_size_out) unsigned long *task_size_out)
{ {
/* Round up to the nearest 4M */ /* Round up to the nearest 4M */
*host_size_out = ROUND_4M((unsigned long) &arg); *host_size_out = ROUND_4M((unsigned long) &host_size_out);
*task_size_out = START; *task_size_out = START;
return(START); return START;
} }
/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
* adjust the settings for this buffer only. This must remain at the end
* of the file.
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
* End:
*/
...@@ -374,7 +374,7 @@ int linux_main(int argc, char **argv) ...@@ -374,7 +374,7 @@ int linux_main(int argc, char **argv)
printf("UML running in %s mode\n", mode); printf("UML running in %s mode\n", mode);
uml_start = CHOOSE_MODE_PROC(set_task_sizes_tt, set_task_sizes_skas, 0, uml_start = CHOOSE_MODE_PROC(set_task_sizes_tt, set_task_sizes_skas,
&host_task_size, &task_size); &host_task_size, &task_size);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment