Hi,
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.
--
tyler
[EMAIL PROTECTED]
diff -uprN -X linux-2.6/Documentation/dontdiff
linux-2.6/arch/um/include/mem_user.h linux-2.6-mine/arch/um/include/mem_user.h
--- linux-2.6/arch/um/include/mem_user.h 2006-05-16 19:05:32.000000000
+0200
+++ linux-2.6-mine/arch/um/include/mem_user.h 2006-05-22 23:17:02.000000000
+0200
@@ -44,6 +44,7 @@ struct iomem_region {
extern struct iomem_region *iomem_regions;
extern int iomem_size;
+#define DEFAULT_HOST_TASK_SIZE 0
#define ROUND_4M(n) ((((unsigned long) (n)) + (1 << 22)) & ~((1 << 22) - 1))
extern unsigned long host_task_size;
diff -uprN -X linux-2.6/Documentation/dontdiff
linux-2.6/arch/um/kernel/skas/mem.c linux-2.6-mine/arch/um/kernel/skas/mem.c
--- linux-2.6/arch/um/kernel/skas/mem.c 2006-05-16 19:05:32.000000000 +0200
+++ linux-2.6-mine/arch/um/kernel/skas/mem.c 2006-05-22 23:16:37.000000000
+0200
@@ -9,14 +9,14 @@
#include "mem_user.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)
{
/* Round up to the nearest 4M */
- unsigned long top = ROUND_4M((unsigned long) &arg);
+ unsigned long top = ROUND_4M(DEFAULT_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;
#else
*host_size_out = top;
diff -uprN -X linux-2.6/Documentation/dontdiff
linux-2.6/arch/um/kernel/tt/mem.c linux-2.6-mine/arch/um/kernel/tt/mem.c
--- linux-2.6/arch/um/kernel/tt/mem.c 2006-05-16 19:05:32.000000000 +0200
+++ linux-2.6-mine/arch/um/kernel/tt/mem.c 2006-05-22 23:16:11.000000000
+0200
@@ -24,11 +24,11 @@ void before_mem_tt(unsigned long brk_sta
#define SIZE ((CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS) * 0x20000000)
#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)
{
/* Round up to the nearest 4M */
- *host_size_out = ROUND_4M((unsigned long) &arg);
+ *host_size_out = ROUND_4M(DEFAULT_HOST_TASK_SIZE);
*task_size_out = START;
return(START);
}
diff -uprN -X linux-2.6/Documentation/dontdiff
linux-2.6/arch/um/kernel/um_arch.c linux-2.6-mine/arch/um/kernel/um_arch.c
--- linux-2.6/arch/um/kernel/um_arch.c 2006-05-16 19:05:32.000000000 +0200
+++ linux-2.6-mine/arch/um/kernel/um_arch.c 2006-05-22 23:17:46.000000000
+0200
@@ -374,7 +374,7 @@ int linux_main(int argc, char **argv)
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);
/*