2005-07-05  Shaun Jackman  <sjackman@gmail.com>

        * init/Config.in (CONFIG_FEATURE_INIT_SWAPON): New option.
        * init/init.c (check_memory): Disable the swapon feature unless
        CONFIG_FEATURE_INIT_SWAPON is defined.
diff --git a/init/Config.in b/init/Config.in
index 4465e75..521f8fe 100644
--- a/init/Config.in
+++ b/init/Config.in
@@ -35,6 +35,14 @@
 	  core file sizes.  If this option is disabled, processes
 	  will not generate any core files.
 
+config CONFIG_FEATURE_INIT_SWAPON
+	bool "  Should init run swapon if short on memory?"
+	default y
+	depends on CONFIG_INIT
+	help
+	  If the system has less than one megabyte of total memory, init
+	  will run '/sbin/swapon -a' to add swap memory.
+
 config CONFIG_FEATURE_EXTRA_QUIET
 	bool "  Should init be _extra_ quiet on boot?"
 	default y
diff --git a/init/init.c b/init/init.c
index e0e2f19..5281225 100644
--- a/init/init.c
+++ b/init/init.c
@@ -309,6 +309,7 @@
 	tcsetattr(fd, TCSANOW, &tty);
 }
 
+#ifdef CONFIG_FEATURE_INIT_SWAPON
 /* How much memory does this machine have?
    Units are kBytes to avoid overflow on 4GB machines */
 static unsigned int check_free_memory(void)
@@ -337,6 +338,7 @@
 		return(result * u);
 	}
 }
+#endif /* CONFIG_FEATURE_INIT_SWAPON */
 
 static void console_init(void)
 {
@@ -910,6 +912,7 @@
 	}
 }
 
+#ifdef CONFIG_FEATURE_INIT_SWAPON
 /* Make sure there is enough memory to do something useful. *
  * Calls "swapon -a" if needed so be sure /etc/fstab is present... */
 static void check_memory(void)
@@ -937,6 +940,9 @@
 	message(CONSOLE, "Sorry, your computer does not have enough memory.");
 	loop_forever();
 }
+#else
+# define check_memory()
+#endif /* CONFIG_FEATURE_INIT_SWAPON */
 
 /* NOTE that if CONFIG_FEATURE_USE_INITTAB is NOT defined,
  * then parse_inittab() simply adds in some default