diff -Naur -X exclude-files ac_cur/arch/um/kernel/initrd_kern.c ac/arch/um/kernel/initrd_kern.c
--- ac_cur/arch/um/kernel/initrd_kern.c	Fri Nov  2 23:40:21 2001
+++ ac/arch/um/kernel/initrd_kern.c	Sat Nov  3 00:01:12 2001
@@ -5,13 +5,16 @@
 
 #include "linux/init.h"
 #include "linux/bootmem.h"
-
 #include "linux/blk.h"
+#include "asm/types.h"
 #include "user_util.h"
 #include "initrd.h"
 #include "init.h"
 
+extern __u64 file_size(char *file);
+
 static char *initrd __initdata = NULL;
+
 static int __init read_initrd(void)
 {
 	void *area;
@@ -27,17 +30,20 @@
 	initrd_end = initrd_start + size;
 	return 0;
 }
+
+__uml_postsetup(read_initrd);
+
 static int __init uml_initrd_setup(char *line, int *add)
 {
 	initrd = line;
 	return 0;
 }
+
 __uml_setup("initrd=", uml_initrd_setup, 
 "initrd=<initrd image>\n"
 "    This is used to boot UML from an initrd image.  The argument is the\n"
 "    name of the file containing the image\n"
 );
-__uml_postsetup(read_initrd);
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.