source "drivers/kvm/Kconfig"
 
 source "drivers/uio/Kconfig"
+
+source "drivers/lguest/Kconfig"
 endmenu
 
 obj-$(CONFIG_EDAC)             += edac/
 obj-$(CONFIG_MCA)              += mca/
 obj-$(CONFIG_EISA)             += eisa/
+obj-$(CONFIG_LGUEST_GUEST)     += lguest/
 obj-$(CONFIG_CPU_FREQ)         += cpufreq/
 obj-$(CONFIG_MMC)              += mmc/
 obj-$(CONFIG_NEW_LEDS)         += leds/
 
--- /dev/null
+config LGUEST
+       tristate "Linux hypervisor example code"
+       depends on X86 && PARAVIRT && NET && EXPERIMENTAL && !X86_PAE
+       select LGUEST_GUEST
+       select HVC_DRIVER
+       ---help---
+         This is a very simple module which allows you to run
+         multiple instances of the same Linux kernel, using the
+         "lguest" command found in the Documentation/lguest directory.
+         Note that "lguest" is pronounced to rhyme with "fell quest",
+         not "rustyvisor".  See Documentation/lguest/lguest.txt.
+
+         If unsure, say N.  If curious, say M.  If masochistic, say Y.
+
+config LGUEST_GUEST
+       bool
+       help
+         The guest needs code built-in, even if the host has lguest
+         support as a module.  The drivers are tiny, so we build them
+         in too.
 
--- /dev/null
+# Guest requires the paravirt_ops replacement and the bus driver.
+obj-$(CONFIG_LGUEST_GUEST) += lguest.o lguest_asm.o lguest_bus.o
+
+# Host requires the other files, which can be a module.
+obj-$(CONFIG_LGUEST)   += lg.o
+lg-y := core.o hypercalls.o page_tables.o interrupts_and_traps.o \
+       segments.o io.o lguest_user.o switcher.o