[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: Tyler <tyler@agat.net> Signed-off-by: Jeff Dike <jdike@addtoit.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
5f49d72478
commit
598d188af1
5 changed files with 10 additions and 32 deletions
|
@ -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);
|
||||||
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 @@
|
||||||
#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,
|
||||||
*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)
|
||||||
#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)
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue