Linux-2.6.12-rc2

Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!
diff --git a/arch/um/Kconfig b/arch/um/Kconfig
new file mode 100644
index 0000000..9a23df1
--- /dev/null
+++ b/arch/um/Kconfig
@@ -0,0 +1,320 @@
+# UML uses the generic IRQ sugsystem
+config GENERIC_HARDIRQS
+	bool
+	default y
+
+config UML
+	bool
+	default y
+
+# XXX: does UM have a mmu/swap?
+config MMU
+	bool
+	default y
+
+mainmenu "Linux/Usermode Kernel Configuration"
+
+config ISA
+	bool
+
+config SBUS
+	bool
+
+config PCI
+	bool
+
+config UID16
+	bool
+	default y
+
+config RWSEM_GENERIC_SPINLOCK
+	bool
+	default y
+
+config GENERIC_CALIBRATE_DELAY
+	bool
+	default y
+
+menu "UML-specific options"
+
+config MODE_TT
+	bool "Tracing thread support"
+	default y
+	help
+	This option controls whether tracing thread support is compiled
+	into UML.  Normally, this should be set to Y.  If you intend to
+	use only skas mode (and the host has the skas patch applied to it),
+	then it is OK to say N here.
+
+config STATIC_LINK
+	bool "Force a static link"
+	default n
+	depends on !MODE_TT
+	help
+	If CONFIG_MODE_TT is disabled, then this option gives you the ability
+	to force a static link of UML.  Normally, if only skas mode is built
+	in to UML, it will be linked as a shared binary.  This is inconvenient
+	for use in a chroot jail.  So, if you intend to run UML inside a
+	chroot, and you disable CONFIG_MODE_TT, you probably want to say Y
+	here.
+
+config MODE_SKAS
+	bool "Separate Kernel Address Space support"
+	default y
+	help
+	This option controls whether skas (separate kernel address space)
+	support is compiled in.  If you have applied the skas patch to the
+	host, then you certainly want to say Y here (and consider saying N
+	to CONFIG_MODE_TT).  Otherwise, it is safe to say Y.  Disabling this
+	option will shrink the UML binary slightly.
+
+source "arch/um/Kconfig_arch"
+
+config LD_SCRIPT_STATIC
+	bool
+	default y
+	depends on MODE_TT || STATIC_LINK
+
+config LD_SCRIPT_DYN
+	bool
+	default y
+	depends on !LD_SCRIPT_STATIC
+
+config NET
+	bool "Networking support"
+	help
+	Unless you really know what you are doing, you should say Y here.
+	The reason is that some programs need kernel networking support even
+	when running on a stand-alone machine that isn't connected to any
+	other computer. If you are upgrading from an older kernel, you
+	should consider updating your networking tools too because changes
+	in the kernel and the tools often go hand in hand. The tools are
+	contained in the package net-tools, the location and version number
+	of which are given in <file:Documentation/Changes>.
+
+	For a general introduction to Linux networking, it is highly
+	recommended to read the NET-HOWTO, available from
+	<http://www.tldp.org/docs.html#howto>.
+
+
+source "fs/Kconfig.binfmt"
+
+config HOSTFS
+	tristate "Host filesystem"
+	help
+        While the User-Mode Linux port uses its own root file system for
+        booting and normal file access, this module lets the UML user
+        access files stored on the host.  It does not require any
+        network connection between the Host and UML.  An example use of
+        this might be:
+
+        mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
+
+        where /tmp/fromhost is an empty directory inside UML and
+        /tmp/umlshare is a directory on the host with files the UML user
+        wishes to access.
+
+        For more information, see
+        <http://user-mode-linux.sourceforge.net/hostfs.html>.
+
+        If you'd like to be able to work with files stored on the host,
+        say Y or M here; otherwise say N.
+
+config HPPFS
+	tristate "HoneyPot ProcFS (EXPERIMENTAL)"
+	depends on BROKEN
+	help
+	hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc
+	entries to be overridden, removed, or fabricated from the host.
+	Its purpose is to allow a UML to appear to be a physical machine
+	by removing or changing anything in /proc which gives away the
+	identity of a UML.
+
+	See <http://user-mode-linux.sf.net/hppfs.html> for more information.
+
+	You only need this if you are setting up a UML honeypot.  Otherwise,
+	it is safe to say 'N' here.
+
+	If you are actively using it, please ask for it to be fixed. In this
+	moment, it does not work on 2.6 (it works somehow on 2.4).
+
+config MCONSOLE
+	bool "Management console"
+	default y
+	help
+        The user mode linux management console is a low-level interface to
+        the kernel, somewhat like the i386 SysRq interface.  Since there is
+        a full-blown operating system running under every user mode linux
+        instance, there is much greater flexibility possible than with the
+        SysRq mechanism.
+
+        If you answer 'Y' to this option, to use this feature, you need the
+        mconsole client (called uml_mconsole) which is present in CVS in
+        2.4.5-9um and later (path /tools/mconsole), and is also in the
+        distribution RPM package in 2.4.6 and later.
+
+        It is safe to say 'Y' here.
+
+config MAGIC_SYSRQ
+	bool "Magic SysRq key"
+	depends on MCONSOLE
+	---help---
+	If you say Y here, you will have some control over the system even
+	if the system crashes for example during kernel debugging (e.g., you
+	will be able to flush the buffer cache to disk, reboot the system
+	immediately or dump some status information). A key for each of the
+	possible requests is provided.
+
+	This is the feature normally accomplished by pressing a key
+	while holding SysRq (Alt+PrintScreen).
+
+	On UML, this is accomplished by sending a "sysrq" command with
+	mconsole, followed by the letter for the requested command.
+
+	The keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
+	unless you really know what this hack does.
+
+config HOST_2G_2G
+	bool "2G/2G host address space split"
+	default n
+	help
+	This is needed when the host on which you run has a 2G/2G memory
+	split, instead of the customary 3G/1G.
+
+	Note that to enable such a host
+	configuration, which makes sense only in some cases, you need special
+	host patches.
+
+	So, if you do not know what to do here, say 'N'.
+
+config SMP
+	bool "Symmetric multi-processing support (EXPERIMENTAL)"
+	default n
+	depends on MODE_TT && EXPERIMENTAL
+	help
+	This option enables UML SMP support.
+	It is NOT related to having a real SMP box. Not directly, at least.
+
+	UML implements virtual SMP by allowing as many processes to run
+	simultaneously on the host as there are virtual processors configured.
+
+	Obviously, if the host is a uniprocessor, those processes will
+	timeshare, but, inside UML, will appear to be running simultaneously.
+	If the host is a multiprocessor, then UML processes may run
+	simultaneously, depending on the host scheduler.
+
+	This, however, is supported only in TT mode. So, if you use the SKAS
+	patch on your host, switching to TT mode and enabling SMP usually gives
+	you worse performances.
+	Also, since the support for SMP has been under-developed, there could
+	be some bugs being exposed by enabling SMP.
+
+	If you don't know what to do, say N.
+
+config NR_CPUS
+	int "Maximum number of CPUs (2-32)"
+	range 2 32
+	depends on SMP
+	default "32"
+
+config NEST_LEVEL
+	int "Nesting level"
+	default "0"
+	help
+        This is set to the number of layers of UMLs that this UML will be run
+        in.  Normally, this is zero, meaning that it will run directly on the
+        host.  Setting it to one will build a UML that can run inside a UML
+        that is running on the host.  Generally, if you intend this UML to run
+        inside another UML, set CONFIG_NEST_LEVEL to one more than the host
+        UML.
+
+        Note that if the hosting UML has its CONFIG_KERNEL_HALF_GIGS set to
+        greater than one, then the guest UML should have its CONFIG_NEST_LEVEL
+        set to the host's CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS.
+        Only change this if you are running nested UMLs.
+
+config KERNEL_HALF_GIGS
+	int "Kernel address space size (in .5G units)"
+	default "1"
+	help
+        This determines the amount of address space that UML will allocate for
+        its own, measured in half Gigabyte units.  The default is 1.
+        Change this only if you need to boot UML with an unusually large amount
+        of physical memory.
+
+config HIGHMEM
+	bool "Highmem support"
+
+config KERNEL_STACK_ORDER
+	int "Kernel stack size order"
+	default 2
+	help
+	This option determines the size of UML kernel stacks.  They will
+	be 1 << order pages.  The default is OK unless you're running Valgrind
+	on UML, in which case, set this to 3.
+
+config UML_REAL_TIME_CLOCK
+	bool "Real-time Clock"
+	default y
+	help
+	This option makes UML time deltas match wall clock deltas.  This should
+	normally be enabled.  The exception would be if you are debugging with
+	UML and spend long times with UML stopped at a breakpoint.  In this
+	case, when UML is restarted, it will call the timer enough times to make
+	up for the time spent at the breakpoint.  This could result in a
+	noticable lag.  If this is a problem, then disable this option.
+
+endmenu
+
+source "init/Kconfig"
+
+source "drivers/base/Kconfig"
+
+source "arch/um/Kconfig_char"
+
+source "drivers/block/Kconfig"
+
+config NETDEVICES
+	bool
+	default NET
+
+source "arch/um/Kconfig_net"
+
+source "net/Kconfig"
+
+source "fs/Kconfig"
+
+source "security/Kconfig"
+
+source "crypto/Kconfig"
+
+source "lib/Kconfig"
+
+menu "SCSI support"
+depends on BROKEN
+
+config SCSI
+	tristate "SCSI support"
+
+# This gives us free_dma, which scsi.c wants.
+config GENERIC_ISA_DMA
+	bool
+	depends on SCSI
+	default y
+
+source "arch/um/Kconfig_scsi"
+
+endmenu
+
+source "drivers/md/Kconfig"
+
+if BROKEN
+	source "drivers/mtd/Kconfig"
+endif
+
+#This is just to shut up some Kconfig warnings, so no prompt.
+config INPUT
+	bool
+	default n
+
+source "arch/um/Kconfig.debug"