aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um
diff options
context:
space:
mode:
authorTyler <tyler@agat.net>2006-07-10 07:45:03 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-07-10 16:24:23 -0400
commit598d188af1a0645dc75c9541eff0017a4f6d9987 (patch)
treeffbc9704b361ca01cf4a1817cc02b4b82e86f4ea /arch/um
parent5f49d7247828bd2d992cf9bd78e5e33a421fb0ba (diff)
[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>
Diffstat (limited to 'arch/um')
-rw-r--r--arch/um/include/skas/mode_kern_skas.h2
-rw-r--r--arch/um/include/tt/mode_kern_tt.h2
-rw-r--r--arch/um/kernel/skas/mem.c19
-rw-r--r--arch/um/kernel/tt/mem.c17
-rw-r--r--arch/um/kernel/um_arch.c2
5 files changed, 10 insertions, 32 deletions
diff --git a/arch/um/include/skas/mode_kern_skas.h b/arch/um/include/skas/mode_kern_skas.h
index 63c58739bde0..651350adfe03 100644
--- a/arch/um/include/skas/mode_kern_skas.h
+++ b/arch/um/include/skas/mode_kern_skas.h
@@ -29,7 +29,7 @@ extern void flush_tlb_mm_skas(struct mm_struct *mm);
29extern void force_flush_all_skas(void); 29extern void force_flush_all_skas(void);
30extern long execute_syscall_skas(void *r); 30extern long execute_syscall_skas(void *r);
31extern void before_mem_skas(unsigned long unused); 31extern void before_mem_skas(unsigned long unused);
32extern unsigned long set_task_sizes_skas(int arg, unsigned long *host_size_out, 32extern unsigned long set_task_sizes_skas(unsigned long *host_size_out,
33 unsigned long *task_size_out); 33 unsigned long *task_size_out);
34extern int start_uml_skas(void); 34extern int start_uml_skas(void);
35extern int external_pid_skas(struct task_struct *task); 35extern int external_pid_skas(struct task_struct *task);
diff --git a/arch/um/include/tt/mode_kern_tt.h b/arch/um/include/tt/mode_kern_tt.h
index efa0012550d0..fb2d3d76685a 100644
--- a/arch/um/include/tt/mode_kern_tt.h
+++ b/arch/um/include/tt/mode_kern_tt.h
@@ -30,7 +30,7 @@ extern void flush_tlb_mm_tt(struct mm_struct *mm);
30extern void force_flush_all_tt(void); 30extern void force_flush_all_tt(void);
31extern long execute_syscall_tt(void *r); 31extern long execute_syscall_tt(void *r);
32extern void before_mem_tt(unsigned long brk_start); 32extern void before_mem_tt(unsigned long brk_start);
33extern unsigned long set_task_sizes_tt(int arg, unsigned long *host_size_out, 33extern unsigned long set_task_sizes_tt(unsigned long *host_size_out,
34 unsigned long *task_size_out); 34 unsigned long *task_size_out);
35extern int start_uml_tt(void); 35extern int start_uml_tt(void);
36extern int external_pid_tt(struct task_struct *task); 36extern int external_pid_tt(struct task_struct *task);
diff --git a/arch/um/kernel/skas/mem.c b/arch/um/kernel/skas/mem.c
index 88ab96c609ce..7e5b8f165cf2 100644
--- a/arch/um/kernel/skas/mem.c
+++ b/arch/um/kernel/skas/mem.c
@@ -9,14 +9,14 @@
9#include "mem_user.h" 9#include "mem_user.h"
10#include "skas.h" 10#include "skas.h"
11 11
12unsigned long set_task_sizes_skas(int arg, unsigned long *host_size_out, 12unsigned long set_task_sizes_skas(unsigned long *host_size_out,
13 unsigned long *task_size_out) 13 unsigned long *task_size_out)
14{ 14{
15 /* Round up to the nearest 4M */ 15 /* Round up to the nearest 4M */
16 unsigned long top = ROUND_4M((unsigned long) &arg); 16 unsigned long top = ROUND_4M((unsigned long) &host_size_out);
17 17
18#ifdef CONFIG_HOST_TASK_SIZE 18#ifdef CONFIG_HOST_TASK_SIZE
19 *host_size_out = CONFIG_HOST_TASK_SIZE; 19 *host_size_out = ROUND_4M(CONFIG_HOST_TASK_SIZE);
20 *task_size_out = CONFIG_HOST_TASK_SIZE; 20 *task_size_out = CONFIG_HOST_TASK_SIZE;
21#else 21#else
22 *host_size_out = top; 22 *host_size_out = top;
@@ -24,16 +24,5 @@ unsigned long set_task_sizes_skas(int arg, unsigned long *host_size_out,
24 *task_size_out = top; 24 *task_size_out = top;
25 else *task_size_out = CONFIG_STUB_START & PGDIR_MASK; 25 else *task_size_out = CONFIG_STUB_START & PGDIR_MASK;
26#endif 26#endif
27 return(((unsigned long) set_task_sizes_skas) & ~0xffffff); 27 return ((unsigned long) set_task_sizes_skas) & ~0xffffff;
28} 28}
29
30/*
31 * Overrides for Emacs so that we follow Linus's tabbing style.
32 * Emacs will notice this stuff at the end of the file and automatically
33 * adjust the settings for this buffer only. This must remain at the end
34 * of the file.
35 * ---------------------------------------------------------------------------
36 * Local variables:
37 * c-file-style: "linux"
38 * End:
39 */
diff --git a/arch/um/kernel/tt/mem.c b/arch/um/kernel/tt/mem.c
index bcb8796c3cb1..4ae8c5c1e3b3 100644
--- a/arch/um/kernel/tt/mem.c
+++ b/arch/um/kernel/tt/mem.c
@@ -24,22 +24,11 @@ void before_mem_tt(unsigned long brk_start)
24#define SIZE ((CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS) * 0x20000000) 24#define SIZE ((CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS) * 0x20000000)
25#define START (CONFIG_TOP_ADDR - SIZE) 25#define START (CONFIG_TOP_ADDR - SIZE)
26 26
27unsigned long set_task_sizes_tt(int arg, unsigned long *host_size_out, 27unsigned long set_task_sizes_tt(unsigned long *host_size_out,
28 unsigned long *task_size_out) 28 unsigned long *task_size_out)
29{ 29{
30 /* Round up to the nearest 4M */ 30 /* Round up to the nearest 4M */
31 *host_size_out = ROUND_4M((unsigned long) &arg); 31 *host_size_out = ROUND_4M((unsigned long) &host_size_out);
32 *task_size_out = START; 32 *task_size_out = START;
33 return(START); 33 return START;
34} 34}
35
36/*
37 * Overrides for Emacs so that we follow Linus's tabbing style.
38 * Emacs will notice this stuff at the end of the file and automatically
39 * adjust the settings for this buffer only. This must remain at the end
40 * of the file.
41 * ---------------------------------------------------------------------------
42 * Local variables:
43 * c-file-style: "linux"
44 * End:
45 */
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c
index 37cfe7701f06..a50a0aac8faa 100644
--- a/arch/um/kernel/um_arch.c
+++ b/arch/um/kernel/um_arch.c
@@ -374,7 +374,7 @@ int linux_main(int argc, char **argv)
374 374
375 printf("UML running in %s mode\n", mode); 375 printf("UML running in %s mode\n", mode);
376 376
377 uml_start = CHOOSE_MODE_PROC(set_task_sizes_tt, set_task_sizes_skas, 0, 377 uml_start = CHOOSE_MODE_PROC(set_task_sizes_tt, set_task_sizes_skas,
378 &host_task_size, &task_size); 378 &host_task_size, &task_size);
379 379
380 /* 380 /*