diff -Naurp linux-2.2.26-vanilla/ChangeLog-2.2.26 linux-2.2.27-rc2/ChangeLog-2.2.26
--- linux-2.2.26-vanilla/ChangeLog-2.2.26	2005-01-13 00:04:56.000000000 +0100
+++ linux-2.2.27-rc2/ChangeLog-2.2.26	1970-01-01 01:00:00.000000000 +0100
@@ -1,36 +0,0 @@
-Kernel 2.2.xx Mainline
-----------------------
-Person:		Marc-Christian Petersen
-EMail:		m.c.p@wolk-project.de
-Mailinglist:	linux-kernel@vger.kernel.org
-Website:	http://www.kernel.org/pub/linux/kernel/people/mcp/
-Status:		Maintained
-Employed by:	Linux-Systeme GmbH, http://www.linux-systeme.de/
-
-
-    Thanks to Alan Cox 8-)
-
-
--------------------------------------------------------------------------
-If you need a more secured, more stable, even faster, better SMP support,
-IDE LBA48 support, LFS support, IPSec support, HTB support, IPVS support
-etc. enabled kernel with many more features and important fixes, please
-use my 2.2-secure tree.
-You may find more informations about it at http://www.wolk-project.de.
--------------------------------------------------------------------------
-
-
-
-2.2.26
-------
-o	CAN-2004-0077: behave safely in case of do_munmap()	(Solar Designer)
-	  failures in mremap(2)
-o	CAN-2003-0984: /dev/rtc can leak parts of kernel	(Solar Designer)
-	  memory to unprivileged users (2.4 backport)
-o	CAN-2003-0244: hashing exploits in network stack	(David S. Miller)
-o	update_atime() performance improvement (2.4 backport)	(Solar Designer)
-o	ability to swapoff after a device file might		(Solar Designer)
-	  have been re-created
-o	MAINTAINERS correction for Kernel 2.2 and 2.2 fixes	(me)
-o	fixed some typos					(Solar Designer, me)
-
diff -Naurp linux-2.2.26-vanilla/ChangeLog-2.2.27 linux-2.2.27-rc2/ChangeLog-2.2.27
--- linux-2.2.26-vanilla/ChangeLog-2.2.27	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.2.27-rc2/ChangeLog-2.2.27	2005-01-13 00:52:37.000000000 +0100
@@ -0,0 +1,98 @@
+Kernel 2.2.xx Mainline
+----------------------
+Person:		Marc-Christian Petersen
+EMail:		m.c.p@kernel.linux-systeme.com
+Mailinglist:	linux-kernel@vger.kernel.org
+Website:	http://www.kernel.org/pub/linux/kernel/people/mcp/
+Status:		Maintained
+Employed by:	Linux-Systeme GmbH, http://www.linux-systeme.com/
+
+
+    Thanks to Alan Cox 8-)
+
+
+----------------------------------------------------------------------------
+If you need a more secured, more stable, even faster, better SMP support,
+LFS support, Highmem support, IDE LBA48 support, IPSec support, HTB support,
+IPVS support etc. enabled kernel with many more features and important
+fixes, please use my 2.2-secure tree.
+You may find more informations about it at http://www.wolk-project.de/
+----------------------------------------------------------------------------
+
+
+
+2.2.27-rc2
+----------
+o	CAN-2005-0001: fixed expand_stack() SMP race		(Redhat)
+o	CAN-2004-0883, CAN-2004-0949: smbfs: fixed client	(Stefan Esser)
+	  overflow. There are two bugs in the handling of SMB
+	  responses that result in remote kernel overflows. Due
+	  to the nature of the bugs both seem to be very hard
+	  to exploit (in the sense of remote code execution or
+	  local privilege escalation) but are trivial remote
+	  kernel crashes.
+o	rose_rt_ioctl: lack of bounds checking			(Coverity)
+o	sdla_xfer: lack of bounds checking			(Coverity)
+o	coda: bounds checking for tainted scalars		(Coverity)
+o	sendmsg compat wrapper fixes for 64bit compat mode	(Olaf Kirch)
+
+
+
+2.2.27-rc1
+----------
+o	CAN-2004-0497: fixed missing DAC check on sys_chown	(Thomas Biege)
+o	CAN-2004-1016: fixed a buffer overflow vulnerability	(Paul Starzetz)
+	  in the "__scm_send" function which handles the sending
+	  of UDP network packets. A wrong validity check of the
+	  cmsghdr structure allowed a local attacker to modify
+	  kernel memory, thus causing an endless loop (DoS) or
+	  possibly even root privilege escalation.
+o	CAN-2004-1333: fixed integer overflow in the vc_resize	(Georgi Guninski)
+	  function allows local users to cause a denial of
+	  service (kernel crash) via a short new screen value,
+	  which leads to a buffer overflow. Make sure VC
+	  resizing fits in s16.
+o	If the user makes ip_cmsg_send call ip_options_get	(Georgi Guninski)
+	  multiple times, we leak kmalloced IP options data.
+o	fixed moxa serial bound checking issue			(Alan Cox)
+o	menu cleanups						(me)
+
+
+
+2.2.27-pre2
+-----------
+o	A more correct fix to last mremap (2) bug		(Dan Yefimov/Solar Designer)
+o	renamed imho *bogus* _vsnprintf to vsnprintf		(me)
+o	fixed 'noexec' behaviour (2.4 backport)			(me)
+	  from Ulrich Drepper
+
+
+
+2.2.27-pre1
+-----------
+o	fixed TCP keepalive bug					(Neal Cardwell)
+o       fixed tcp seq nr wrapping bug				(Ulrik De Bie)
+o	added cciss root translation table			(Eduard Bloch)
+o	VIA KL133/KM133 northbridge: vga console going crazy	(Roberto Biancardi)
+o	speedup 'make dep'					(Benoit Poulot-Cazajous)
+o	disabled MCE only on Pentiums by default (2.4 backport)	(Herbert Xu)
+	  (boot with 'mce' if your MCE works as expected)
+o	skb_realloc_headroom() panics when new headroom is	(James Morris)
+	  smaller than existing headroom
+o	invalid nh.raw use after free				(Julian Anastasov)
+o	fix a local APIC initaliziation ordering bug that	(Andrea Arcangeli)
+	  triggers on the P4
+o	TSC calibration must be dynamic and not a compile	(Andrea Arcangeli)
+	  time thing because gettimeofday is dynamic and it
+	  depends on the TSCs to be in sync
+o	fix deadlock on shutdown in 8139too			(Herbert Xu)
+o	support for ELF executables which use an a.out format	(Solar Designer)
+	  interpreter (dynamic linker) moved into a separate
+	  configuration option and disabled by default
+o	fixed sys_utimes perm check according to sys_utim	(Al Viro)
+o	show us the saved kernel command line (2.4 backport)	(me)
+o	some whitespace cleanups, some coding style cleanups	(me)
+o	fixed some gcc warnings					(me)
+o	add PCI ID for 82820 NIC to eepro100 network driver	(me)
+o	move 'Network device support' near 'Networking options'	(me)
+
diff -Naurp linux-2.2.26-vanilla/Documentation/Configure.help linux-2.2.27-rc2/Documentation/Configure.help
--- linux-2.2.26-vanilla/Documentation/Configure.help	2005-01-13 00:04:16.000000000 +0100
+++ linux-2.2.27-rc2/Documentation/Configure.help	2005-01-13 00:05:40.000000000 +0100
@@ -1949,6 +1949,12 @@ CONFIG_BINFMT_ELF
   called binfmt_elf.o. Saying M or N here is dangerous because some
   crucial programs on your system might be in ELF format.
 
+ELF binaries with a.out format interpreters or a.out libraries
+CONFIG_BINFMT_ELF_AOUT
+  The kernel may support ELF executables which use an a.out format
+  interpreter (dynamic linker) and/or a.out shared libraries, in
+  addition to the usual ELF-ELF setups. You shouldn't need this.
+
 Kernel support for A.OUT binaries
 CONFIG_BINFMT_AOUT
   A.out (Assembler.OUTput) is a set of formats for libraries and
@@ -1962,13 +1968,11 @@ CONFIG_BINFMT_AOUT
   warrant removing support. However its removal is a good idea if you
   wish to ensure that absolutely none of your programs will use this
   older executable format. If you don't know what to answer at this
-  point then answer Y. If someone told you "You need a kernel with
+  point then answer N. If someone told you "You need a kernel with
   QMAGIC support" then you'll have to say Y here. You may answer M to
   compile a.out support as a module and later load the module when you
   want to use a program or library in a.out format. The module will be
-  called binfmt_aout.o. Saying M or N here is dangerous though,
-  because some crucial programs on your system might still be in A.OUT
-  format.
+  called binfmt_aout.o.
 
 Kernel support for JAVA binaries (obsolete)
 CONFIG_BINFMT_JAVA
diff -Naurp linux-2.2.26-vanilla/MAINTAINERS linux-2.2.27-rc2/MAINTAINERS
--- linux-2.2.26-vanilla/MAINTAINERS	2005-01-13 00:04:56.000000000 +0100
+++ linux-2.2.27-rc2/MAINTAINERS	2005-01-13 00:06:25.000000000 +0100
@@ -562,7 +562,7 @@ S:	Maintained
 
 KERNEL  (2.2.XX TREE)
 P:	Marc-Christian Petersen
-M:	m.c.p@wolk-project.de
+M:	m.c.p@kernel.linux-systeme.com
 L:	linux-kernel@vger.kernel.org
 W:	http://www.kernel.org/pub/linux/kernel/people/mcp/
 S:	Maintained
@@ -880,10 +880,8 @@ S:	Maintained
 
 SMB FILESYSTEM
 P:	Urban Widmark
-M:	urban@svenskatest.se
-W:	http://samba.org/
-L:	samba@samba.org
-S:	Maintained
+M:	Urban.Widmark@enlight.net
+S:	Odd Fixes
 
 SMP: (except SPARC)
 P:	Linus Torvalds
@@ -1173,7 +1171,7 @@ S:	Maintained
 
 LINUX 2.2 FIXES
 P:	Marc-Christian Petersen
-M:	m.c.p@wolk-project.de
+M:	m.c.p@kernel.linux-systeme.com
 S:	Maintained
 
 THE REST
diff -Naurp linux-2.2.26-vanilla/Makefile linux-2.2.27-rc2/Makefile
--- linux-2.2.26-vanilla/Makefile	2005-01-13 00:04:56.000000000 +0100
+++ linux-2.2.27-rc2/Makefile	2005-01-13 00:06:58.000000000 +0100
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 2
-SUBLEVEL = 26
-EXTRAVERSION = 
+SUBLEVEL = 27
+EXTRAVERSION = -rc2
 
 ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
 
@@ -440,14 +440,15 @@ sums:
 	find . -type f -print | sort | xargs sum > .SUMS
 
 dep-files: scripts/mkdep archdep include/linux/version.h new-genksyms
-	scripts/mkdep init/*.c > .depend
-	scripts/mkdep `find $(FINDHPATH) -follow -name \*.h ! -name modversions.h -print` > .hdepend
+	rm -f .depend .hdepend
 #	set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i fastdep ;done
 # let this be made through the fastdep rule in Rules.make
 	$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
 ifdef CONFIG_MODVERSIONS
 	$(MAKE) update-modverfile
 endif
+	scripts/mkdep `find $(FINDHPATH) -follow -name \*.h ! -name modversions.h -print` > .hdepend
+	scripts/mkdep init/*.c > .depend
 
 MODVERFILE :=
 
diff -Naurp linux-2.2.26-vanilla/arch/alpha/config.in linux-2.2.27-rc2/arch/alpha/config.in
--- linux-2.2.26-vanilla/arch/alpha/config.in	2001-03-25 18:37:29.000000000 +0200
+++ linux-2.2.27-rc2/arch/alpha/config.in	2005-01-13 00:05:40.000000000 +0100
@@ -202,18 +202,26 @@ bool 'Networking support' CONFIG_NET
 bool 'System V IPC' CONFIG_SYSVIPC
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
-tristate 'Kernel support for a.out (ECOFF) binaries' CONFIG_BINFMT_AOUT
+
+mainmenu_option next_comment
+comment 'Executable file formats'
 tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
+if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
+  bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
+fi
+tristate 'Kernel support for a.out (ECOFF) binaries' CONFIG_BINFMT_AOUT
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'Kernel support for JAVA binaries (obsolete)' CONFIG_BINFMT_JAVA
 fi
 tristate 'Kernel support for Linux/Intel ELF binaries' CONFIG_BINFMT_EM86
+endmenu
+
 tristate 'Parallel port support' CONFIG_PARPORT
 if [ "$CONFIG_PARPORT" != "n" ]; then
   dep_tristate '  PC-style hardware' CONFIG_PARPORT_PC $CONFIG_PARPORT
   if [ "$CONFIG_PARPORT_PC" != "n" ]; then
-    bool '   Support foreign hardware' CONFIG_PARPORT_OTHER
+    bool '    Support foreign hardware' CONFIG_PARPORT_OTHER
   fi
 fi
 endmenu
@@ -226,15 +234,7 @@ if [ "$CONFIG_NET" = "y" ]; then
   source net/Config.in
 fi
 
-mainmenu_option next_comment
-comment 'SCSI support'
-
-tristate 'SCSI support' CONFIG_SCSI
-
-if [ "$CONFIG_SCSI" != "n" ]; then
-  source drivers/scsi/Config.in
-fi
-endmenu
+source drivers/scsi/Config.in
 
 if [ "$CONFIG_NET" = "y" ]; then
   mainmenu_option next_comment
@@ -270,7 +270,6 @@ fi
 endmenu
 
 source drivers/char/Config.in
-source drivers/usb/Config.in
 source fs/Config.in
 
 if [ "$CONFIG_VT" = "y" ]; then
@@ -285,14 +284,9 @@ if [ "$CONFIG_VT" = "y" ]; then
   endmenu
 fi
 
-mainmenu_option next_comment
-comment 'Sound'
+source drivers/sound/Config.in
 
-tristate 'Sound card support' CONFIG_SOUND
-if [ "$CONFIG_SOUND" != "n" ]; then
-  source drivers/sound/Config.in
-fi
-endmenu
+source drivers/usb/Config.in
 
 mainmenu_option next_comment
 comment 'Kernel hacking'
diff -Naurp linux-2.2.26-vanilla/arch/alpha/defconfig linux-2.2.27-rc2/arch/alpha/defconfig
--- linux-2.2.26-vanilla/arch/alpha/defconfig	2001-03-25 18:31:46.000000000 +0200
+++ linux-2.2.27-rc2/arch/alpha/defconfig	2005-01-13 00:05:40.000000000 +0100
@@ -51,8 +51,9 @@ CONFIG_NET=y
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
-CONFIG_BINFMT_AOUT=y
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 CONFIG_BINFMT_EM86=y
 # CONFIG_PARPORT is not set
diff -Naurp linux-2.2.26-vanilla/arch/arm/config.in linux-2.2.27-rc2/arch/arm/config.in
--- linux-2.2.26-vanilla/arch/arm/config.in	2001-03-25 18:31:54.000000000 +0200
+++ linux-2.2.27-rc2/arch/arm/config.in	2005-01-13 00:05:40.000000000 +0100
@@ -12,6 +12,15 @@ bool 'Prompt for development and/or inco
 endmenu
 
 mainmenu_option next_comment
+comment 'Loadable module support'
+bool 'Enable loadable module support' CONFIG_MODULES
+if [ "$CONFIG_MODULES" = "y" ]; then
+   bool '  Set version information on all symbols for modules' CONFIG_MODVERSIONS
+   bool '  Kernel module loader' CONFIG_KMOD
+fi
+endmenu
+
+mainmenu_option next_comment
 comment 'System and processor type'
 
 choice 'ARM system type'	\
@@ -119,27 +128,25 @@ fi
 endmenu
 
 mainmenu_option next_comment
-comment 'Loadable module support'
-bool 'Enable loadable module support' CONFIG_MODULES
-if [ "$CONFIG_MODULES" = "y" ]; then
-   bool '  Set version information on all symbols for modules' CONFIG_MODVERSIONS
-   bool '  Kernel module loader' CONFIG_KMOD
-fi
-endmenu
-
-mainmenu_option next_comment
 comment 'General setup'
 bool 'Networking support' CONFIG_NET
 bool 'System V IPC' CONFIG_SYSVIPC
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
 tristate 'Math emulation' CONFIG_NWFPE
-tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
+
+mainmenu_option next_comment
+comment 'Executable file formats'
 tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
+if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
+  bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
+fi
+tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
 if [ "$CONFIG_CPU_32" = "y" ]; then
    tristate 'RISC OS personality' CONFIG_ARTHUR
 fi
+endmenu
 
 tristate 'Parallel port support' CONFIG_PARPORT
 if [ "$CONFIG_PARPORT" != "n" ]; then
@@ -151,7 +158,7 @@ if [ "$CONFIG_PARPORT" != "n" ]; then
 # support for loading any others.  Defeat this if the user is keen.
   if [ "$CONFIG_PARPORT_PC" = "n" -o "$CONFIG_PARPORT_ARC" = "n" ]; then
     if [ "$CONFIG_PARPORT_PC" != "n" -o "$CONFIG_PARPORT_ARC" != "n" ]; then
-      bool '   Support foreign hardware' CONFIG_PARPORT_OTHER
+      bool '    Support foreign hardware' CONFIG_PARPORT_OTHER
     fi
   fi
 fi
@@ -232,25 +239,10 @@ fi
 # fi
 # endmenu
 
-mainmenu_option next_comment
-comment 'SCSI support'
-
-tristate 'SCSI support?' CONFIG_SCSI
-
-if [ "$CONFIG_SCSI" != "n" ]; then
-   source drivers/scsi/Config.in
-fi
-endmenu
+source drivers/scsi/Config.in
 
 if [ "$CONFIG_ARCH_ACORN" = "y" -o "$CONFIG_PCI" = "y" ]; then
-   mainmenu_option next_comment
-   comment 'Sound'
-
-   tristate 'Sound support' CONFIG_SOUND
-   if [ "$CONFIG_SOUND" != "n" ]; then
-      source drivers/sound/Config.in
-   fi
-   endmenu
+  source drivers/sound/Config.in
 fi
 
 source fs/Config.in
diff -Naurp linux-2.2.26-vanilla/arch/arm/defconfig linux-2.2.27-rc2/arch/arm/defconfig
--- linux-2.2.26-vanilla/arch/arm/defconfig	2001-03-25 18:31:54.000000000 +0200
+++ linux-2.2.27-rc2/arch/arm/defconfig	2005-01-13 00:05:40.000000000 +0100
@@ -49,8 +49,9 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_NWFPE=y
-CONFIG_BINFMT_AOUT=y
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_ARTHUR is not set
 CONFIG_PARPORT=y
diff -Naurp linux-2.2.26-vanilla/arch/i386/config.in linux-2.2.27-rc2/arch/i386/config.in
--- linux-2.2.26-vanilla/arch/i386/config.in	2001-11-02 17:39:05.000000000 +0100
+++ linux-2.2.27-rc2/arch/i386/config.in	2005-01-13 00:05:40.000000000 +0100
@@ -12,6 +12,15 @@ bool 'Prompt for development and/or inco
 endmenu
 
 mainmenu_option next_comment
+comment 'Loadable module support'
+bool 'Enable loadable module support' CONFIG_MODULES
+if [ "$CONFIG_MODULES" = "y" ]; then
+  bool 'Set version information on all symbols for modules' CONFIG_MODVERSIONS
+  bool 'Kernel module loader' CONFIG_KMOD
+fi
+endmenu
+
+mainmenu_option next_comment
 comment 'Processor type and features'
 choice 'Processor family' \
 	"386				CONFIG_M386	\
@@ -39,27 +48,18 @@ tristate '/dev/cpu/microcode - Intel IA3
 tristate '/dev/cpu/*/msr - Model-specific register support' CONFIG_X86_MSR
 tristate '/dev/cpu/*/cpuid - CPU information support' CONFIG_X86_CPUID
 
-choice 'Maximum Physical Memory' \
-	"1GB		CONFIG_1GB \
-	 2GB		CONFIG_2GB" 1GB
-
 bool 'Math emulation' CONFIG_MATH_EMULATION
 bool 'MTRR (Memory Type Range Register) support' CONFIG_MTRR
 bool 'Symmetric multi-processing support' CONFIG_SMP
 endmenu
 
 mainmenu_option next_comment
-comment 'Loadable module support'
-bool 'Enable loadable module support' CONFIG_MODULES
-if [ "$CONFIG_MODULES" = "y" ]; then
-  bool 'Set version information on all symbols for modules' CONFIG_MODVERSIONS
-  bool 'Kernel module loader' CONFIG_KMOD
-fi
-endmenu
-
-mainmenu_option next_comment
 comment 'General setup'
 
+choice 'Maximum Physical Memory' \
+	"1GB		CONFIG_1GB \
+	 2GB		CONFIG_2GB" 1GB
+
 bool 'Networking support' CONFIG_NET
 bool 'PCI support' CONFIG_PCI
 if [ "$CONFIG_PCI" = "y" ]; then
@@ -94,21 +94,22 @@ fi
 bool 'System V IPC' CONFIG_SYSVIPC
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
-tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
+
+mainmenu_option next_comment
+comment 'Executable file formats'
 tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
+if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
+  bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
+fi
+tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'Kernel support for JAVA binaries (obsolete)' CONFIG_BINFMT_JAVA
 fi
+endmenu
 
-tristate 'Parallel port support' CONFIG_PARPORT
-if [ "$CONFIG_PARPORT" != "n" ]; then
-  dep_tristate '   PC-style hardware' CONFIG_PARPORT_PC $CONFIG_PARPORT
-  if [ "$CONFIG_PARPORT_PC" != "n" ]; then
-    bool '   Support foreign hardware' CONFIG_PARPORT_OTHER
-  fi
-fi
-
+mainmenu_option next_comment
+comment 'Power Management support'
 bool 'Advanced Power Management BIOS support' CONFIG_APM
 if [ "$CONFIG_APM" != "n" ]; then
   bool '   Ignore USER SUSPEND' CONFIG_APM_IGNORE_USER_SUSPEND
@@ -119,10 +120,23 @@ if [ "$CONFIG_APM" != "n" ]; then
   bool '   Allow interrupts during APM BIOS calls' CONFIG_APM_ALLOW_INTS
   bool '   Use real mode APM BIOS call to power off' CONFIG_APM_REAL_MODE_POWER_OFF
 fi
+endmenu
+
 tristate 'Toshiba Laptop support' CONFIG_TOSHIBA
 
 endmenu
 
+mainmenu_option next_comment
+comment 'Parallel port support'
+tristate 'Parallel port support' CONFIG_PARPORT
+if [ "$CONFIG_PARPORT" != "n" ]; then
+  dep_tristate '  PC-style hardware' CONFIG_PARPORT_PC $CONFIG_PARPORT
+  if [ "$CONFIG_PARPORT_PC" != "n" ]; then
+    bool '    Support foreign hardware' CONFIG_PARPORT_OTHER
+  fi
+fi
+endmenu
+
 source drivers/pnp/Config.in
 
 source drivers/block/Config.in
@@ -131,20 +145,6 @@ if [ "$CONFIG_NET" = "y" ]; then
   source net/Config.in
 fi
 
-source drivers/telephony/Config.in
-
-mainmenu_option next_comment
-comment 'SCSI support'
-
-tristate 'SCSI support' CONFIG_SCSI
-
-if [ "$CONFIG_SCSI" != "n" ]; then
-  source drivers/scsi/Config.in
-fi
-endmenu
-
-source drivers/i2o/Config.in
-
 if [ "$CONFIG_NET" = "y" ]; then
   mainmenu_option next_comment
   comment 'Network device support'
@@ -156,6 +156,13 @@ if [ "$CONFIG_NET" = "y" ]; then
   endmenu
 fi
 
+source drivers/telephony/Config.in
+
+source drivers/scsi/Config.in
+
+
+source drivers/i2o/Config.in
+
 source net/ax25/Config.in
 
 source net/irda/Config.in
@@ -181,8 +188,6 @@ endmenu
 
 source drivers/char/Config.in
 
-source drivers/usb/Config.in
-
 source fs/Config.in
 
 if [ "$CONFIG_VT" = "y" ]; then
@@ -198,14 +203,9 @@ if [ "$CONFIG_VT" = "y" ]; then
   endmenu
 fi
 
-mainmenu_option next_comment
-comment 'Sound'
+source drivers/sound/Config.in
 
-tristate 'Sound card support' CONFIG_SOUND
-if [ "$CONFIG_SOUND" != "n" ]; then
-  source drivers/sound/Config.in
-fi
-endmenu
+source drivers/usb/Config.in
 
 mainmenu_option next_comment
 comment 'Kernel hacking'
diff -Naurp linux-2.2.26-vanilla/arch/i386/defconfig linux-2.2.27-rc2/arch/i386/defconfig
--- linux-2.2.26-vanilla/arch/i386/defconfig	2001-03-25 18:37:29.000000000 +0200
+++ linux-2.2.27-rc2/arch/i386/defconfig	2005-01-13 00:05:40.000000000 +0100
@@ -56,9 +56,10 @@ CONFIG_X86_LOCAL_APIC=y
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
-CONFIG_BINFMT_AOUT=y
 CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_MISC=y
+# CONFIG_BINFMT_ELF_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
 # CONFIG_PARPORT is not set
 # CONFIG_APM is not set
 # CONFIG_TOSHIBA is not set
diff -Naurp linux-2.2.26-vanilla/arch/i386/kernel/bluesmoke.c linux-2.2.27-rc2/arch/i386/kernel/bluesmoke.c
--- linux-2.2.26-vanilla/arch/i386/kernel/bluesmoke.c	2002-05-21 01:32:34.000000000 +0200
+++ linux-2.2.27-rc2/arch/i386/kernel/bluesmoke.c	2005-01-13 00:05:40.000000000 +0100
@@ -6,6 +6,8 @@
 #include <asm/processor.h> 
 #include <asm/msr.h>
 
+static int mce_disabled = 0;
+
 /*
  *	Machine Check Handler For PII/PIII
  */
@@ -129,6 +131,9 @@ void __init intel_mcheck_init(struct cpu
 	
 	if(c->x86 == 5)
 	{
+		/* Default P5 to off as its often misconnected */
+		if(mce_disabled != -1)
+			return;
 		machine_check_vector = pentium_machine_check;
 		wmb();
 		/* Read registers before enabling */
@@ -207,7 +212,6 @@ static void __init winchip_mcheck_init(s
  */
 
 
-static int mce_disabled = 0;
 
 void __init mcheck_init(struct cpuinfo_x86 *c)
 {
@@ -237,4 +241,12 @@ static int __init mcheck_disable(char *s
 	mce_disabled = 1;
 	return 0;
 }
+
+static int __init mcheck_enable(char *str)
+{
+	mce_disabled = -1;
+	return 0;
+}
+
 __setup("nomce", mcheck_disable);
+__setup("mce", mcheck_enable);
diff -Naurp linux-2.2.26-vanilla/arch/i386/kernel/smp.c linux-2.2.27-rc2/arch/i386/kernel/smp.c
--- linux-2.2.26-vanilla/arch/i386/kernel/smp.c	2001-03-25 18:37:29.000000000 +0200
+++ linux-2.2.27-rc2/arch/i386/kernel/smp.c	2005-01-13 00:05:40.000000000 +0100
@@ -737,12 +737,6 @@ void __init enable_local_APIC(void)
 {
 	unsigned long value;
 
- 	value = apic_read(APIC_SPIV);
- 	value |= (1<<8);		/* Enable APIC (bit==1) */
- 	value &= ~(1<<9);		/* Enable focus processor (bit==0) */
-	value |= 0xff;			/* Set spurious IRQ vector to 0xff */
- 	apic_write(APIC_SPIV,value);
-
 	/*
 	 * Set Task Priority to 'accept all'
 	 */
@@ -762,6 +756,12 @@ void __init enable_local_APIC(void)
 	value |= SET_APIC_DFR(0xf);
  	apic_write(APIC_DFR, value);
 
+	value = apic_read(APIC_SPIV);
+	value |= (1<<8);		/* Enable APIC (bit==1) */
+	value &= ~(1<<9);		/* Enable focus processor (bit==0) */
+	value |= 0xff;			/* Set spurious IRQ vector to 0xff */
+	apic_write(APIC_SPIV,value);
+
 	udelay(100);			/* B safe */
 }
 
@@ -810,7 +810,6 @@ unsigned long __init init_smp_mappings(u
 	return memory_start;
 }
 
-#ifdef CONFIG_X86_TSC
 /*
  * TSC synchronization.
  *
@@ -1010,8 +1009,6 @@ static void __init synchronize_tsc_ap (v
 }
 #undef NR_LOOPS
 
-#endif
-
 extern void calibrate_delay(void);
 
 void __init smp_callin(void)
@@ -1098,12 +1095,11 @@ void __init smp_callin(void)
 	 */
 	set_bit(cpuid, (unsigned long *)&cpu_callin_map[0]);
 
-#ifdef CONFIG_X86_TSC
 	/*
 	 *	Synchronize the TSC with the BP
 	 */
- 	synchronize_tsc_ap ();
-#endif
+	if (boot_cpu_data.x86_capability & X86_FEATURE_TSC)
+		synchronize_tsc_ap ();
 }
 
 int cpucount = 0;
@@ -1640,13 +1636,11 @@ void __init smp_boot_cpus(void)
 
 smp_done:
 
-#ifdef CONFIG_X86_TSC
 	/*
 	 * Synchronize the TSC with the AP
 	 */
-	if (cpucount)
+	if (boot_cpu_data.x86_capability & X86_FEATURE_TSC && cpucount)
 	 	synchronize_tsc_bp();
-#endif
 }
 
 /*
diff -Naurp linux-2.2.26-vanilla/arch/m68k/config.in linux-2.2.27-rc2/arch/m68k/config.in
--- linux-2.2.26-vanilla/arch/m68k/config.in	2001-03-25 18:31:50.000000000 +0200
+++ linux-2.2.27-rc2/arch/m68k/config.in	2005-01-13 00:05:40.000000000 +0100
@@ -82,9 +82,16 @@ bool 'Networking support' CONFIG_NET
 bool 'System V IPC' CONFIG_SYSVIPC
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
-tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
+
+mainmenu_option next_comment
+comment 'Executable file formats'
 tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
+if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
+  bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
+fi
+tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
+endmenu
 
 if [ "$CONFIG_AMIGA" = "y" ]; then
   bool 'Amiga Zorro (AutoConfig) bus support' CONFIG_ZORRO
@@ -439,6 +446,8 @@ fi
 
 endmenu
 
+source fs/Config.in
+
 mainmenu_option next_comment
 comment 'Sound support'
 
@@ -448,8 +457,6 @@ if [ "$CONFIG_SOUND" != "n" ]; then
 fi
 endmenu
 
-source fs/Config.in
-
 if [ "$CONFIG_VME" = "n" ]; then
   mainmenu_option next_comment
   comment 'Console drivers'
diff -Naurp linux-2.2.26-vanilla/arch/m68k/defconfig linux-2.2.27-rc2/arch/m68k/defconfig
--- linux-2.2.26-vanilla/arch/m68k/defconfig	2001-03-25 18:31:50.000000000 +0200
+++ linux-2.2.27-rc2/arch/m68k/defconfig	2005-01-13 00:05:40.000000000 +0100
@@ -38,8 +38,9 @@ CONFIG_M68040=y
 CONFIG_NET=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSCTL=y
-CONFIG_BINFMT_AOUT=y
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
 CONFIG_ZORRO=y
 # CONFIG_AMIGA_GSP is not set
 # CONFIG_GSP_RESOLVER is not set
diff -Naurp linux-2.2.26-vanilla/arch/mips/config.in linux-2.2.27-rc2/arch/mips/config.in
--- linux-2.2.26-vanilla/arch/mips/config.in	2001-03-25 18:31:47.000000000 +0200
+++ linux-2.2.27-rc2/arch/mips/config.in	2005-01-13 00:05:40.000000000 +0100
@@ -10,6 +10,15 @@ bool 'Prompt for development and/or inco
 endmenu
 
 mainmenu_option next_comment
+comment 'Loadable module support'
+bool 'Enable loadable module support' CONFIG_MODULES
+if [ "$CONFIG_MODULES" = "y" ]; then
+  bool 'Set version information on all symbols for modules' CONFIG_MODVERSIONS
+  bool 'Kernel module loader' CONFIG_KMOD
+fi
+endmenu
+
+mainmenu_option next_comment
 comment 'Machine selection'
 bool 'Support for Acer PICA 1 chipset' CONFIG_ACER_PICA_61
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
@@ -77,18 +86,25 @@ else
   bool 'Generate little endian code' CONFIG_CPU_LITTLE_ENDIAN
 fi
 
-define_bool CONFIG_ELF_KERNEL y
 
 if [ "$CONFIG_CPU_LITTLE_ENDIAN" = "n" ]; then
   define_bool CONFIG_BINFMT_IRIX y
   define_bool CONFIG_FORWARD_KEYBOARD y
 fi
-define_bool CONFIG_BINFMT_AOUT n
-define_bool CONFIG_BINFMT_ELF y
+
+mainmenu_option next_comment
+comment 'Executable file formats'
+define_bool CONFIG_ELF_KERNEL y
+tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
+if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
+  bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
+fi
+tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'Kernel support for JAVA binaries (obsolete)' CONFIG_BINFMT_JAVA
 fi
+endmenu
 
 bool 'Networking support' CONFIG_NET
 bool 'System V IPC' CONFIG_SYSVIPC
@@ -100,20 +116,10 @@ if [ "$CONFIG_SGI" != "y" -a "$CONFIG_DE
 fi
 endmenu
 
-mainmenu_option next_comment
-comment 'Loadable module support'
-bool 'Enable loadable module support' CONFIG_MODULES
-if [ "$CONFIG_MODULES" = "y" ]; then
-  bool 'Set version information on all symbols for modules' CONFIG_MODVERSIONS
-  bool 'Kernel module loader' CONFIG_KMOD
-fi
-
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   bool 'Support for frame buffer devices (EXPERIMENTAL)' CONFIG_FB
 fi
 
-endmenu
-
 if [ "$CONFIG_DECSTATION" = "y" ]; then
 	mainmenu_option next_comment
 	comment 'TURBOchannel support'
@@ -257,10 +263,10 @@ else
   endmenu
 fi
 
-# source drivers/usb/Config.in
-
 source fs/Config.in
 
+# source drivers/usb/Config.in
+
 if [ "$CONFIG_VT" = "y" ]; then
   mainmenu_option next_comment
   comment 'Console drivers'
@@ -280,14 +286,7 @@ if [ "$CONFIG_VT" = "y" ]; then
 fi
 
 if [ "$CONFIG_DECSTATION" != "y" ]; then
-  mainmenu_option next_comment
-  comment 'Sound'
-
-  tristate 'Sound card support' CONFIG_SOUND
-  if [ "$CONFIG_SOUND" != "n" ]; then
   source drivers/sound/Config.in
-  fi
-  endmenu
 fi
 
 if [ "$CONFIG_SGI" = "y" ]; then
diff -Naurp linux-2.2.26-vanilla/arch/mips/defconfig linux-2.2.27-rc2/arch/mips/defconfig
--- linux-2.2.26-vanilla/arch/mips/defconfig	2001-03-25 18:31:48.000000000 +0200
+++ linux-2.2.27-rc2/arch/mips/defconfig	2005-01-13 00:05:40.000000000 +0100
@@ -36,8 +36,9 @@ CONFIG_PCI_QUIRKS=y
 CONFIG_PCI_OLD_PROC=y
 CONFIG_CPU_LITTLE_ENDIAN=y
 CONFIG_ELF_KERNEL=y
-# CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 CONFIG_NET=y
 CONFIG_SYSVIPC=y
diff -Naurp linux-2.2.26-vanilla/arch/mips/kernel/irixelf.c linux-2.2.27-rc2/arch/mips/kernel/irixelf.c
--- linux-2.2.26-vanilla/arch/mips/kernel/irixelf.c	2001-11-02 17:39:05.000000000 +0100
+++ linux-2.2.27-rc2/arch/mips/kernel/irixelf.c	2005-01-13 00:05:40.000000000 +0100
@@ -9,6 +9,7 @@
  * Copyright 1993, 1994: Eric Youngdale (ericy@cais.com).
  */
 
+#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/fs.h>
@@ -50,7 +51,9 @@ extern int dump_fpu (elf_fpregset_t *);
 static struct linux_binfmt irix_format = {
 	module:		THIS_MODULE,
 	load_binary:	load_irix_binary,
+#ifdef CONFIG_BINFMT_ELF_AOUT
 	load_shlib:	load_irix_library,
+#endif
 	core_dump:	irix_core_dump,
 	min_coredump:	PAGE_SIZE,
 };
@@ -817,6 +820,7 @@ out_phdata:
 	return retval;
 }
 
+#ifdef CONFIG_BINFMT_ELF_AOUT
 /* This is really simpleminded and specialized - we are loading an
  * a.out library that is given an ELF header.
  */
@@ -915,6 +919,7 @@ static int load_irix_library(struct file
 	kfree(elf_phdata);
 	return 0;
 }
+#endif
 
 /* Called through irix_syssgi() to map an elf image given an FD,
  * a phdr ptr USER_PHDRP in userspace, and a count CNT telling how many
diff -Naurp linux-2.2.26-vanilla/arch/ppc/config.in linux-2.2.27-rc2/arch/ppc/config.in
--- linux-2.2.26-vanilla/arch/ppc/config.in	2001-11-02 17:39:05.000000000 +0100
+++ linux-2.2.27-rc2/arch/ppc/config.in	2005-01-13 00:05:40.000000000 +0100
@@ -67,16 +67,22 @@ bool 'System V IPC' CONFIG_SYSVIPC
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 
 # only elf supported, a.out is not -- Cort
-define_bool CONFIG_BINFMT_ELF y
+mainmenu_option next_comment
+comment 'Executable file formats'
 define_bool CONFIG_KERNEL_ELF y
+tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
+if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
+  bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
+fi
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
 tristate 'Kernel support for JAVA binaries (obsolete)' CONFIG_BINFMT_JAVA
+endmenu
 
 tristate 'Parallel port support' CONFIG_PARPORT
 if [ "$CONFIG_PARPORT" != "n" ]; then
-  dep_tristate '   PC-style hardware' CONFIG_PARPORT_PC $CONFIG_PARPORT
+  dep_tristate '  PC-style hardware' CONFIG_PARPORT_PC $CONFIG_PARPORT
   if [ "$CONFIG_PARPORT_PC" != "n" ]; then
-    bool '   Support foreign hardware' CONFIG_PARPORT_OTHER
+    bool '    Support foreign hardware' CONFIG_PARPORT_OTHER
   fi
 fi
 
@@ -125,13 +131,7 @@ if [ "$CONFIG_NET" = "y" ]; then
   source net/Config.in
 fi
 
-mainmenu_option next_comment
-comment 'SCSI support'
-tristate 'SCSI support' CONFIG_SCSI
-if [ "$CONFIG_SCSI" != "n" ]; then
-  source drivers/scsi/Config.in
-fi
-endmenu
+source drivers/scsi/Config.in
 
 if [ "$CONFIG_NET" = "y" ]; then
   mainmenu_option next_comment
@@ -174,6 +174,9 @@ source drivers/video/Config.in
 endmenu
 
 source drivers/char/Config.in
+
+source fs/Config.in
+
 source drivers/usb/Config.in
 
 mainmenu_option next_comment
@@ -208,8 +211,6 @@ fi
 
 endmenu
 
-source fs/Config.in
-
 mainmenu_option next_comment
 comment 'Kernel hacking'
 
diff -Naurp linux-2.2.26-vanilla/arch/ppc/defconfig linux-2.2.27-rc2/arch/ppc/defconfig
--- linux-2.2.26-vanilla/arch/ppc/defconfig	2001-03-25 18:31:49.000000000 +0200
+++ linux-2.2.27-rc2/arch/ppc/defconfig	2005-01-13 00:05:40.000000000 +0100
@@ -33,9 +33,10 @@ CONFIG_NET=y
 CONFIG_SYSCTL=y
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_BINFMT_ELF=y
 CONFIG_KERNEL_ELF=y
-CONFIG_BINFMT_MISC=m
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
 # CONFIG_BINFMT_JAVA is not set
 CONFIG_PARPORT=m
 # CONFIG_PARPORT_PC is not set
diff -Naurp linux-2.2.26-vanilla/arch/s390/config.in linux-2.2.27-rc2/arch/s390/config.in
--- linux-2.2.26-vanilla/arch/s390/config.in	2001-03-25 18:37:30.000000000 +0200
+++ linux-2.2.27-rc2/arch/s390/config.in	2005-01-13 00:05:40.000000000 +0100
@@ -12,12 +12,6 @@ bool 'Show crashed user process info' CO
 endmenu
 
 mainmenu_option next_comment
-comment 'Processor type and features'
-bool 'Symmetric multi-processing support' CONFIG_SMP
-bool 'IEEE FPU emulation' CONFIG_IEEEFPU_EMULATION
-endmenu
-
-mainmenu_option next_comment
 comment 'Loadable module support'
 bool 'Enable loadable module support' CONFIG_MODULES
 if [ "$CONFIG_MODULES" = "y" ]; then
@@ -27,6 +21,12 @@ fi
 endmenu
 
 mainmenu_option next_comment
+comment 'Processor type and features'
+bool 'Symmetric multi-processing support' CONFIG_SMP
+bool 'IEEE FPU emulation' CONFIG_IEEEFPU_EMULATION
+endmenu
+
+mainmenu_option next_comment
 comment 'General setup'
 bool 'Fast IRQ handling' CONFIG_FAST_IRQ
 bool 'Builtin IPL record support' CONFIG_IPL
@@ -39,7 +39,14 @@ bool 'Networking support' CONFIG_NET
 bool 'System V IPC' CONFIG_SYSVIPC
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
+
+mainmenu_option next_comment
+comment 'Executable file formats'
 tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
+if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
+  bool '   ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
+fi
+endmenu
 
 endmenu
 
diff -Naurp linux-2.2.26-vanilla/arch/s390/defconfig linux-2.2.27-rc2/arch/s390/defconfig
--- linux-2.2.26-vanilla/arch/s390/defconfig	2002-05-21 01:32:34.000000000 +0200
+++ linux-2.2.27-rc2/arch/s390/defconfig	2005-01-13 00:05:40.000000000 +0100
@@ -34,6 +34,7 @@ CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
 
 #
 # S/390 block device drivers
diff -Naurp linux-2.2.26-vanilla/arch/sparc/config.in linux-2.2.27-rc2/arch/sparc/config.in
--- linux-2.2.26-vanilla/arch/sparc/config.in	2002-09-16 18:26:11.000000000 +0200
+++ linux-2.2.27-rc2/arch/sparc/config.in	2005-01-13 00:05:40.000000000 +0100
@@ -72,14 +72,21 @@ bool 'Networking support' CONFIG_NET
 bool 'System V IPC' CONFIG_SYSVIPC
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
-tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
+
+mainmenu_option next_comment
+comment 'Executable file formats'
 tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
+if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
+  bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
+fi
+tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'Kernel support for JAVA binaries (obsolete)' CONFIG_BINFMT_JAVA
 fi
 bool 'SunOS binary emulation' CONFIG_SUNOS_EMUL
 endmenu
+endmenu
 
 mainmenu_option next_comment
 comment 'Floppy, IDE, and other block devices'
diff -Naurp linux-2.2.26-vanilla/arch/sparc/defconfig linux-2.2.27-rc2/arch/sparc/defconfig
--- linux-2.2.26-vanilla/arch/sparc/defconfig	2001-03-25 18:37:30.000000000 +0200
+++ linux-2.2.27-rc2/arch/sparc/defconfig	2005-01-13 00:05:40.000000000 +0100
@@ -78,9 +78,10 @@ CONFIG_NET=y
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
-CONFIG_BINFMT_AOUT=y
 CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_MISC=m
+# CONFIG_BINFMT_ELF_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
 CONFIG_BINFMT_JAVA=m
 CONFIG_SUNOS_EMUL=y
 
diff -Naurp linux-2.2.26-vanilla/arch/sparc64/config.in linux-2.2.27-rc2/arch/sparc64/config.in
--- linux-2.2.26-vanilla/arch/sparc64/config.in	2002-05-21 01:32:34.000000000 +0200
+++ linux-2.2.27-rc2/arch/sparc64/config.in	2005-01-13 00:05:40.000000000 +0100
@@ -60,11 +60,18 @@ bool 'Networking support' CONFIG_NET
 bool 'System V IPC' CONFIG_SYSVIPC
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
-bool 'Kernel support for Linux/Sparc 32bit binary compatibility' CONFIG_SPARC32_COMPAT
+
+mainmenu_option next_comment
+comment 'Executable file formats'
+
 tristate 'Kernel support for 64-bit ELF binaries' CONFIG_BINFMT_ELF
+if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
+  bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
+fi
+bool 'Kernel support for Linux/Sparc 32bit binary compatibility' CONFIG_SPARC32_COMPAT
 if [ "$CONFIG_SPARC32_COMPAT" != "n" ]; then
-  tristate 'Kernel support for 32-bit ELF binaries' CONFIG_BINFMT_ELF32
-  bool 'Kernel support for 32-bit (ie. SunOS) a.out binaries' CONFIG_BINFMT_AOUT32
+  tristate '  Kernel support for 32-bit ELF binaries' CONFIG_BINFMT_ELF32
+  bool '  Kernel support for 32-bit (ie. SunOS) a.out binaries' CONFIG_BINFMT_AOUT32
 fi
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
@@ -74,6 +81,7 @@ bool 'SunOS binary emulation' CONFIG_SUN
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'Solaris binary emulation' CONFIG_SOLARIS_EMUL
 fi
+endmenu
 
 if [ "$CONFIG_PCI" = "y" ]; then
   tristate 'Parallel port support' CONFIG_PARPORT
diff -Naurp linux-2.2.26-vanilla/arch/sparc64/defconfig linux-2.2.27-rc2/arch/sparc64/defconfig
--- linux-2.2.26-vanilla/arch/sparc64/defconfig	2001-03-25 18:37:30.000000000 +0200
+++ linux-2.2.27-rc2/arch/sparc64/defconfig	2005-01-13 00:05:40.000000000 +0100
@@ -86,10 +86,11 @@ CONFIG_SYSVIPC=y
 CONFIG_SYSCTL=y
 CONFIG_SPARC32_COMPAT=y
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
 CONFIG_BINFMT_ELF32=y
 # CONFIG_BINFMT_AOUT32 is not set
-CONFIG_BINFMT_MISC=m
-CONFIG_BINFMT_JAVA=m
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_BINFMT_JAVA is not set
 # CONFIG_SUNOS_EMUL is not set
 CONFIG_SOLARIS_EMUL=m
 CONFIG_PARPORT=m
diff -Naurp linux-2.2.26-vanilla/arch/sparc64/kernel/sys_sparc32.c linux-2.2.27-rc2/arch/sparc64/kernel/sys_sparc32.c
--- linux-2.2.26-vanilla/arch/sparc64/kernel/sys_sparc32.c	2001-11-02 17:39:06.000000000 +0100
+++ linux-2.2.27-rc2/arch/sparc64/kernel/sys_sparc32.c	2005-01-13 00:06:21.000000000 +0100
@@ -2183,6 +2183,11 @@ struct cmsghdr32 {
 				    (struct cmsghdr32 *)(ctl) : \
 				    (struct cmsghdr32 *)NULL)
 #define CMSG32_FIRSTHDR(msg)	__CMSG32_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)
+#define CMSG32_OK(ucmlen, ucmsg, mhdr) \
+	((ucmlen) >= sizeof(struct cmsghdr32) && \
+	 (ucmlen) <= (unsigned long) \
+	 ((mhdr)->msg_controllen - \
+	  ((char *)(ucmsg) - (char *)(mhdr)->msg_control)))
 
 __inline__ struct cmsghdr32 *__cmsg32_nxthdr(void *__ctl, __kernel_size_t __size,
 					      struct cmsghdr32 *__cmsg, int __cmsg_len)
@@ -2309,11 +2314,7 @@ static int cmsghdr_from_user32_to_kern(s
 			return -EFAULT;
 
 		/* Catch bogons. */
-		if(CMSG32_ALIGN(ucmlen) <
-		   CMSG32_ALIGN(sizeof(struct cmsghdr32)))
-			return -EINVAL;
-		if((unsigned long)(((char *)ucmsg - (char *)kmsg->msg_control)
-				   + ucmlen) > kmsg->msg_controllen)
+		if (!CMSG32_OK(ucmlen, ucmsg, kmsg))
 			return -EINVAL;
 
 		tmp = ((ucmlen - CMSG32_ALIGN(sizeof(*ucmsg))) +
diff -Naurp linux-2.2.26-vanilla/drivers/acorn/scsi/Config.in linux-2.2.27-rc2/drivers/acorn/scsi/Config.in
--- linux-2.2.26-vanilla/drivers/acorn/scsi/Config.in	2001-03-25 18:31:42.000000000 +0200
+++ linux-2.2.27-rc2/drivers/acorn/scsi/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -1,23 +1,23 @@
 #
 # SCSI driver configuration for Acorn
 #
-dep_tristate 'Acorn SCSI card (aka30) support' CONFIG_SCSI_ACORNSCSI_3 $CONFIG_SCSI
+dep_tristate '  Acorn SCSI card (aka30) support' CONFIG_SCSI_ACORNSCSI_3 $CONFIG_SCSI
 if [ "$CONFIG_SCSI_ACORNSCSI_3" != "n" ]; then
-  bool '  Support SCSI 2 Tagged queueing' CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
-  bool '  Support SCSI 2 Synchronous Transfers' CONFIG_SCSI_ACORNSCSI_SYNC
+  bool '    Support SCSI 2 Tagged queueing' CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE
+  bool '    Support SCSI 2 Synchronous Transfers' CONFIG_SCSI_ACORNSCSI_SYNC
 fi
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-  dep_tristate 'ARXE SCSI support (Experimental)' CONFIG_SCSI_ARXESCSI $CONFIG_SCSI
-  dep_tristate 'CumanaSCSI II support (Experimental)' CONFIG_SCSI_CUMANA_2 $CONFIG_SCSI
-  dep_tristate 'EESOX support (Experimental)' CONFIG_SCSI_EESOXSCSI $CONFIG_SCSI
-  dep_tristate 'PowerTec support (Experimental)' CONFIG_SCSI_POWERTECSCSI $CONFIG_SCSI
+  dep_tristate '  ARXE SCSI support (Experimental)' CONFIG_SCSI_ARXESCSI $CONFIG_SCSI
+  dep_tristate '  CumanaSCSI II support (Experimental)' CONFIG_SCSI_CUMANA_2 $CONFIG_SCSI
+  dep_tristate '  EESOX support (Experimental)' CONFIG_SCSI_EESOXSCSI $CONFIG_SCSI
+  dep_tristate '  PowerTec support (Experimental)' CONFIG_SCSI_POWERTECSCSI $CONFIG_SCSI
 
-  comment 'The following drivers are not fully supported'
+  comment '  The following drivers are not fully supported'
 
-  dep_tristate 'CumanaSCSI I support' CONFIG_SCSI_CUMANA_1 $CONFIG_SCSI
+  dep_tristate '  CumanaSCSI I support' CONFIG_SCSI_CUMANA_1 $CONFIG_SCSI
   if [ "$CONFIG_ARCH_ARC" = "y" -o "$CONFIG_ARCH_A5K" = "y" ]; then
-    dep_tristate 'EcoScsi support' CONFIG_SCSI_ECOSCSI $CONFIG_SCSI
+    dep_tristate '  EcoScsi support' CONFIG_SCSI_ECOSCSI $CONFIG_SCSI
   fi
-  dep_tristate 'Oak SCSI support' CONFIG_SCSI_OAK1 $CONFIG_SCSI
+  dep_tristate '  Oak SCSI support' CONFIG_SCSI_OAK1 $CONFIG_SCSI
 fi
 
diff -Naurp linux-2.2.26-vanilla/drivers/cdrom/Config.in linux-2.2.27-rc2/drivers/cdrom/Config.in
--- linux-2.2.26-vanilla/drivers/cdrom/Config.in	2001-03-25 18:31:37.000000000 +0200
+++ linux-2.2.27-rc2/drivers/cdrom/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -1,27 +1,27 @@
 #
 # CDROM driver configuration
 #
-tristate 'Aztech/Orchid/Okano/Wearnes/TXC/CyDROM  CDROM support' CONFIG_AZTCD
-tristate 'Goldstar R420 CDROM support' CONFIG_GSCD
-tristate 'Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support' CONFIG_SBPCD
+tristate '  Aztech/Orchid/Okano/Wearnes/TXC/CyDROM  CDROM support' CONFIG_AZTCD
+tristate '  Goldstar R420 CDROM support' CONFIG_GSCD
+tristate '  Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support' CONFIG_SBPCD
 if [ "$CONFIG_SBPCD" = "y" ]; then
-  bool 'Matsushita/Panasonic, ... second CDROM controller support' CONFIG_SBPCD2
+  bool '    Matsushita/Panasonic, ... second CDROM controller support' CONFIG_SBPCD2
   if [ "$CONFIG_SBPCD2" = "y" ]; then
-    bool 'Matsushita/Panasonic, ... third CDROM controller support' CONFIG_SBPCD3
+    bool '      Matsushita/Panasonic, ... third CDROM controller support' CONFIG_SBPCD3
     if [ "$CONFIG_SBPCD3" = "y" ]; then
-      bool 'Matsushita/Panasonic, ... fourth CDROM controller support' CONFIG_SBPCD4
+      bool '        Matsushita/Panasonic, ... fourth CDROM controller support' CONFIG_SBPCD4
     fi
   fi
 fi
-tristate 'Mitsumi (standard) [no XA/Multisession] CDROM support' CONFIG_MCD
+tristate '  Mitsumi (standard) [no XA/Multisession] CDROM support' CONFIG_MCD
 if [ "$CONFIG_MCD" != "n" ]; then
    int 'MCD IRQ' CONFIG_MCD_IRQ 11
    hex 'MCD I/O base' CONFIG_MCD_BASE 300
 fi
-tristate 'Mitsumi [XA/MultiSession] CDROM support' CONFIG_MCDX
-tristate 'Optics Storage DOLPHIN 8000AT CDROM support' CONFIG_OPTCD
-tristate 'Philips/LMS CM206 CDROM support' CONFIG_CM206
-tristate 'Sanyo CDR-H94A CDROM support' CONFIG_SJCD
-tristate 'ISP16/MAD16/Mozart soft configurable cdrom interface support' CONFIG_ISP16_CDI
-tristate 'Sony CDU31A/CDU33A CDROM support' CONFIG_CDU31A
-tristate 'Sony CDU535 CDROM support' CONFIG_CDU535
+tristate '  Mitsumi [XA/MultiSession] CDROM support' CONFIG_MCDX
+tristate '  Optics Storage DOLPHIN 8000AT CDROM support' CONFIG_OPTCD
+tristate '  Philips/LMS CM206 CDROM support' CONFIG_CM206
+tristate '  Sanyo CDR-H94A CDROM support' CONFIG_SJCD
+tristate '  ISP16/MAD16/Mozart soft configurable cdrom interface support' CONFIG_ISP16_CDI
+tristate '  Sony CDU31A/CDU33A CDROM support' CONFIG_CDU31A
+tristate '  Sony CDU535 CDROM support' CONFIG_CDU535
diff -Naurp linux-2.2.26-vanilla/drivers/char/Config.in linux-2.2.27-rc2/drivers/char/Config.in
--- linux-2.2.26-vanilla/drivers/char/Config.in	2001-11-02 17:39:06.000000000 +0100
+++ linux-2.2.27-rc2/drivers/char/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -12,50 +12,58 @@ tristate 'Standard/generic (dumb) serial
 if [ "$CONFIG_SERIAL" = "y" ]; then
    bool '   Support for console on serial port' CONFIG_SERIAL_CONSOLE
 fi
+
+mainmenu_option next_comment
+comment 'Extended dumb serial driver options'
 bool 'Extended dumb serial driver options' CONFIG_SERIAL_EXTENDED
 if [ "$CONFIG_SERIAL_EXTENDED" = "y" ]; then
-   bool '   Support more than 4 serial ports' CONFIG_SERIAL_MANY_PORTS
-   bool '   Support for sharing serial interrupts' CONFIG_SERIAL_SHARE_IRQ
-   bool '   Autodetect IRQ on standard ports (unsafe)' CONFIG_SERIAL_DETECT_IRQ
-   bool '   Support special multiport boards' CONFIG_SERIAL_MULTIPORT
-   bool '   Support the Bell Technologies HUB6 card' CONFIG_HUB6
+   bool '  Support more than 4 serial ports' CONFIG_SERIAL_MANY_PORTS
+   bool '  Support for sharing serial interrupts' CONFIG_SERIAL_SHARE_IRQ
+   bool '  Autodetect IRQ on standard ports (unsafe)' CONFIG_SERIAL_DETECT_IRQ
+   bool '  Support special multiport boards' CONFIG_SERIAL_MULTIPORT
+   bool '  Support the Bell Technologies HUB6 card' CONFIG_HUB6
 fi
+endmenu
+
+mainmenu_option next_comment
+comment 'Non-standard serial port support'
 bool 'Non-standard serial port support' CONFIG_SERIAL_NONSTANDARD
 if [ "$CONFIG_SERIAL_NONSTANDARD" = "y" ]; then
-   tristate 'Computone IntelliPort Plus serial support' CONFIG_COMPUTONE
-   tristate 'Comtrol Rocketport support' CONFIG_ROCKETPORT
-   tristate 'Cyclades async mux support' CONFIG_CYCLADES
+   tristate '  Computone IntelliPort Plus serial support' CONFIG_COMPUTONE
+   tristate '  Comtrol Rocketport support' CONFIG_ROCKETPORT
+   tristate '  Cyclades async mux support' CONFIG_CYCLADES
    if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_CYCLADES" != "n" ]; then
-      bool '  Cyclades-Z interrupt mode operation (EXPERIMENTAL)' CONFIG_CYZ_INTR
+      bool '    Cyclades-Z interrupt mode operation (EXPERIMENTAL)' CONFIG_CYZ_INTR
    fi
-   tristate 'Digiboard Intelligent Async Support' CONFIG_DIGIEPCA
+   tristate '  Digiboard Intelligent Async Support' CONFIG_DIGIEPCA
    if [ "$CONFIG_DIGIEPCA" = "n" ]; then
-      tristate 'Digiboard PC/Xx Support' CONFIG_DIGI
+      tristate '  Digiboard PC/Xx Support' CONFIG_DIGI
    fi
-   tristate 'Hayes ESP serial port support' CONFIG_ESPSERIAL
-   tristate 'Moxa Intellio support' CONFIG_MOXA_INTELLIO
-   tristate 'Moxa SmartIO support' CONFIG_MOXA_SMARTIO
+   tristate '  Hayes ESP serial port support' CONFIG_ESPSERIAL
+   tristate '  Moxa Intellio support' CONFIG_MOXA_INTELLIO
+   tristate '  Moxa SmartIO support' CONFIG_MOXA_SMARTIO
    if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-	dep_tristate 'Multi-Tech multiport card support' CONFIG_ISI m
+	dep_tristate '  Multi-Tech multiport card support' CONFIG_ISI m
    fi
-   tristate 'SDL RISCom/8 card support' CONFIG_RISCOM8
-   tristate 'Specialix IO8+ card support' CONFIG_SPECIALIX
+   tristate '  SDL RISCom/8 card support' CONFIG_RISCOM8
+   tristate '  Specialix IO8+ card support' CONFIG_SPECIALIX
    if [ "$CONFIG_SPECIALIX" != "n" ]; then
-     bool 'Specialix DTR/RTS pin is RTS' CONFIG_SPECIALIX_RTSCTS
+     bool '    Specialix DTR/RTS pin is RTS' CONFIG_SPECIALIX_RTSCTS
    fi 
-   tristate 'Specialix SX (and SI) card support' CONFIG_SX
-   tristate 'Specialix RIO system support' CONFIG_RIO
+   tristate '  Specialix SX (and SI) card support' CONFIG_SX
+   tristate '  Specialix RIO system support' CONFIG_RIO
    if [ "$CONFIG_RIO" != "n" ]; then
-     bool 'Support really old RIO/PCI cards' CONFIG_RIO_OLDPCI
+     bool '    Support really old RIO/PCI cards' CONFIG_RIO_OLDPCI
    fi
-   bool 'Stallion multiport serial support' CONFIG_STALDRV
+   bool '  Stallion multiport serial support' CONFIG_STALDRV
    if [ "$CONFIG_STALDRV" = "y" ]; then
-     tristate '  Stallion EasyIO or EC8/32 support' CONFIG_STALLION
-     tristate '  Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION
+     tristate '    Stallion EasyIO or EC8/32 support' CONFIG_STALLION
+     tristate '    Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION
    fi
-   tristate 'Microgate SyncLink card support' CONFIG_SYNCLINK
-   tristate 'HDLC line discipline support' CONFIG_N_HDLC
+   tristate '  Microgate SyncLink card support' CONFIG_SYNCLINK
+   tristate '  HDLC line discipline support' CONFIG_N_HDLC
 fi
+endmenu
 bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
 if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
 	int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
@@ -66,19 +74,19 @@ if [ "$CONFIG_PARPORT" = "y" -o "$CONFIG
     bool '  Support IEEE1284 status readback' CONFIG_PRINTER_READBACK
   fi
 fi
-     
+
+mainmenu_option next_comment
+comment 'Mice'
 bool 'Mouse Support (not serial mice)' CONFIG_MOUSE
 if [ "$CONFIG_MOUSE" = "y" ]; then
-	mainmenu_option next_comment
-	comment 'Mice'
-	tristate 'ATIXL busmouse support' CONFIG_ATIXL_BUSMOUSE
-	tristate 'Logitech busmouse support' CONFIG_BUSMOUSE
-	tristate 'Microsoft busmouse support' CONFIG_MS_BUSMOUSE
-	bool 'PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
-	tristate 'C&T 82C710 mouse port support (as on TI Travelmate)' CONFIG_82C710_MOUSE
-	tristate 'PC110 digitizer pad support' CONFIG_PC110_PAD
-	endmenu
+   tristate '  ATIXL busmouse support' CONFIG_ATIXL_BUSMOUSE
+   tristate '  Logitech busmouse support' CONFIG_BUSMOUSE
+   tristate '  Microsoft busmouse support' CONFIG_MS_BUSMOUSE
+   bool '  PS/2 mouse (aka "auxiliary device") support' CONFIG_PSMOUSE
+   tristate '  C&T 82C710 mouse port support (as on TI Travelmate)' CONFIG_82C710_MOUSE
+   tristate '  PC110 digitizer pad support' CONFIG_PC110_PAD
 fi
+endmenu
 
 source drivers/char/joystick/Config.in
 
@@ -94,29 +102,29 @@ if [ "$CONFIG_QIC02_TAPE" != "n" ]; then
   fi
 fi
 
+mainmenu_option next_comment
+comment 'Watchdog Cards'
 bool 'Watchdog Timer Support'	CONFIG_WATCHDOG
 if [ "$CONFIG_WATCHDOG" != "n" ]; then
-  mainmenu_option next_comment
-  comment 'Watchdog Cards'
-  bool '   Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT
-  tristate '   Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT
-  tristate '   Advantech SBC Watchdog Timer' CONFIG_ADVANTECH_WDT
-  tristate '   Berkshire Products PC Watchdog' CONFIG_PCWATCHDOG
-  tristate '   Intel i810 TCO timer / Watchdog' CONFIG_I810_TCO
-  tristate '   Mixcom Watchdog' CONFIG_MIXCOMWD 
-  tristate '   SBC-60XX Watchdog Timer' CONFIG_60XX_WDT
-  tristate '   Software Watchdog' CONFIG_SOFT_WATCHDOG
-  tristate '   WDT ISA Watchdog timer' CONFIG_WDT
+  bool '  Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT
+  tristate '  Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT
+  tristate '  Advantech SBC Watchdog Timer' CONFIG_ADVANTECH_WDT
+  tristate '  Berkshire Products PC Watchdog' CONFIG_PCWATCHDOG
+  tristate '  Intel i810 TCO timer / Watchdog' CONFIG_I810_TCO
+  tristate '  Mixcom Watchdog' CONFIG_MIXCOMWD 
+  tristate '  SBC-60XX Watchdog Timer' CONFIG_60XX_WDT
+  tristate '  Software Watchdog' CONFIG_SOFT_WATCHDOG
+  tristate '  WDT ISA Watchdog timer' CONFIG_WDT
   if [ "$CONFIG_WDT" != "n" ]; then
-     bool '       WDT501 features' CONFIG_WDT_501
+     bool '    WDT501 features' CONFIG_WDT_501
      if [ "$CONFIG_WDT_501" = "y" ]; then
-         bool '       Fan Tachometer' CONFIG_WDT_501_FAN
+         bool '      Fan Tachometer' CONFIG_WDT_501_FAN
      fi
   fi
-  tristate '   WDT PCI Watchdog timer' CONFIG_WDTPCI
-  tristate '   ZF MachZ Watchdog' CONFIG_MACHZ_WDT
-  endmenu
+  tristate '  WDT PCI Watchdog timer' CONFIG_WDTPCI
+  tristate '  ZF MachZ Watchdog' CONFIG_MACHZ_WDT
 fi
+endmenu
 
 
 tristate '/dev/nvram support' CONFIG_NVRAM
@@ -129,6 +137,8 @@ if [ "$CONFIG_PCI" = "y" ]; then
 fi
 
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+   mainmenu_option next_comment
+   comment 'AGP support (/dev/agpgart)'
    tristate '/dev/agpgart (AGP Support) (EXPERIMENTAL)' CONFIG_AGP
    if [ "$CONFIG_AGP" != "n" ]; then
       bool '   Intel 440LX/BX/GX and I815/820 support' CONFIG_AGP_INTEL
@@ -139,6 +149,7 @@ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; the
       bool '   ALI M1541 support' CONFIG_AGP_ALI
       bool '   Serverworks LE/HE support' CONFIG_AGP_SWORKS
    fi
+   endmenu
    source drivers/char/drm/Config.in
 fi
       
@@ -147,80 +158,80 @@ comment 'Video For Linux'
 
 tristate 'Video For Linux' CONFIG_VIDEO_DEV
 if [ "$CONFIG_VIDEO_DEV" != "n" ]; then
-  dep_tristate 'AIMSlab RadioTrack (aka RadioReveal) support' CONFIG_RADIO_RTRACK $CONFIG_VIDEO_DEV
+  dep_tristate '  AIMSlab RadioTrack (aka RadioReveal) support' CONFIG_RADIO_RTRACK $CONFIG_VIDEO_DEV
   if [ "$CONFIG_RADIO_RTRACK" = "y" ]; then
-    hex '  RadioTrack i/o port (0x20f or 0x30f)' CONFIG_RADIO_RTRACK_PORT 20f
+    hex '    RadioTrack i/o port (0x20f or 0x30f)' CONFIG_RADIO_RTRACK_PORT 20f
   fi
-  dep_tristate 'AIMSlab RadioTrack II support' CONFIG_RADIO_RTRACK2 $CONFIG_VIDEO_DEV
+  dep_tristate '  AIMSlab RadioTrack II support' CONFIG_RADIO_RTRACK2 $CONFIG_VIDEO_DEV
   if [ "$CONFIG_RADIO_RTRACK2" = "y" ]; then
-    hex '  RadioTrack II i/o port (0x20c or 0x30c)' CONFIG_RADIO_RTRACK2_PORT 30c
+    hex '    RadioTrack II i/o port (0x20c or 0x30c)' CONFIG_RADIO_RTRACK2_PORT 30c
   fi
-  dep_tristate 'Aztech/Packard Bell Radio' CONFIG_RADIO_AZTECH $CONFIG_VIDEO_DEV
+  dep_tristate '  Aztech/Packard Bell Radio' CONFIG_RADIO_AZTECH $CONFIG_VIDEO_DEV
   if [ "$CONFIG_RADIO_AZTECH" = "y" ]; then
-    hex '  Aztech/Packard Bell I/O port (0x350 or 0x358)' CONFIG_RADIO_AZTECH_PORT 350
+    hex '    Aztech/Packard Bell I/O port (0x350 or 0x358)' CONFIG_RADIO_AZTECH_PORT 350
   fi
-  dep_tristate 'ADS Cadet AM/FM Tuner' CONFIG_RADIO_CADET $CONFIG_VIDEO_DEV
-  dep_tristate 'GemTek Radio Card support' CONFIG_RADIO_GEMTEK $CONFIG_VIDEO_DEV
+  dep_tristate '  ADS Cadet AM/FM Tuner' CONFIG_RADIO_CADET $CONFIG_VIDEO_DEV
+  dep_tristate '  GemTek Radio Card support' CONFIG_RADIO_GEMTEK $CONFIG_VIDEO_DEV
   if [ "$CONFIG_RADIO_GEMTEK" = "y" ]; then
-    hex '  GemTek i/o port (0x20c, 0x24c, 0x248, 0x30c, or 0x34c)' CONFIG_RADIO_GEMTEK_PORT 34c
+    hex '    GemTek i/o port (0x20c, 0x24c, 0x248, 0x30c, or 0x34c)' CONFIG_RADIO_GEMTEK_PORT 34c
   fi
-  dep_tristate 'Maestro on board radio' CONFIG_RADIO_MAESTRO $CONFIG_VIDEO_DEV
-  dep_tristate 'Miro PCM20 Radio' CONFIG_RADIO_MIROPCM20 $CONFIG_VIDEO_DEV
-  dep_tristate 'Trust FM Radio' CONFIG_RADIO_TRUST $CONFIG_VIDEO_DEV
+  dep_tristate '  Maestro on board radio' CONFIG_RADIO_MAESTRO $CONFIG_VIDEO_DEV
+  dep_tristate '  Miro PCM20 Radio' CONFIG_RADIO_MIROPCM20 $CONFIG_VIDEO_DEV
+  dep_tristate '  Trust FM Radio' CONFIG_RADIO_TRUST $CONFIG_VIDEO_DEV
   if [ "$CONFIG_RADIO_TRUST" = "y" ]; then
-    hex '  Trust FM Radio I/O port (0x350 or 0x358)' CONFIG_RADIO_TRUST_PORT 350
+    hex '    Trust FM Radio I/O port (0x350 or 0x358)' CONFIG_RADIO_TRUST_PORT 350
   fi
   if [ "$CONFIG_PCI" = "y" ]; then
-    dep_tristate 'BT848 Video For Linux' CONFIG_VIDEO_BT848 $CONFIG_VIDEO_DEV
+    dep_tristate '  BT848 Video For Linux' CONFIG_VIDEO_BT848 $CONFIG_VIDEO_DEV
     if [ "$CONFIG_VIDEO_BT848" != "n" ]; then
-      comment '  MSP3400 sound decoder support is in the section "additional'
-      comment '  low level sound drivers". You may need to enable it there.'
+      comment '    MSP3400 sound decoder support is in the section "additional'
+      comment '    low level sound drivers". You may need to enable it there.'
     fi
   fi
   if [ "$CONFIG_PARPORT" = "y" -o "$CONFIG_PARPORT" = "m" ]; then
-    dep_tristate 'Quickcam BW Video For Linux' CONFIG_VIDEO_BWQCAM $CONFIG_VIDEO_DEV $CONFIG_PARPORT
-    dep_tristate 'Colour QuickCam Video For Linux (EXPERIMENTAL)' CONFIG_VIDEO_CQCAM $CONFIG_VIDEO_DEV $CONFIG_PARPORT
+    dep_tristate '  Quickcam BW Video For Linux' CONFIG_VIDEO_BWQCAM $CONFIG_VIDEO_DEV $CONFIG_PARPORT
+    dep_tristate '  Colour QuickCam Video For Linux (EXPERIMENTAL)' CONFIG_VIDEO_CQCAM $CONFIG_VIDEO_DEV $CONFIG_PARPORT
   fi
   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-    dep_tristate 'CPiA Video For Linux' CONFIG_VIDEO_CPIA $CONFIG_VIDEO_DEV
+    dep_tristate '  CPiA Video For Linux' CONFIG_VIDEO_CPIA $CONFIG_VIDEO_DEV
     if [ "$CONFIG_VIDEO_CPIA" != "n" ]; then
-      dep_tristate '  CPiA Parallel Port Lowlevel Support' CONFIG_VIDEO_CPIA_PP $CONFIG_VIDEO_CPIA $CONFIG_PARPORT
+      dep_tristate '    CPiA Parallel Port Lowlevel Support' CONFIG_VIDEO_CPIA_PP $CONFIG_VIDEO_CPIA $CONFIG_PARPORT
       if [ "$CONFIG_USB" = "y" -o "$CONFIG_USB" = "m" ]; then
-        dep_tristate '  CPiA USB Lowlevel Support' CONFIG_VIDEO_CPIA_USB $CONFIG_VIDEO_CPIA $CONFIG_USB
+        dep_tristate '    CPiA USB Lowlevel Support' CONFIG_VIDEO_CPIA_USB $CONFIG_VIDEO_CPIA $CONFIG_USB
       fi
     fi
   fi
-  dep_tristate 'Mediavision Pro Movie Studio Video For Linux' CONFIG_VIDEO_PMS $CONFIG_VIDEO_DEV
+  dep_tristate '  Mediavision Pro Movie Studio Video For Linux' CONFIG_VIDEO_PMS $CONFIG_VIDEO_DEV
   if [ "$CONFIG_POWERMAC" = "y" ]; then
-    dep_tristate 'PlanB Video-In on PowerMac' CONFIG_VIDEO_PLANB $CONFIG_VIDEO_DEV
+    dep_tristate '  PlanB Video-In on PowerMac' CONFIG_VIDEO_PLANB $CONFIG_VIDEO_DEV
   fi
-  dep_tristate 'SAA5249 Teletext processor' CONFIG_VIDEO_SAA5249 $CONFIG_VIDEO_DEV
-  dep_tristate 'SF16FMI Radio' CONFIG_RADIO_SF16FMI $CONFIG_VIDEO_DEV
+  dep_tristate '  SAA5249 Teletext processor' CONFIG_VIDEO_SAA5249 $CONFIG_VIDEO_DEV
+  dep_tristate '  SF16FMI Radio' CONFIG_RADIO_SF16FMI $CONFIG_VIDEO_DEV
   if [ "$CONFIG_RADIO_SF16FMI" = "y" ]; then
-    hex '  SF16FMI I/O port (0x284 or 0x384)' CONFIG_RADIO_SF16FMI_PORT 284
+    hex '    SF16FMI I/O port (0x284 or 0x384)' CONFIG_RADIO_SF16FMI_PORT 284
   fi
   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
     if [ "$CONFIG_SGI" = "y" ]; then
-      dep_tristate 'SGI Vino Video For Linux (EXPERIMENTAL)' CONFIG_VIDEO_VINO $CONFIG_VIDEO_DEV
+      dep_tristate '  SGI Vino Video For Linux (EXPERIMENTAL)' CONFIG_VIDEO_VINO $CONFIG_VIDEO_DEV
     fi
   fi
-  dep_tristate 'Typhoon Radio (a.k.a. EcoRadio)' CONFIG_RADIO_TYPHOON $CONFIG_VIDEO_DEV
+  dep_tristate '  Typhoon Radio (a.k.a. EcoRadio)' CONFIG_RADIO_TYPHOON $CONFIG_VIDEO_DEV
   if [ "$CONFIG_PROC_FS" = "y" ]; then
       if [ "$CONFIG_RADIO_TYPHOON" != "n" ]; then
-	bool '  Support for /proc/radio-typhoon' CONFIG_RADIO_TYPHOON_PROC_FS
+	bool '    Support for /proc/radio-typhoon' CONFIG_RADIO_TYPHOON_PROC_FS
       fi
   fi
   if [ "$CONFIG_RADIO_TYPHOON" = "y" ]; then
-    hex '  Typhoon I/O port (0x316 or 0x336)' CONFIG_RADIO_TYPHOON_PORT 316
-    int '  Typhoon frequency set when muting the device (kHz)' CONFIG_RADIO_TYPHOON_MUTEFREQ 87500
+    hex '    Typhoon I/O port (0x316 or 0x336)' CONFIG_RADIO_TYPHOON_PORT 316
+    int '    Typhoon frequency set when muting the device (kHz)' CONFIG_RADIO_TYPHOON_MUTEFREQ 87500
   fi
-  dep_tristate 'Zoltrix Radio' CONFIG_RADIO_ZOLTRIX $CONFIG_VIDEO_DEV
+  dep_tristate '  Zoltrix Radio' CONFIG_RADIO_ZOLTRIX $CONFIG_VIDEO_DEV
   if [ "$CONFIG_RADIO_ZOLTRIX" = "y" ]; then
-    hex '  ZOLTRIX I/O port (0x20c or 0x30c)' CONFIG_RADIO_ZOLTRIX_PORT 20c
+    hex '    ZOLTRIX I/O port (0x20c or 0x30c)' CONFIG_RADIO_ZOLTRIX_PORT 20c
   fi
-  dep_tristate 'Zoran ZR36057/36060 support' CONFIG_VIDEO_ZORAN $CONFIG_VIDEO_DEV
-  dep_tristate ' Include support for Iomega Buz' CONFIG_VIDEO_BUZ $CONFIG_VIDEO_ZORAN
-  #dep_tristate '  Include support for LML33' CONFIG_VIDEO_LML33 $CONFIG_VIDEO_ZORAN
+  dep_tristate '  Zoran ZR36057/36060 support' CONFIG_VIDEO_ZORAN $CONFIG_VIDEO_DEV
+  dep_tristate '    Include support for Iomega Buz' CONFIG_VIDEO_BUZ $CONFIG_VIDEO_ZORAN
+  #dep_tristate '    Include support for LML33' CONFIG_VIDEO_LML33 $CONFIG_VIDEO_ZORAN
 fi
 
 endmenu
diff -Naurp linux-2.2.26-vanilla/drivers/char/console.c linux-2.2.27-rc2/drivers/char/console.c
--- linux-2.2.26-vanilla/drivers/char/console.c	2002-09-16 18:26:11.000000000 +0200
+++ linux-2.2.27-rc2/drivers/char/console.c	2005-01-13 00:05:40.000000000 +0100
@@ -662,6 +662,9 @@ int vc_allocate(unsigned int currcons)	/
 	return 0;
 }
 
+#define VC_RESIZE_MAXCOL (32767)
+#define VC_RESIZE_MAXROW (32767)
+
 /*
  * Change # of rows and columns (0 means unchanged/the size of fg_console)
  * [this is to be used together with some user program
@@ -674,6 +677,9 @@ int vc_resize(unsigned int lines, unsign
 	unsigned int currcons = fg_console, i;
 	unsigned short *newscreens[MAX_NR_CONSOLES];
 
+	if (cols > VC_RESIZE_MAXCOL || lines > VC_RESIZE_MAXROW)
+		return -EINVAL;
+
 	cc = (cols ? cols : video_num_columns);
 	ll = (lines ? lines : video_num_lines);
 	sr = cc << 1;
diff -Naurp linux-2.2.26-vanilla/drivers/char/drm/Config.in linux-2.2.27-rc2/drivers/char/drm/Config.in
--- linux-2.2.26-vanilla/drivers/char/drm/Config.in	2001-03-25 18:31:28.000000000 +0200
+++ linux-2.2.27-rc2/drivers/char/drm/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -5,6 +5,8 @@
 # Direct Rendering Infrastructure (DRI) in XFree86 4.x.
 #
 
+mainmenu_option next_comment
+comment 'Direct Rendering Manager (XFree86 DRI support)'
 tristate 'Direct Rendering Manager (XFree86 DRI support)' CONFIG_DRM
 if [ "$CONFIG_DRM" != "n" ]; then
     tristate '  3dfx Banshee/Voodoo3+' CONFIG_DRM_TDFX
@@ -13,3 +15,4 @@ if [ "$CONFIG_DRM" != "n" ]; then
     dep_tristate '  Intel I810' CONFIG_DRM_I810 $CONFIG_AGP
     dep_tristate '  Matrox g200/g400' CONFIG_DRM_MGA $CONFIG_AGP
 fi
+endmenu
diff -Naurp linux-2.2.26-vanilla/drivers/char/ftape/Config.in linux-2.2.27-rc2/drivers/char/ftape/Config.in
--- linux-2.2.26-vanilla/drivers/char/ftape/Config.in	2001-03-25 18:31:25.000000000 +0200
+++ linux-2.2.27-rc2/drivers/char/ftape/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -1,38 +1,38 @@
 #
 # Ftape configuration
 #
-dep_tristate 'Zftape, the VFS interface' CONFIG_ZFTAPE $CONFIG_FTAPE
+dep_tristate '  Zftape, the VFS interface' CONFIG_ZFTAPE $CONFIG_FTAPE
 if [ "$CONFIG_ZFTAPE" != "n" ]; then
-  int 'Default block size' CONFIG_ZFT_DFLT_BLK_SZ 10240
-  comment 'The compressor will be built as a module only!'
+  int '  Default block size' CONFIG_ZFT_DFLT_BLK_SZ 10240
+  comment '  The compressor will be built as a module only!'
   define_bool CONFIG_ZFT_COMPRESSOR m
 fi
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-  int 'Number of ftape buffers (EXPERIMENTAL)' CONFIG_FT_NR_BUFFERS 3
+  int '  Number of ftape buffers (EXPERIMENTAL)' CONFIG_FT_NR_BUFFERS 3
 fi
 if [ "$CONFIG_PROC_FS" = "y" ]; then
-  bool 'Enable procfs status report (+2kb)' CONFIG_FT_PROC_FS y
+  bool '  Enable procfs status report (+2kb)' CONFIG_FT_PROC_FS y
 fi
-choice 'Debugging output'			\
+choice '  Debugging output'			\
 	"Normal		CONFIG_FT_NORMAL_DEBUG	\
 	 Excessive	CONFIG_FT_FULL_DEBUG	\
 	 Reduced	CONFIG_FT_NO_TRACE	\
 	 None		CONFIG_FT_NO_TRACE_AT_ALL" Normal
-comment 'Hardware configuration'
-choice 'Floppy tape controllers'				\
+comment '  Hardware configuration'
+choice '  Floppy tape controllers'				\
 	"Standard			CONFIG_FT_STD_FDC	\
 	 MACH-2				CONFIG_FT_MACH2		\
 	 FC-10/FC-20			CONFIG_FT_PROBE_FC10	\
 	 Alt/82078			CONFIG_FT_ALT_FDC" Standard
 if [ "$CONFIG_FT_STD_FDC" != "y" ]; then
-  comment '   Consult the manuals of your tape drive for the correct settings!'
-  hex ' IO base of the floppy disk controller' CONFIG_FT_FDC_BASE 0
+  comment '  Consult the manuals of your tape drive for the correct settings!'
+  hex '   IO base of the floppy disk controller' CONFIG_FT_FDC_BASE 0
   int '   IRQ channel of the floppy disk controller' CONFIG_FT_FDC_IRQ 0
   int '   DMA channel of the floppy disk controller' CONFIG_FT_FDC_DMA 0
 fi
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-   int 'Default FIFO threshold (EXPERIMENTAL)' CONFIG_FT_FDC_THR 8
-   int 'Maximal data rate to use (EXPERIMENTAL)' CONFIG_FT_FDC_MAX_RATE 2000
+   int '   Default FIFO threshold (EXPERIMENTAL)' CONFIG_FT_FDC_THR 8
+   int '   Maximal data rate to use (EXPERIMENTAL)' CONFIG_FT_FDC_MAX_RATE 2000
 fi
-comment 'ONLY for DEC Alpha architectures'
-int 'CPU clock frequency of your DEC Alpha' CONFIG_FT_ALPHA_CLOCK 0
+comment '  ONLY for DEC Alpha architectures'
+int '  CPU clock frequency of your DEC Alpha' CONFIG_FT_ALPHA_CLOCK 0
diff -Naurp linux-2.2.26-vanilla/drivers/char/hfmodem/Config.in linux-2.2.27-rc2/drivers/char/hfmodem/Config.in
--- linux-2.2.26-vanilla/drivers/char/hfmodem/Config.in	2001-03-25 18:31:26.000000000 +0200
+++ linux-2.2.27-rc2/drivers/char/hfmodem/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -1,6 +1,6 @@
 comment 'Misc. hamradio protocols'
-dep_tristate 'Shortwave radio modem driver' CONFIG_HFMODEM $CONFIG_PARPORT
+dep_tristate '  Shortwave radio modem driver' CONFIG_HFMODEM $CONFIG_PARPORT
 if [ "$CONFIG_HFMODEM" != "n" ]; then
-  bool '   HFmodem support for Soundblaster and compatible cards' CONFIG_HFMODEM_SBC
-  bool '   HFmodem support for WSS and Crystal cards' CONFIG_HFMODEM_WSS
+  bool '    HFmodem support for Soundblaster and compatible cards' CONFIG_HFMODEM_SBC
+  bool '    HFmodem support for WSS and Crystal cards' CONFIG_HFMODEM_WSS
 fi
diff -Naurp linux-2.2.26-vanilla/drivers/char/moxa.c linux-2.2.27-rc2/drivers/char/moxa.c
--- linux-2.2.26-vanilla/drivers/char/moxa.c	2001-11-02 17:39:06.000000000 +0100
+++ linux-2.2.27-rc2/drivers/char/moxa.c	2005-01-13 00:05:40.000000000 +0100
@@ -905,6 +905,8 @@ static int moxa_ioctl(struct tty_struct 
 	case TIOCSSERIAL:
 		return (moxa_set_serial_info(ch, (struct serial_struct *) arg));
 	default:
+		if(!capable(CAP_SYS_RAWIO))
+			return -EPERM;
 		retval = MoxaDriverIoctl(cmd, arg, port);
 	}
 	return (retval);
diff -Naurp linux-2.2.26-vanilla/drivers/net/8139too.c linux-2.2.27-rc2/drivers/net/8139too.c
--- linux-2.2.26-vanilla/drivers/net/8139too.c	2005-01-13 00:04:16.000000000 +0100
+++ linux-2.2.27-rc2/drivers/net/8139too.c	2005-01-13 00:05:40.000000000 +0100
@@ -151,6 +151,7 @@ an MMIO register read.
 #include <linux/rtnetlink.h>
 #include <linux/delay.h>
 #include <asm/io.h>
+#include <asm/semaphore.h>
 #include <asm/uaccess.h>
 
 #define RTL8139_DRIVER_NAME   DRV_NAME " Fast Ethernet driver " DRV_VERSION
@@ -725,6 +726,7 @@ struct rtl8139_private {
 	struct semaphore thr_exited;
 	u32 rx_config;
 	struct rtl_extra_stats xstats;
+	struct semaphore mdio_sem;
 };
 
 #define RTL8139_AUTHOR "Jeff Garzik <jgarzik@mandrakesoft.com>"
@@ -1101,6 +1103,7 @@ static int rtl8139_init_one (struct pci_
 	spin_lock_init (&tp->lock);
 	init_waitqueue_head (&tp->thr_wait);
 	init_MUTEX_LOCKED (&tp->thr_exited);
+	init_MUTEX (&tp->mdio_sem);
 
 	if (rtl8139_device_count == 0) {
 		printk (KERN_INFO "%s: " RTL8139_DRIVER_NAME " " RTL8139_AUTHOR "\n", dev->name);
@@ -1743,7 +1746,6 @@ static int rtl8139_thread (void *data)
 	current->comm[sizeof(current->comm) - 1] = '\0';
 
 	while (1) {
-		rtl8139_thread_iter (dev, tp, tp->mmio_addr);
 		timeout = next_tick;
 		do {
 			timeout = interruptible_sleep_on_timeout (&tp->thr_wait, timeout);
@@ -1752,8 +1754,10 @@ static int rtl8139_thread (void *data)
 		if (signal_pending (current))
 			break;
 
-		rtnl_lock ();
-		rtnl_unlock ();
+		if (down_interruptible (&tp->mdio_sem))
+			break;
+		rtl8139_thread_iter (dev, tp, tp->mmio_addr);
+		up (&tp->mdio_sem);
 	}
 
 	up (&tp->thr_exited);
@@ -2259,10 +2263,10 @@ static int rtl8139_close (struct device 
 	if (tp->thr_pid >= 0) {
 		ret = kill_proc (tp->thr_pid, SIGTERM, 1);
 		if (ret) {
-			printk (KERN_ERR "%s: unable to signal thread\n", dev->name);
-			return ret;
+			printk (KERN_ERR "%s: unable to signal thread: %d\n", dev->name, ret);
+		} else {
+			down (&tp->thr_exited);
 		}
-		down (&tp->thr_exited);
 	}
 
 	DPRINTK ("%s: Shutting down ethercard, status was 0x%4.4x.\n",
@@ -2345,7 +2349,7 @@ static int netdev_ioctl (struct device *
 {
 	struct rtl8139_private *tp = dev->priv;
 	struct mii_ioctl_data *data = (struct mii_ioctl_data *)&rq->ifr_data;
-	int rc = 0;
+	int rc;
 	int phy = tp->phys[0] & 0x3f;
 
 	DPRINTK ("ENTER\n");
@@ -2366,14 +2370,17 @@ static int netdev_ioctl (struct device *
 
 	case SIOCGMIIREG:	/* Read the specified MII register. */
 	case SIOCDEVPRIVATE+1:	/* binary compat, remove in 2.5 */
+		if (down_interruptible (&tp->mdio_sem))
+			goto err_out;
 		data->val_out = mdio_read (dev, data->phy_id, data->reg_num);
+		up (&tp->mdio_sem);
 		break;
 
 	case SIOCSMIIREG:	/* Write the specified MII register */
 	case SIOCDEVPRIVATE+2:	/* binary compat, remove in 2.5 */
 		if (!capable (CAP_NET_ADMIN)) {
 			rc = -EPERM;
-			break;
+			goto err_out;
 		}
 
 		if (data->phy_id == phy) {
@@ -2388,14 +2395,20 @@ static int netdev_ioctl (struct device *
 			case 4: /* tp->advertising = value; */ break;
 			}
 		}
+		if (down_interruptible (&tp->mdio_sem))
+			goto err_out;
 		mdio_write(dev, data->phy_id, data->reg_num, data->val_in);
+		up (&tp->mdio_sem);
 		break;
 
 	default:
 		rc = -EOPNOTSUPP;
-		break;
+		goto err_out;
 	}
 
+ 	rc = 0;
+ 
+ err_out:
 	DPRINTK ("EXIT, returning %d\n", rc);
 	return rc;
 }
diff -Naurp linux-2.2.26-vanilla/drivers/net/Config.in linux-2.2.27-rc2/drivers/net/Config.in
--- linux-2.2.26-vanilla/drivers/net/Config.in	2002-05-21 01:32:35.000000000 +0200
+++ linux-2.2.27-rc2/drivers/net/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -39,139 +39,139 @@ bool 'Ethernet (10 or 100Mbit)' CONFIG_N
 if [ "$CONFIG_NET_ETHERNET" = "y" ]; then
   if [ "$CONFIG_ARM" = "y" ]; then
     if [ "$CONFIG_ARCH_ACORN" != "y" ]; then
-      tristate 'AM79C961A support' CONFIG_ARM_AM79C961A
+      tristate '  AM79C961A support' CONFIG_ARM_AM79C961A
     else
       source drivers/acorn/net/Config.in
     fi
   fi
   if [ "$CONFIG_PPC" = "y" ]; then
-    tristate 'MACE (Power Mac ethernet) support' CONFIG_MACE
+    tristate '  MACE (Power Mac ethernet) support' CONFIG_MACE
     if [ "$CONFIG_MACE" != "n" ]; then
-      bool 'Use AAUI port instead of TP by default' CONFIG_MACE_AAUI_PORT
+      bool '    Use AAUI port instead of TP by default' CONFIG_MACE_AAUI_PORT
     fi
-    tristate 'BMAC (G3 ethernet) support' CONFIG_BMAC
-    tristate 'GMAC (G4/iBook ethernet) support' CONFIG_GMAC
-    tristate 'Symbios 53c885 (Synergy ethernet) support' CONFIG_NCR885E
+    tristate '  BMAC (G3 ethernet) support' CONFIG_BMAC
+    tristate '  GMAC (G4/iBook ethernet) support' CONFIG_GMAC
+    tristate '  Symbios 53c885 (Synergy ethernet) support' CONFIG_NCR885E
   fi
   if [ "$CONFIG_ZORRO" = "y" ]; then
-    tristate 'Ariadne support' CONFIG_ARIADNE
-    tristate 'Ariadne II support' CONFIG_ARIADNE2
-    tristate 'A2065 support' CONFIG_A2065
-    tristate 'Hydra support' CONFIG_HYDRA
+    tristate '  Ariadne support' CONFIG_ARIADNE
+    tristate '  Ariadne II support' CONFIG_ARIADNE2
+    tristate '  A2065 support' CONFIG_A2065
+    tristate '  Hydra support' CONFIG_HYDRA
   fi
   if [ "$CONFIG_MIPS_JAZZ" = "y" ]; then
-    tristate 'MIPS JAZZ onboard SONIC Ethernet support' CONFIG_MIPS_JAZZ_SONIC
+    tristate '  MIPS JAZZ onboard SONIC Ethernet support' CONFIG_MIPS_JAZZ_SONIC
   fi
-  bool '3COM cards' CONFIG_NET_VENDOR_3COM
+  bool '  3COM cards' CONFIG_NET_VENDOR_3COM
   if [ "$CONFIG_NET_VENDOR_3COM" = "y" ]; then
-    tristate '3c501 support' CONFIG_EL1
-    tristate '3c503 support' CONFIG_EL2
-    tristate '3c505 support' CONFIG_ELPLUS
+    tristate '    3c501 support' CONFIG_EL1
+    tristate '    3c503 support' CONFIG_EL2
+    tristate '    3c505 support' CONFIG_ELPLUS
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate '3c507 support' CONFIG_EL16
+      tristate '    3c507 support' CONFIG_EL16
       if [ "$CONFIG_MCA" = "y" ]; then
-        tristate '3c523 support' CONFIG_ELMC
-        tristate '3c527 support' CONFIG_ELMC_II
+        tristate '    3c523 support' CONFIG_ELMC
+        tristate '    3c527 support' CONFIG_ELMC_II
       fi
     fi
-    tristate '3c509/3c579 support' CONFIG_EL3
-    tristate '3c515 ISA Fast EtherLink' CONFIG_3C515
-    tristate '3c590/3c900 series (592/595/597) "Vortex/Boomerang" support' CONFIG_VORTEX
+    tristate '    3c509/3c579 support' CONFIG_EL3
+    tristate '    3c515 ISA Fast EtherLink' CONFIG_3C515
+    tristate '    3c590/3c900 series (592/595/597) "Vortex/Boomerang" support' CONFIG_VORTEX
   fi
-  tristate 'AMD LANCE and PCnet (AT1500 and NE2100) support' CONFIG_LANCE
-  bool 'Western Digital/SMC cards' CONFIG_NET_VENDOR_SMC
+  tristate '  AMD LANCE and PCnet (AT1500 and NE2100) support' CONFIG_LANCE
+  bool '  Western Digital/SMC cards' CONFIG_NET_VENDOR_SMC
   if [ "$CONFIG_NET_VENDOR_SMC" = "y" ]; then
-    tristate 'WD80*3 support' CONFIG_WD80x3
+    tristate '    WD80*3 support' CONFIG_WD80x3
     if [ "$CONFIG_MCA" = "y" ]; then
-		tristate 'SMC Ultra MCA support' CONFIG_ULTRAMCA
+      tristate '  SMC Ultra MCA support' CONFIG_ULTRAMCA
     fi
-    tristate 'SMC Ultra support' CONFIG_ULTRA
-    tristate 'SMC Ultra32 EISA support' CONFIG_ULTRA32
-    tristate 'SMC 9194 support' CONFIG_SMC9194
+    tristate '  SMC Ultra support' CONFIG_ULTRA
+    tristate '  SMC Ultra32 EISA support' CONFIG_ULTRA32
+    tristate '  SMC 9194 support' CONFIG_SMC9194
   fi
-  bool 'Racal-Interlan (Micom) NI cards' CONFIG_NET_VENDOR_RACAL
+  bool '  Racal-Interlan (Micom) NI cards' CONFIG_NET_VENDOR_RACAL
   if [ "$CONFIG_NET_VENDOR_RACAL" = "y" ]; then
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'NI5010 support' CONFIG_NI5010
+      tristate '    NI5010 support' CONFIG_NI5010
     fi
-    tristate 'NI5210 support' CONFIG_NI52
-    tristate 'NI6510 support' CONFIG_NI65
+    tristate '    NI5210 support' CONFIG_NI52
+    tristate '    NI6510 support' CONFIG_NI65
   fi
   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'RealTek 8129/8139 (not 8019/8029!) support' CONFIG_RTL8139
+      tristate '  RealTek 8129/8139 (not 8019/8029!) support' CONFIG_RTL8139
   fi
   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'Alternative RealTek 8129/8139 driver (8139too) support' CONFIG_RTL8139TOO
+      tristate '  Alternative RealTek 8129/8139 driver (8139too) support' CONFIG_RTL8139TOO
       if [ "$CONFIG_RTL8139TOO" != "n" ]; then
-          bool '  Use PIO instead of MMIO' CONFIG_8139TOO_PIO
-          bool '  Support for automatic channel equalization' CONFIG_8139TOO_TUNE_TWISTER
-          bool '  Support for 8129' CONFIG_8139TOO_8129
+          bool '    Use PIO instead of MMIO' CONFIG_8139TOO_PIO
+          bool '    Support for automatic channel equalization' CONFIG_8139TOO_TUNE_TWISTER
+          bool '    Support for 8129' CONFIG_8139TOO_8129
       fi
   fi
-  bool 'Other ISA cards' CONFIG_NET_ISA
+  bool '  Other ISA cards' CONFIG_NET_ISA
   if [ "$CONFIG_NET_ISA" = "y" ]; then
-    tristate 'AT1700/1720 support (EXPERIMENTAL)' CONFIG_AT1700
-    tristate 'Cabletron E21xx support' CONFIG_E2100
-    tristate 'DEPCA, DE10x, DE200, DE201, DE202, DE422 support' CONFIG_DEPCA
-    tristate 'EtherWORKS 3 (DE203, DE204, DE205) support' CONFIG_EWRK3
-    tristate 'EtherExpress 16 support' CONFIG_EEXPRESS
-    tristate 'EtherExpressPro/EtherExpress 10 (i82595) support' CONFIG_EEXPRESS_PRO
-    tristate 'FMV-181/182/183/184 support' CONFIG_FMV18X
-    tristate 'HP PCLAN+ (27247B and 27252A) support' CONFIG_HPLAN_PLUS
-    tristate 'HP PCLAN (27245 and other 27xxx series) support' CONFIG_HPLAN
-    tristate 'HP 10/100VG PCLAN (ISA, EISA, PCI) support' CONFIG_HP100
+    tristate '    AT1700/1720 support (EXPERIMENTAL)' CONFIG_AT1700
+    tristate '    Cabletron E21xx support' CONFIG_E2100
+    tristate '    DEPCA, DE10x, DE200, DE201, DE202, DE422 support' CONFIG_DEPCA
+    tristate '    EtherWORKS 3 (DE203, DE204, DE205) support' CONFIG_EWRK3
+    tristate '    EtherExpress 16 support' CONFIG_EEXPRESS
+    tristate '    EtherExpressPro/EtherExpress 10 (i82595) support' CONFIG_EEXPRESS_PRO
+    tristate '    FMV-181/182/183/184 support' CONFIG_FMV18X
+    tristate '    HP PCLAN+ (27247B and 27252A) support' CONFIG_HPLAN_PLUS
+    tristate '    HP PCLAN (27245 and other 27xxx series) support' CONFIG_HPLAN
+    tristate '    HP 10/100VG PCLAN (ISA, EISA, PCI) support' CONFIG_HP100
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'ICL EtherTeam 16i/32 support' CONFIG_ETH16I
+      tristate '    ICL EtherTeam 16i/32 support' CONFIG_ETH16I
     fi
-    tristate 'NE2000/NE1000 support' CONFIG_NE2000
+    tristate '    NE2000/NE1000 support' CONFIG_NE2000
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'SEEQ8005 support (EXPERIMENTAL)' CONFIG_SEEQ8005
+      tristate '    SEEQ8005 support (EXPERIMENTAL)' CONFIG_SEEQ8005
     fi
-    bool 'SK_G16 support' CONFIG_SK_G16
+    bool '    SK_G16 support' CONFIG_SK_G16
   fi
   if [ "$CONFIG_MCA" = "y" ]; then
-    tristate 'NE/2 (ne2000 MCA version) support' CONFIG_NE2_MCA
-    tristate 'SKnet MCA support' CONFIG_SKMC
+    tristate '  NE/2 (ne2000 MCA version) support' CONFIG_NE2_MCA
+    tristate '  SKnet MCA support' CONFIG_SKMC
   fi
-  bool 'EISA, VLB, PCI and on board controllers' CONFIG_NET_EISA
+  bool '  EISA, VLB, PCI and on board controllers' CONFIG_NET_EISA
   if [ "$CONFIG_NET_EISA" = "y" ]; then
-    tristate 'AMD PCnet32 (VLB and PCI) support' CONFIG_PCNET32
-    tristate 'Adaptec Starfire/DuraLAN support' CONFIG_ADAPTEC_STARFIRE
+    tristate '    AMD PCnet32 (VLB and PCI) support' CONFIG_PCNET32
+    tristate '    Adaptec Starfire/DuraLAN support' CONFIG_ADAPTEC_STARFIRE
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'Ansel Communications EISA 3200 support (EXPERIMENTAL)' CONFIG_AC3200
+      tristate '    Ansel Communications EISA 3200 support (EXPERIMENTAL)' CONFIG_AC3200
     fi
-    tristate 'Apricot Xen-II on board Ethernet' CONFIG_APRICOT
-    tristate 'LP486E on board Ethernet' CONFIG_LP486E
-    tristate 'CS89x0 support' CONFIG_CS89x0
+    tristate '    Apricot Xen-II on board Ethernet' CONFIG_APRICOT
+    tristate '    LP486E on board Ethernet' CONFIG_LP486E
+    tristate '    CS89x0 support' CONFIG_CS89x0
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'DM9102 PCI Fast Ethernet Adapter support (EXPERIMENTAL)' CONFIG_DM9102
+      tristate '    DM9102 PCI Fast Ethernet Adapter support (EXPERIMENTAL)' CONFIG_DM9102
     fi
-    tristate 'Generic DECchip & DIGITAL EtherWORKS PCI/EISA' CONFIG_DE4X5
-    tristate 'DECchip Tulip (dc21x4x) PCI support' CONFIG_DEC_ELCP
+    tristate '    Generic DECchip & DIGITAL EtherWORKS PCI/EISA' CONFIG_DE4X5
+    tristate '    DECchip Tulip (dc21x4x) PCI support' CONFIG_DEC_ELCP
     if [ "$CONFIG_DEC_ELCP" != "y" ]; then
-      tristate 'Old DECchip Tulip (dc21x4x) PCI support' CONFIG_DEC_ELCP_OLD
+      tristate '    Old DECchip Tulip (dc21x4x) PCI support' CONFIG_DEC_ELCP_OLD
     fi
-    tristate 'Digi Intl. RightSwitch SE-X support' CONFIG_DGRS
-    tristate 'EtherExpressPro/100 support' CONFIG_EEXPRESS_PRO100
+    tristate '    Digi Intl. RightSwitch SE-X support' CONFIG_DGRS
+    tristate '    EtherExpressPro/100 support' CONFIG_EEXPRESS_PRO100
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'Mylex EISA LNE390A/B support (EXPERIMENTAL)' CONFIG_LNE390
-      tristate 'Novell/Eagle/Microdyne NE3210 EISA support (EXPERIMENTAL)' CONFIG_NE3210
+      tristate '    Mylex EISA LNE390A/B support (EXPERIMENTAL)' CONFIG_LNE390
+      tristate '    Novell/Eagle/Microdyne NE3210 EISA support (EXPERIMENTAL)' CONFIG_NE3210
     fi
-    tristate 'PCI NE2000 support' CONFIG_NE2K_PCI
-    tristate 'TI ThunderLAN support' CONFIG_TLAN
-    tristate 'VIA Rhine support' CONFIG_VIA_RHINE
-    tristate 'SiS 900/7016 PCI Fast Ethernet Adapter support' CONFIG_SIS900
+    tristate '    PCI NE2000 support' CONFIG_NE2K_PCI
+    tristate '    TI ThunderLAN support' CONFIG_TLAN
+    tristate '    VIA Rhine support' CONFIG_VIA_RHINE
+    tristate '    SiS 900/7016 PCI Fast Ethernet Adapter support' CONFIG_SIS900
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'Racal-Interlan EISA ES3210 support (EXPERIMENTAL)' CONFIG_ES3210
-      tristate 'SMC EtherPower II (EXPERIMENTAL)' CONFIG_EPIC100
-      bool 'Zenith Z-Note support (EXPERIMENTAL)' CONFIG_ZNET
+      tristate '    Racal-Interlan EISA ES3210 support (EXPERIMENTAL)' CONFIG_ES3210
+      tristate '    SMC EtherPower II (EXPERIMENTAL)' CONFIG_EPIC100
+      bool '    Zenith Z-Note support (EXPERIMENTAL)' CONFIG_ZNET
     fi
   fi
-  bool 'Pocket and portable adaptors' CONFIG_NET_POCKET
+  bool '  Pocket and portable adaptors' CONFIG_NET_POCKET
   if [ "$CONFIG_NET_POCKET" = "y" ]; then
-    bool 'AT-LAN-TEC/RealTek pocket adaptor support' CONFIG_ATP
-    tristate 'D-Link DE600 pocket adaptor support' CONFIG_DE600
-    tristate 'D-Link DE620 pocket adaptor support' CONFIG_DE620
+    bool '    AT-LAN-TEC/RealTek pocket adaptor support' CONFIG_ATP
+    tristate '    D-Link DE600 pocket adaptor support' CONFIG_DE600
+    tristate '    D-Link DE620 pocket adaptor support' CONFIG_DE620
   fi
 fi
 
@@ -183,15 +183,17 @@ endmenu
 
 mainmenu_option next_comment
 comment 'Ethernet (1000 Mbit)'
-
-    if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      tristate 'Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support' CONFIG_ACENIC
-      tristate 'Packet Engines GNIC-II (Hamachi) support' CONFIG_HAMACHI
-      tristate 'Packet Engines Yellowfin Gigabit-NIC support' CONFIG_YELLOWFIN
-    fi
-    if [ "$CONFIG_PCI" = "y" ]; then
-      tristate 'SysKonnect SK-98xx support' CONFIG_SK98LIN
-    fi
+bool 'Ethernet (1000 Mbit)' CONFIG_NET_GIGABIT_ETH
+if [ "$CONFIG_NET_GIGABIT_ETH" = "y" ]; then
+  if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+    tristate '  Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support' CONFIG_ACENIC
+    tristate '  Packet Engines GNIC-II (Hamachi) support' CONFIG_HAMACHI
+    tristate '  Packet Engines Yellowfin Gigabit-NIC support' CONFIG_YELLOWFIN
+  fi
+  if [ "$CONFIG_PCI" = "y" ]; then
+    tristate '  SysKonnect SK-98xx support' CONFIG_SK98LIN
+  fi
+fi
 endmenu
 
 bool 'FDDI driver support' CONFIG_FDDI
@@ -205,9 +207,9 @@ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; the
     bool 'HIPPI driver support (EXPERIMENTAL)' CONFIG_HIPPI
   fi
   if [ "$CONFIG_HIPPI" = "y" ]; then
-    tristate 'Essential RoadRunner HIPPI PCI adapter support' CONFIG_ROADRUNNER
+    tristate '  Essential RoadRunner HIPPI PCI adapter support' CONFIG_ROADRUNNER
     if [ "$CONFIG_ROADRUNNER" != "n" ]; then
-      bool '  Use large TX/RX rings' CONFIG_ROADRUNNER_LARGE_RINGS
+      bool '    Use large TX/RX rings' CONFIG_ROADRUNNER_LARGE_RINGS
     fi
   fi
 fi
@@ -244,16 +246,16 @@ fi
 
 tristate 'SLIP (serial line) support' CONFIG_SLIP
 if [ "$CONFIG_SLIP" != "n" ]; then
-  bool ' CSLIP compressed headers' CONFIG_SLIP_COMPRESSED
-  bool ' Keepalive and linefill' CONFIG_SLIP_SMART
-  bool ' Six bit SLIP encapsulation' CONFIG_SLIP_MODE_SLIP6
+  bool '  CSLIP compressed headers' CONFIG_SLIP_COMPRESSED
+  bool '  Keepalive and linefill' CONFIG_SLIP_SMART
+  bool '  Six bit SLIP encapsulation' CONFIG_SLIP_MODE_SLIP6
 fi
 
 bool 'Wireless LAN (non-hamradio)' CONFIG_NET_RADIO
 if [ "$CONFIG_NET_RADIO" = "y" ]; then
-  dep_tristate 'STRIP (Metricom starmode radio IP)' CONFIG_STRIP $CONFIG_INET
-  tristate 'AT&T WaveLAN & DEC RoamAbout DS support' CONFIG_WAVELAN
-  tristate 'Aironet Arlan 655 & IC2200 DS support' CONFIG_ARLAN
+  dep_tristate '  STRIP (Metricom starmode radio IP)' CONFIG_STRIP $CONFIG_INET
+  tristate '  AT&T WaveLAN & DEC RoamAbout DS support' CONFIG_WAVELAN
+  tristate '  Aironet Arlan 655 & IC2200 DS support' CONFIG_ARLAN
 
 fi
 
@@ -262,17 +264,17 @@ comment 'Token ring devices'
 
 bool 'Token Ring driver support' CONFIG_TR
 if [ "$CONFIG_TR" = "y" ]; then
-  tristate 'IBM Tropic chipset based adaptor support' CONFIG_IBMTR
-  tristate 'IBM Lanstreamer PCI adaptor support' CONFIG_IBMLS
-  tristate 'IBM Olympic chipset PCI adapter support' CONFIG_IBMOL
-  tristate 'SysKonnect adapter support' CONFIG_SKTR
+  tristate '  IBM Tropic chipset based adaptor support' CONFIG_IBMTR
+  tristate '  IBM Lanstreamer PCI adaptor support' CONFIG_IBMLS
+  tristate '  IBM Olympic chipset PCI adapter support' CONFIG_IBMOL
+  tristate '  SysKonnect adapter support' CONFIG_SKTR
 fi
 
 endmenu
 
 bool 'Fibre Channel driver support' CONFIG_NET_FC
 if [ "$CONFIG_NET_FC" = "y" ]; then
-  dep_tristate 'Interphase 5526 Tachyon chipset based adaptor support' CONFIG_IPHASE5526 $CONFIG_SCSI
+  dep_tristate '  Interphase 5526 Tachyon chipset based adaptor support' CONFIG_IPHASE5526 $CONFIG_SCSI
 fi
 
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
@@ -286,64 +288,65 @@ fi
 
 mainmenu_option next_comment
 comment 'Wan interfaces'
-
+bool 'Wan interfaces support' CONFIG_WAN
+if [ "$CONFIG_WAN" = "y" ]; then
 
 # There is no way to detect a comtrol sv11 - force it modular for now.
 #
-dep_tristate 'Comtrol Hostess SV-11 support' CONFIG_HOSTESS_SV11 m
+dep_tristate '  Comtrol Hostess SV-11 support' CONFIG_HOSTESS_SV11 m
 #
 # The COSA/SRP driver has not been tested as non-modular yet.
 #
-dep_tristate 'COSA/SRP sync serial boards support' CONFIG_COSA m
+dep_tristate '  COSA/SRP sync serial boards support' CONFIG_COSA m
 #
 # There is no way to detect a Sealevel board. Force it modular
 #
-dep_tristate 'Sealevel Systems 4021 support' CONFIG_SEALEVEL_4021 m
+dep_tristate '  Sealevel Systems 4021 support' CONFIG_SEALEVEL_4021 m
 #
 # Microgate Synclink HDLC/SYNCPPP support
 #
-tristate 'SyncLink HDLC/SYNCPPP support' CONFIG_SYNCLINK_SYNCPPP
+tristate '  SyncLink HDLC/SYNCPPP support' CONFIG_SYNCLINK_SYNCPPP
 
 # FarSite Communications' cards
 
-tristate 'FarSync T-Series X.21 (and V.35/V.24) cards' CONFIG_FARSYNC
+tristate '  FarSync T-Series X.21 (and V.35/V.24) cards' CONFIG_FARSYNC
 
 #
 # Lan Media's board. Currently 1000, 1200, 5200, 5245
 #
-tristate 'LanMedia Corp. SSI/V.35, T1/E1, HSSI, T3 boards' CONFIG_LANMEDIA
+tristate '  LanMedia Corp. SSI/V.35, T1/E1, HSSI, T3 boards' CONFIG_LANMEDIA
 
 #
 # COMX drivers
 #
 
-tristate 'MultiGate (COMX) synchronous serial boards support' CONFIG_COMX
+tristate '  MultiGate (COMX) synchronous serial boards support' CONFIG_COMX
 if [ "$CONFIG_COMX" != "n" ]; then
-   dep_tristate '  Support for COMX/CMX/HiCOMX boards' CONFIG_COMX_HW_COMX $CONFIG_COMX
-   dep_tristate '  Support for LoCOMX board' CONFIG_COMX_HW_LOCOMX $CONFIG_COMX
-   dep_tristate '  Support for MixCOM board' CONFIG_COMX_HW_MIXCOM $CONFIG_COMX
-   dep_tristate '  Support for HDLC and syncPPP protocols on MultiGate boards' CONFIG_COMX_PROTO_PPP $CONFIG_COMX
+   dep_tristate '    Support for COMX/CMX/HiCOMX boards' CONFIG_COMX_HW_COMX $CONFIG_COMX
+   dep_tristate '    Support for LoCOMX board' CONFIG_COMX_HW_LOCOMX $CONFIG_COMX
+   dep_tristate '    Support for MixCOM board' CONFIG_COMX_HW_MIXCOM $CONFIG_COMX
+   dep_tristate '    Support for HDLC and syncPPP protocols on MultiGate boards' CONFIG_COMX_PROTO_PPP $CONFIG_COMX
    if [ "$CONFIG_LAPB" = "y" ]; then
-      dep_tristate '  Support for LAPB protocol on MultiGate boards' CONFIG_COMX_PROTO_LAPB $CONFIG_COMX
+      dep_tristate '    Support for LAPB protocol on MultiGate boards' CONFIG_COMX_PROTO_LAPB $CONFIG_COMX
    fi
    if [ "$CONFIG_LAPB" = "m" ]; then
-      dep_tristate '  Support for LAPB protocol on MultiGate boards' CONFIG_COMX_PROTO_LAPB $CONFIG_LAPB
+      dep_tristate '    Support for LAPB protocol on MultiGate boards' CONFIG_COMX_PROTO_LAPB $CONFIG_LAPB
    fi
-   dep_tristate '  Support for Frame Relay on MultiGate boards' CONFIG_COMX_PROTO_FR $CONFIG_COMX
+   dep_tristate '    Support for Frame Relay on MultiGate boards' CONFIG_COMX_PROTO_FR $CONFIG_COMX
 fi
 
 
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-  tristate 'Generic HDLC driver (EXPERIMENTAL)' CONFIG_HDLC
+  tristate '  Generic HDLC driver (EXPERIMENTAL)' CONFIG_HDLC
   if [ "$CONFIG_HDLC" != "n" ]; then
-    dep_tristate '  SDL RISCom/N2 support' CONFIG_N2 $CONFIG_HDLC
-    dep_tristate '  Moxa C101 support' CONFIG_C101 $CONFIG_HDLC
+    dep_tristate '    SDL RISCom/N2 support' CONFIG_N2 $CONFIG_HDLC
+    dep_tristate '    Moxa C101 support' CONFIG_C101 $CONFIG_HDLC
 
     if [ "$CONFIG_PCI" = "y" ]; then
-      dep_tristate '  SBE wanXL support' CONFIG_WANXL $CONFIG_HDLC
-      dep_tristate '  Cyclades-PC300 support' CONFIG_PC300 $CONFIG_HDLC
+      dep_tristate '    SBE wanXL support' CONFIG_WANXL $CONFIG_HDLC
+      dep_tristate '    Cyclades-PC300 support' CONFIG_PC300 $CONFIG_HDLC
       if [ "$CONFIG_PC300" != "n" ]; then
-        bool '    Cyclades-PC300 X.25 support (please read help)' CONFIG_PC300_X25
+        bool '      Cyclades-PC300 X.25 support (please read help)' CONFIG_PC300_X25
       fi
     fi
   fi
@@ -354,11 +357,11 @@ if [ "$CONFIG_HDLC" = "y" -o "$CONFIG_SY
 	define_bool CONFIG_SYNCPPP y
 fi
 
-tristate 'Frame relay DLCI support' CONFIG_DLCI
+tristate '  Frame relay DLCI support' CONFIG_DLCI
 if [ "$CONFIG_DLCI" != "n" ]; then
-  int '  Max open DLCI' CONFIG_DLCI_COUNT 24
-  int '  Max DLCI per device' CONFIG_DLCI_MAX 8
-  dep_tristate '  SDLA (Sangoma S502/S508) support' CONFIG_SDLA $CONFIG_DLCI
+  int '    Max open DLCI' CONFIG_DLCI_COUNT 24
+  int '    Max DLCI per device' CONFIG_DLCI_MAX 8
+  dep_tristate '    SDLA (Sangoma S502/S508) support' CONFIG_SDLA $CONFIG_DLCI
 fi
 
 #
@@ -367,16 +370,16 @@ fi
 
 #  CONFIG_WAN_ROUTER is defined only when CONFIG_EXPERIMENTAL=y
 if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_WAN_ROUTER" != "n" ]; then
-  bool 'WAN drivers' CONFIG_WAN_DRIVERS 
+  bool '  WAN drivers' CONFIG_WAN_DRIVERS 
   if [ "$CONFIG_WAN_DRIVERS" = "y" ]; then
-    dep_tristate 'Sangoma WANPIPE(tm) multi-port cards: (select M not Y !)' CONFIG_VENDOR_SANGOMA $CONFIG_WAN_DRIVERS 
+    dep_tristate '    Sangoma WANPIPE(tm) multi-port cards: (select M not Y !)' CONFIG_VENDOR_SANGOMA $CONFIG_WAN_DRIVERS 
     if [ "$CONFIG_INET" != "n" ]; then
       if [ "$CONFIG_VENDOR_SANGOMA" != "n" ]; then
-        int  '  Maximum number of cards' CONFIG_WANPIPE_CARDS 1
-        #bool '  WANPIPE X.25 support' CONFIG_WANPIPE_X25
-        bool '  WANPIPE Frame Relay support' CONFIG_WANPIPE_FR
-        bool '  WANPIPE PPP support' CONFIG_WANPIPE_PPP
-        bool '  WANPIPE Cisco HDLC support' CONFIG_WANPIPE_CHDLC
+        int  '      Maximum number of cards' CONFIG_WANPIPE_CARDS 1
+        #bool '      WANPIPE X.25 support' CONFIG_WANPIPE_X25
+        bool '      WANPIPE Frame Relay support' CONFIG_WANPIPE_FR
+        bool '      WANPIPE PPP support' CONFIG_WANPIPE_PPP
+        bool '      WANPIPE Cisco HDLC support' CONFIG_WANPIPE_CHDLC
       fi
     fi 
   fi
@@ -386,9 +389,10 @@ fi
 # Xpeed drivers
 #
 if [ "$CONFIG_PCI" = "y" ]; then
-   tristate 'Xpeed X200/X300 DSL NIC support' CONFIG_XPEED
+   tristate '  Xpeed X200/X300 DSL NIC support' CONFIG_XPEED
 fi
 
+fi
 endmenu
 
 #
diff -Naurp linux-2.2.26-vanilla/drivers/net/eepro100.c linux-2.2.27-rc2/drivers/net/eepro100.c
--- linux-2.2.26-vanilla/drivers/net/eepro100.c	2002-05-21 01:32:35.000000000 +0200
+++ linux-2.2.27-rc2/drivers/net/eepro100.c	2005-01-13 00:05:40.000000000 +0100
@@ -183,6 +183,9 @@ MODULE_PARM(multicast_filter_limit, "i")
 #ifndef PCI_DEVICE_ID_INTEL_ID2449
 #define PCI_DEVICE_ID_INTEL_ID2449 0x2449
 #endif
+#ifndef PCI_DEVICE_ID_INTEL_82820FW_4
+#define PCI_DEVICE_ID_INTEL_82820FW_4 0x2449
+#endif
 
 /* The total I/O port extent of the board.
    The registers beyond 0x18 only exist on the i82558. */
@@ -350,6 +353,10 @@ struct pci_id_info {
 	  PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ID2449,
 	  0
 	},
+	{ "Intel Corporation 82820 Onboard 10/100",
+	  PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82820FW_4,
+	  0
+	},
 	{0,}						/* 0 terminated list. */
 };
 
diff -Naurp linux-2.2.26-vanilla/drivers/net/hamradio/Config.in linux-2.2.27-rc2/drivers/net/hamradio/Config.in
--- linux-2.2.26-vanilla/drivers/net/hamradio/Config.in	2001-03-25 18:31:17.000000000 +0200
+++ linux-2.2.27-rc2/drivers/net/hamradio/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -1,3 +1,4 @@
+mainmenu_option next_comment
 comment 'AX.25 network device drivers'
 
 dep_tristate 'Serial port KISS driver' CONFIG_MKISS $CONFIG_AX25
@@ -7,8 +8,8 @@ dep_tristate 'BPQ Ethernet driver' CONFI
 dep_tristate 'High-speed (DMA) SCC driver for AX.25' CONFIG_DMASCC $CONFIG_AX25
 dep_tristate 'Z8530 SCC driver' CONFIG_SCC $CONFIG_AX25
 if [ "$CONFIG_SCC" != "n" ]; then
-  bool '   additional delay for PA0HZP OptoSCC compatible boards' CONFIG_SCC_DELAY
-  bool '   support for TRX that feedback the tx signal to rx' CONFIG_SCC_TRXECHO
+  bool '  additional delay for PA0HZP OptoSCC compatible boards' CONFIG_SCC_DELAY
+  bool '  support for TRX that feedback the tx signal to rx' CONFIG_SCC_TRXECHO
 fi
     
 dep_tristate 'BAYCOM ser12 fullduplex driver for AX.25' CONFIG_BAYCOM_SER_FDX $CONFIG_AX25
@@ -18,15 +19,16 @@ dep_tristate 'BAYCOM epp driver for AX.2
 
 dep_tristate 'Soundcard modem driver' CONFIG_SOUNDMODEM $CONFIG_AX25
 if [ "$CONFIG_SOUNDMODEM" != "n" ]; then
-  bool '   soundmodem support for Soundblaster and compatible cards' CONFIG_SOUNDMODEM_SBC
-  bool '   soundmodem support for WSS and Crystal cards' CONFIG_SOUNDMODEM_WSS
-  bool '   soundmodem support for 1200 baud AFSK modulation' CONFIG_SOUNDMODEM_AFSK1200
-  bool '   soundmodem support for 2400 baud AFSK modulation (7.3728MHz crystal)' CONFIG_SOUNDMODEM_AFSK2400_7
-  bool '   soundmodem support for 2400 baud AFSK modulation (8MHz crystal)' CONFIG_SOUNDMODEM_AFSK2400_8
-  bool '   soundmodem support for 2666 baud AFSK modulation' CONFIG_SOUNDMODEM_AFSK2666
-  bool '   soundmodem support for 4800 baud HAPN-1 modulation' CONFIG_SOUNDMODEM_HAPN4800
-  bool '   soundmodem support for 4800 baud PSK modulation' CONFIG_SOUNDMODEM_PSK4800
-  bool '   soundmodem support for 9600 baud FSK G3RUH modulation' CONFIG_SOUNDMODEM_FSK9600
+  bool '  soundmodem support for Soundblaster and compatible cards' CONFIG_SOUNDMODEM_SBC
+  bool '  soundmodem support for WSS and Crystal cards' CONFIG_SOUNDMODEM_WSS
+  bool '  soundmodem support for 1200 baud AFSK modulation' CONFIG_SOUNDMODEM_AFSK1200
+  bool '  soundmodem support for 2400 baud AFSK modulation (7.3728MHz crystal)' CONFIG_SOUNDMODEM_AFSK2400_7
+  bool '  soundmodem support for 2400 baud AFSK modulation (8MHz crystal)' CONFIG_SOUNDMODEM_AFSK2400_8
+  bool '  soundmodem support for 2666 baud AFSK modulation' CONFIG_SOUNDMODEM_AFSK2666
+  bool '  soundmodem support for 4800 baud HAPN-1 modulation' CONFIG_SOUNDMODEM_HAPN4800
+  bool '  soundmodem support for 4800 baud PSK modulation' CONFIG_SOUNDMODEM_PSK4800
+  bool '  soundmodem support for 9600 baud FSK G3RUH modulation' CONFIG_SOUNDMODEM_FSK9600
 fi
 
 dep_tristate 'YAM driver for AX.25' CONFIG_YAM $CONFIG_AX25
+endmenu
diff -Naurp linux-2.2.26-vanilla/drivers/pci/quirks.c linux-2.2.27-rc2/drivers/pci/quirks.c
--- linux-2.2.26-vanilla/drivers/pci/quirks.c	2002-05-21 01:32:35.000000000 +0200
+++ linux-2.2.27-rc2/drivers/pci/quirks.c	2005-01-13 00:05:40.000000000 +0100
@@ -211,6 +211,11 @@ __initfunc(static void quirk_vialatency(
  * crashes when we use 100% memory bandwidth)
  *
  * VIA 8363 chipset:
+ * VIA 8363 rev 0x81/0x84 (KL133/KM133) Northbridges:
+ * - bits 6, 7 at offset 0x55 need to be turned off
+ *	(clearing bit 5 on those Northbridges seems
+ *	to trigger a bug in its integrated ProSavage video card, which
+ *	causes screen corruption. We only clear bits 6 and 7 for that chipset).
  * VIA 8363,8622,8361 Northbridges:
  *  - bits  5, 6, 7 at offset 0x55 need to be turned off
  * VIA 8367 (KT266x) Northbridges:
@@ -221,15 +226,22 @@ __initfunc(static void pci_fixup_via_ath
 {
  	u8 v;
 	int where = 0x55;
+	u8 revision;
+	int mask = 0x1f;
 
+	pci_read_config_byte(d, PCI_REVISION_ID, &revision);
 	if (d->device == PCI_DEVICE_ID_VIA_8367_0) {
 	        where = 0x95; /* the memory write queue timer register is 
                                 different for the kt266x's: 0x95 not 0x55 */
+	} else if (d->device == PCI_DEVICE_ID_VIA_8363_0) {
+		if ( revision == 0x81 || revision == 0x84 )	/* KL133/KM133 */
+			mask = 0x3f;
 	}
 	pci_read_config_byte(d, where, &v);
-	if (v & 0xe0) {
-		printk("Trying to stomp on Athlon bug...\n");
-		v &= 0x1f; /* clear bits 5, 6, 7 */
+	if (v & ~mask) {
+		printk("Disabling VIA memory write queue (PCI ID %04x, rev %02x): [%02x] %02x & %02x -> %02x\n",
+			d->device, revision, where, v, mask, v & mask);
+		v &= mask;
 		pci_write_config_byte(d, where, v);
 	}
 }
@@ -253,6 +265,7 @@ static struct quirk_name quirk_names[] _
 	{ quirk_passive_release,"Passive release enable" },
 	{ quirk_isa_dma_hangs,	"Work around ISA DMA hangs" },
 	{ pci_fixup_via_athlon_bug, "Athlon/VIA fixup" },
+	{ quirk_vialatency, "VIA southbridge workaround" },
 };
 
 
diff -Naurp linux-2.2.26-vanilla/drivers/scsi/Config.in linux-2.2.27-rc2/drivers/scsi/Config.in
--- linux-2.2.26-vanilla/drivers/scsi/Config.in	2001-03-25 18:37:35.000000000 +0200
+++ linux-2.2.27-rc2/drivers/scsi/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -1,147 +1,158 @@
-comment 'SCSI support type (disk, tape, CD-ROM)'
+mainmenu_option next_comment
+comment 'SCSI support'
+
+tristate 'SCSI support' CONFIG_SCSI
+
+if [ "$CONFIG_SCSI" != "n" ]; then
 
-dep_tristate 'SCSI disk support' CONFIG_BLK_DEV_SD $CONFIG_SCSI
-dep_tristate 'SCSI tape support' CONFIG_CHR_DEV_ST $CONFIG_SCSI
-dep_tristate 'OnStream SC-x0 SCSI tape support' CONFIG_CHR_DEV_OSST $CONFIG_SCSI
-dep_tristate 'SCSI CD-ROM support' CONFIG_BLK_DEV_SR $CONFIG_SCSI
+comment '  SCSI support type (disk, tape, CD-ROM)'
+
+dep_tristate '  SCSI disk support' CONFIG_BLK_DEV_SD $CONFIG_SCSI
+dep_tristate '  SCSI tape support' CONFIG_CHR_DEV_ST $CONFIG_SCSI
+dep_tristate '  OnStream SC-x0 SCSI tape support' CONFIG_CHR_DEV_OSST $CONFIG_SCSI
+dep_tristate '  SCSI CD-ROM support' CONFIG_BLK_DEV_SR $CONFIG_SCSI
 if [ "$CONFIG_BLK_DEV_SR" != "n" ]; then
-  bool '  Enable vendor-specific extensions (for SCSI CDROM)' CONFIG_BLK_DEV_SR_VENDOR
+  bool '    Enable vendor-specific extensions (for SCSI CDROM)' CONFIG_BLK_DEV_SR_VENDOR
 fi
-dep_tristate 'SCSI generic support' CONFIG_CHR_DEV_SG $CONFIG_SCSI
+dep_tristate '  SCSI generic support' CONFIG_CHR_DEV_SG $CONFIG_SCSI
 
-comment 'Some SCSI devices (e.g. CD jukebox) support multiple LUNs'
+comment '  Some SCSI devices (e.g. CD jukebox) support multiple LUNs'
 
-bool 'Probe all LUNs on each SCSI device' CONFIG_SCSI_MULTI_LUN
+bool '  Probe all LUNs on each SCSI device' CONFIG_SCSI_MULTI_LUN
 
-bool 'Verbose SCSI error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS
-bool 'SCSI logging facility' CONFIG_SCSI_LOGGING
+bool '  Verbose SCSI error reporting (kernel size +=12K)' CONFIG_SCSI_CONSTANTS
+bool '  SCSI logging facility' CONFIG_SCSI_LOGGING
 
 mainmenu_option next_comment
-comment 'SCSI low-level drivers'
+comment '  SCSI low-level drivers'
+bool 'SCSI low-level drivers' CONFIG_SCSI_LOWLEVEL
 
-if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-   dep_tristate '3ware Hardware ATA-RAID support (EXPERIMENTAL)' CONFIG_BLK_DEV_3W_XXXX_RAID $CONFIG_SCSI
+if [ "$CONFIG_SCSI_LOWLEVEL" != "n" ]; then
+
+if [ "$CONFIG_PCI" = "y" ]; then
+   dep_tristate '  3ware Hardware ATA-RAID support' CONFIG_BLK_DEV_3W_XXXX_RAID $CONFIG_SCSI
 fi
-dep_tristate '7000FASST SCSI support' CONFIG_SCSI_7000FASST $CONFIG_SCSI
-dep_tristate 'ACARD SCSI support' CONFIG_SCSI_ACARD $CONFIG_SCSI
-dep_tristate 'Adaptec AHA152X/2825 support' CONFIG_SCSI_AHA152X $CONFIG_SCSI
-dep_tristate 'Adaptec AHA1542 support' CONFIG_SCSI_AHA1542 $CONFIG_SCSI
-dep_tristate 'Adaptec AHA1740 support' CONFIG_SCSI_AHA1740 $CONFIG_SCSI
-dep_tristate 'Adaptec AIC7xxx support' CONFIG_SCSI_AIC7XXX $CONFIG_SCSI
+dep_tristate '  7000FASST SCSI support' CONFIG_SCSI_7000FASST $CONFIG_SCSI
+dep_tristate '  ACARD SCSI support' CONFIG_SCSI_ACARD $CONFIG_SCSI
+dep_tristate '  Adaptec AHA152X/2825 support' CONFIG_SCSI_AHA152X $CONFIG_SCSI
+dep_tristate '  Adaptec AHA1542 support' CONFIG_SCSI_AHA1542 $CONFIG_SCSI
+dep_tristate '  Adaptec AHA1740 support' CONFIG_SCSI_AHA1740 $CONFIG_SCSI
+dep_tristate '  Adaptec AIC7xxx support' CONFIG_SCSI_AIC7XXX $CONFIG_SCSI
 if [ "$CONFIG_SCSI_AIC7XXX" != "n" ]; then
-    bool '   Enable Tagged Command Queueing (TCQ) by default' CONFIG_AIC7XXX_TCQ_ON_BY_DEFAULT
-    int  '   Maximum number of TCQ commands per device' CONFIG_AIC7XXX_CMDS_PER_DEVICE 24
-    bool '   Collect statistics to report in /proc' CONFIG_AIC7XXX_PROC_STATS
-fi
-dep_tristate 'IBM ServeRAID support' CONFIG_SCSI_IPS $CONFIG_SCSI
-dep_tristate 'AdvanSys SCSI support' CONFIG_SCSI_ADVANSYS $CONFIG_SCSI
-dep_tristate 'Always IN2000 SCSI support' CONFIG_SCSI_IN2000 $CONFIG_SCSI
-dep_tristate 'AM53/79C974 PCI SCSI support' CONFIG_SCSI_AM53C974 $CONFIG_SCSI
-dep_tristate 'AMI MegaRAID support' CONFIG_SCSI_MEGARAID $CONFIG_SCSI
+    bool '    Enable Tagged Command Queueing (TCQ) by default' CONFIG_AIC7XXX_TCQ_ON_BY_DEFAULT
+    int  '    Maximum number of TCQ commands per device' CONFIG_AIC7XXX_CMDS_PER_DEVICE 24
+    bool '    Collect statistics to report in /proc' CONFIG_AIC7XXX_PROC_STATS
+fi
+dep_tristate '  IBM ServeRAID support' CONFIG_SCSI_IPS $CONFIG_SCSI
+dep_tristate '  AdvanSys SCSI support' CONFIG_SCSI_ADVANSYS $CONFIG_SCSI
+dep_tristate '  Always IN2000 SCSI support' CONFIG_SCSI_IN2000 $CONFIG_SCSI
+dep_tristate '  AM53/79C974 PCI SCSI support' CONFIG_SCSI_AM53C974 $CONFIG_SCSI
+dep_tristate '  AMI MegaRAID support' CONFIG_SCSI_MEGARAID $CONFIG_SCSI
 
-dep_tristate 'BusLogic SCSI support' CONFIG_SCSI_BUSLOGIC $CONFIG_SCSI
+dep_tristate '  BusLogic SCSI support' CONFIG_SCSI_BUSLOGIC $CONFIG_SCSI
 if [ "$CONFIG_SCSI_BUSLOGIC" != "n" ]; then
-    bool '  Omit FlashPoint support' CONFIG_SCSI_OMIT_FLASHPOINT
+    bool '    Omit FlashPoint support' CONFIG_SCSI_OMIT_FLASHPOINT
 fi
 if [ "$CONFIG_PCI" = "y" ]; then
-  dep_tristate 'Compaq Fibre Channel 64-bit/66Mhz HBA support' CONFIG_SCSI_CPQFCTS $CONFIG_SCSI
+  dep_tristate '  Compaq Fibre Channel 64-bit/66Mhz HBA support' CONFIG_SCSI_CPQFCTS $CONFIG_SCSI
 fi
-dep_tristate 'DTC3180/3280 SCSI support' CONFIG_SCSI_DTC3280 $CONFIG_SCSI
-dep_tristate 'EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) support' CONFIG_SCSI_EATA $CONFIG_SCSI
+dep_tristate '  DTC3180/3280 SCSI support' CONFIG_SCSI_DTC3280 $CONFIG_SCSI
+dep_tristate '  EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) support' CONFIG_SCSI_EATA $CONFIG_SCSI
   if [ "$CONFIG_SCSI_EATA" != "n" ]; then
-    bool '  enable tagged command queueing' CONFIG_SCSI_EATA_TAGGED_QUEUE
-    bool '  enable elevator sorting' CONFIG_SCSI_EATA_LINKED_COMMANDS
-    int  '  maximum number of queued commands' CONFIG_SCSI_EATA_MAX_TAGS 16
-  fi
-dep_tristate 'EATA-DMA [Obsolete] (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix) support' CONFIG_SCSI_EATA_DMA $CONFIG_SCSI
-dep_tristate 'EATA-PIO (old DPT PM2001, PM2012A) support' CONFIG_SCSI_EATA_PIO $CONFIG_SCSI
-dep_tristate 'Future Domain 16xx SCSI/AHA-2920A support' CONFIG_SCSI_FUTURE_DOMAIN $CONFIG_SCSI
+    bool '    enable tagged command queueing' CONFIG_SCSI_EATA_TAGGED_QUEUE
+    bool '    enable elevator sorting' CONFIG_SCSI_EATA_LINKED_COMMANDS
+    int  '    maximum number of queued commands' CONFIG_SCSI_EATA_MAX_TAGS 16
+  fi
+dep_tristate '  EATA-DMA [Obsolete] (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix) support' CONFIG_SCSI_EATA_DMA $CONFIG_SCSI
+dep_tristate '  EATA-PIO (old DPT PM2001, PM2012A) support' CONFIG_SCSI_EATA_PIO $CONFIG_SCSI
+dep_tristate '  Future Domain 16xx SCSI/AHA-2920A support' CONFIG_SCSI_FUTURE_DOMAIN $CONFIG_SCSI
 if [ "$CONFIG_MCA" = "y" ]; then
-    dep_tristate 'Future Domain MCS-600/700 SCSI support' CONFIG_SCSI_FD_MCS $CONFIG_SCSI
+    dep_tristate '  Future Domain MCS-600/700 SCSI support' CONFIG_SCSI_FD_MCS $CONFIG_SCSI
 fi
-dep_tristate 'GDT SCSI Disk Array Controller support' CONFIG_SCSI_GDTH $CONFIG_SCSI
-dep_tristate 'Generic NCR5380/53c400 SCSI support' CONFIG_SCSI_GENERIC_NCR5380 $CONFIG_SCSI
+dep_tristate '  GDT SCSI Disk Array Controller support' CONFIG_SCSI_GDTH $CONFIG_SCSI
+dep_tristate '  Generic NCR5380/53c400 SCSI support' CONFIG_SCSI_GENERIC_NCR5380 $CONFIG_SCSI
 if [ "$CONFIG_SCSI_GENERIC_NCR5380" != "n" ]; then
-	bool '   Enable NCR53c400 extensions' CONFIG_SCSI_GENERIC_NCR53C400
+	bool '     Enable NCR53c400 extensions' CONFIG_SCSI_GENERIC_NCR53C400
 	choice 'NCR5380/53c400 mapping method (use Port for T130B)' \
 		"Port CONFIG_SCSI_G_NCR5380_PORT \
 		Memory CONFIG_SCSI_G_NCR5380_MEM" Port
 fi
 if [ "$CONFIG_PCI" = "y" ]; then
-  dep_tristate 'Initio 9100U(W) support' CONFIG_SCSI_INITIO $CONFIG_SCSI
-  dep_tristate 'Initio INI-A100U2W support' CONFIG_SCSI_INIA100 $CONFIG_SCSI
+  dep_tristate '  Initio 9100U(W) support' CONFIG_SCSI_INITIO $CONFIG_SCSI
+  dep_tristate '  Initio INI-A100U2W support' CONFIG_SCSI_INIA100 $CONFIG_SCSI
 fi
 if [ "$CONFIG_PARPORT" = "y" -o "$CONFIG_PARPORT" = "m" ]; then
-  dep_tristate 'IOMEGA parallel port (ppa - older drives)' CONFIG_SCSI_PPA $CONFIG_SCSI $CONFIG_PARPORT
-  dep_tristate 'IOMEGA parallel port (imm - newer drives)' CONFIG_SCSI_IMM $CONFIG_SCSI $CONFIG_PARPORT
+  dep_tristate '  IOMEGA parallel port (ppa - older drives)' CONFIG_SCSI_PPA $CONFIG_SCSI $CONFIG_PARPORT
+  dep_tristate '  IOMEGA parallel port (imm - newer drives)' CONFIG_SCSI_IMM $CONFIG_SCSI $CONFIG_PARPORT
   if [ "$CONFIG_SCSI_PPA" != "n" -o "$CONFIG_SCSI_IMM" != "n" ]; then
-    bool  '  ppa/imm option - Use slow (but safe) EPP-16' CONFIG_SCSI_IZIP_EPP16
-    bool  '  ppa/imm option - Assume slow parport control register' CONFIG_SCSI_IZIP_SLOW_CTR
+    bool  '    ppa/imm option - Use slow (but safe) EPP-16' CONFIG_SCSI_IZIP_EPP16
+    bool  '    ppa/imm option - Assume slow parport control register' CONFIG_SCSI_IZIP_SLOW_CTR
   fi
 fi
-dep_tristate 'NCR53c406a SCSI support' CONFIG_SCSI_NCR53C406A $CONFIG_SCSI
-dep_tristate 'symbios 53c416 SCSI support' CONFIG_SCSI_SYM53C416 $CONFIG_SCSI
-dep_tristate 'Simple 53c710 SCSI support (Compaq, NCR machines)' CONFIG_SCSI_SIM710 $CONFIG_SCSI
+
+dep_tristate '  NCR53c406a SCSI support' CONFIG_SCSI_NCR53C406A $CONFIG_SCSI
+dep_tristate '  symbios 53c416 SCSI support' CONFIG_SCSI_SYM53C416 $CONFIG_SCSI
+dep_tristate '  Simple 53c710 SCSI support (Compaq, NCR machines)' CONFIG_SCSI_SIM710 $CONFIG_SCSI
 if [ "$CONFIG_PCI" = "y" ]; then
-  dep_tristate 'NCR53c7,8xx SCSI support'  CONFIG_SCSI_NCR53C7xx $CONFIG_SCSI
+  dep_tristate '  NCR53c7,8xx SCSI support'  CONFIG_SCSI_NCR53C7xx $CONFIG_SCSI
   if [ "$CONFIG_SCSI_NCR53C7xx" != "n" ]; then
-    bool '   always negotiate synchronous transfers' CONFIG_SCSI_NCR53C7xx_sync
-    bool '   allow FAST-SCSI [10MHz]' CONFIG_SCSI_NCR53C7xx_FAST
-    bool '   allow DISCONNECT' CONFIG_SCSI_NCR53C7xx_DISCONNECT
+    bool '    always negotiate synchronous transfers' CONFIG_SCSI_NCR53C7xx_sync
+    bool '    allow FAST-SCSI [10MHz]' CONFIG_SCSI_NCR53C7xx_FAST
+    bool '    allow DISCONNECT' CONFIG_SCSI_NCR53C7xx_DISCONNECT
   fi
 fi
 if [ "$CONFIG_PCI" = "y" -a "$CONFIG_SCSI_NCR53C7xx" != "y" ]; then
-  dep_tristate 'NCR53C8XX SCSI support' CONFIG_SCSI_NCR53C8XX $CONFIG_SCSI
-  dep_tristate 'SYM53C8XX SCSI support' CONFIG_SCSI_SYM53C8XX $CONFIG_SCSI
+  dep_tristate '  NCR53C8XX SCSI support' CONFIG_SCSI_NCR53C8XX $CONFIG_SCSI
+  dep_tristate '  SYM53C8XX SCSI support' CONFIG_SCSI_SYM53C8XX $CONFIG_SCSI
   if [ "$CONFIG_SCSI_NCR53C8XX" != "n" -o "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then
-    int  '  default tagged command queue depth' CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS 8
-    int  '  maximum number of queued commands' CONFIG_SCSI_NCR53C8XX_MAX_TAGS 32
-    int  '  synchronous transfers frequency in MHz' CONFIG_SCSI_NCR53C8XX_SYNC 20
-    bool '  use normal IO' CONFIG_SCSI_NCR53C8XX_IOMAPPED
+    int  '    default tagged command queue depth' CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS 8
+    int  '    maximum number of queued commands' CONFIG_SCSI_NCR53C8XX_MAX_TAGS 32
+    int  '    synchronous transfers frequency in MHz' CONFIG_SCSI_NCR53C8XX_SYNC 20
+    bool '    use normal IO' CONFIG_SCSI_NCR53C8XX_IOMAPPED
     if [ "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then
-      bool '  include support for the NCR PQS/PDS SCSI card' CONFIG_SCSI_NCR53C8XX_PQS_PDS
+      bool '    include support for the NCR PQS/PDS SCSI card' CONFIG_SCSI_NCR53C8XX_PQS_PDS
     fi
     if [ "$CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS" = "0" ]; then
-      bool '  not allow targets to disconnect' CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
+      bool '    not allow targets to disconnect' CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
     fi
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      bool '  assume boards are SYMBIOS compatible' CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT
+      bool '    assume boards are SYMBIOS compatible' CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT
     fi
   fi
 fi
 if [ "$CONFIG_MCA" = "y" ]; then
-  dep_tristate 'IBMMCA SCSI support' CONFIG_SCSI_IBMMCA $CONFIG_SCSI
+  dep_tristate '  IBMMCA SCSI support' CONFIG_SCSI_IBMMCA $CONFIG_SCSI
   if [ "$CONFIG_SCSI_IBMMCA" != "n" ]; then
-     bool '  Standard SCSI-order' CONFIG_IBMMCA_SCSI_ORDER_STANDARD
-     bool '  Reset SCSI-devices at boottime' CONFIG_IBMMCA_SCSI_DEV_RESET
+     bool '    Standard SCSI-order' CONFIG_IBMMCA_SCSI_ORDER_STANDARD
+     bool '    Reset SCSI-devices at boottime' CONFIG_IBMMCA_SCSI_DEV_RESET
   fi
 fi
 if [ "$CONFIG_MCA" = "y" ]; then
-  dep_tristate 'NCR MCA 53C9x SCSI support' CONFIG_SCSI_MCA_53C9X $CONFIG_SCSI
+  dep_tristate '  NCR MCA 53C9x SCSI support' CONFIG_SCSI_MCA_53C9X $CONFIG_SCSI
 fi
-dep_tristate 'PAS16 SCSI support' CONFIG_SCSI_PAS16 $CONFIG_SCSI
-dep_tristate 'PCI2000 support' CONFIG_SCSI_PCI2000 $CONFIG_SCSI
-dep_tristate 'PCI2220i support' CONFIG_SCSI_PCI2220I $CONFIG_SCSI
-dep_tristate 'PSI240i support' CONFIG_SCSI_PSI240I $CONFIG_SCSI
-dep_tristate 'Qlogic FAS SCSI support' CONFIG_SCSI_QLOGIC_FAS $CONFIG_SCSI
+dep_tristate '  PAS16 SCSI support' CONFIG_SCSI_PAS16 $CONFIG_SCSI
+dep_tristate '  PCI2000 support' CONFIG_SCSI_PCI2000 $CONFIG_SCSI
+dep_tristate '  PCI2220i support' CONFIG_SCSI_PCI2220I $CONFIG_SCSI
+dep_tristate '  PSI240i support' CONFIG_SCSI_PSI240I $CONFIG_SCSI
+dep_tristate '  Qlogic FAS SCSI support' CONFIG_SCSI_QLOGIC_FAS $CONFIG_SCSI
 if [ "$CONFIG_PCI" = "y" ]; then
-  dep_tristate 'Qlogic ISP SCSI support' CONFIG_SCSI_QLOGIC_ISP $CONFIG_SCSI
-  dep_tristate 'Qlogic ISP FC SCSI support' CONFIG_SCSI_QLOGIC_FC $CONFIG_SCSI
+  dep_tristate '  Qlogic ISP SCSI support' CONFIG_SCSI_QLOGIC_ISP $CONFIG_SCSI
+  dep_tristate '  Qlogic ISP FC SCSI support' CONFIG_SCSI_QLOGIC_FC $CONFIG_SCSI
 fi
-dep_tristate 'Seagate ST-02 and Future Domain TMC-8xx SCSI support' CONFIG_SCSI_SEAGATE $CONFIG_SCSI
+dep_tristate '  Seagate ST-02 and Future Domain TMC-8xx SCSI support' CONFIG_SCSI_SEAGATE $CONFIG_SCSI
 if [ "$CONFIG_PCI" = "y" ]; then
-  dep_tristate 'Tekram DC390(T) and Am53/79C974 SCSI support' CONFIG_SCSI_DC390T $CONFIG_SCSI
+  dep_tristate '  Tekram DC390(T) and Am53/79C974 SCSI support' CONFIG_SCSI_DC390T $CONFIG_SCSI
   if [ "$CONFIG_SCSI_DC390T" != "n" ]; then
-    bool '  _omit_ support for non-DC390 adapters' CONFIG_SCSI_DC390T_NOGENSUPP
+    bool '    _omit_ support for non-DC390 adapters' CONFIG_SCSI_DC390T_NOGENSUPP
   fi
 fi
-dep_tristate 'Trantor T128/T128F/T228 SCSI support' CONFIG_SCSI_T128 $CONFIG_SCSI
-dep_tristate 'UltraStor 14F/34F support' CONFIG_SCSI_U14_34F $CONFIG_SCSI
+dep_tristate '  Trantor T128/T128F/T228 SCSI support' CONFIG_SCSI_T128 $CONFIG_SCSI
+dep_tristate '  UltraStor 14F/34F support' CONFIG_SCSI_U14_34F $CONFIG_SCSI
   if [ "$CONFIG_SCSI_U14_34F" != "n" ]; then
-    bool '  enable elevator sorting' CONFIG_SCSI_U14_34F_LINKED_COMMANDS
-    int  '  maximum number of queued commands' CONFIG_SCSI_U14_34F_MAX_TAGS 8
+    bool '    enable elevator sorting' CONFIG_SCSI_U14_34F_LINKED_COMMANDS
+    int  '    maximum number of queued commands' CONFIG_SCSI_U14_34F_MAX_TAGS 8
   fi
-dep_tristate 'UltraStor SCSI support' CONFIG_SCSI_ULTRASTOR $CONFIG_SCSI
+dep_tristate '  UltraStor SCSI support' CONFIG_SCSI_ULTRASTOR $CONFIG_SCSI
 #
 # Note - this is a very special 'host' adapter that simulates the presence of some disks.
 # It can come in very handy for troubleshooting.  Anyone else is welcome to use it - all
@@ -151,19 +162,23 @@ dep_tristate 'UltraStor SCSI support' CO
 # simulate various conditions that I am testing.
 #
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-  dep_tristate 'SCSI debugging host adapter' CONFIG_SCSI_DEBUG $CONFIG_SCSI
+  dep_tristate '  SCSI debugging host adapter' CONFIG_SCSI_DEBUG $CONFIG_SCSI
 fi
 if [ "$CONFIG_PPC" = "y" ]; then
-  dep_tristate 'MESH (Power Mac internal SCSI) support' CONFIG_SCSI_MESH $CONFIG_SCSI
+  dep_tristate '  MESH (Power Mac internal SCSI) support' CONFIG_SCSI_MESH $CONFIG_SCSI
   if [ "$CONFIG_SCSI_MESH" != "n" ]; then
-    int '  maximum synchronous transfer rate (MB/s) (0 = async)' CONFIG_SCSI_MESH_SYNC_RATE 5
+    int '    maximum synchronous transfer rate (MB/s) (0 = async)' CONFIG_SCSI_MESH_SYNC_RATE 5
   fi
-  dep_tristate '53C94 (Power Mac external SCSI) support' CONFIG_SCSI_MAC53C94 $CONFIG_SCSI
+  dep_tristate '  53C94 (Power Mac external SCSI) support' CONFIG_SCSI_MAC53C94 $CONFIG_SCSI
 fi
 if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
   source drivers/acorn/scsi/Config.in
 fi
 if [ "$CONFIG_MIPS_JAZZ" = "y" ]; then
-  bool 'MIPS JAZZ FAS216 SCSI support' CONFIG_JAZZ_ESP
+  bool '  MIPS JAZZ FAS216 SCSI support' CONFIG_JAZZ_ESP
+fi
+fi
+endmenu
+
 fi
 endmenu
diff -Naurp linux-2.2.26-vanilla/drivers/sound/Config.in linux-2.2.27-rc2/drivers/sound/Config.in
--- linux-2.2.26-vanilla/drivers/sound/Config.in	2001-03-25 18:37:37.000000000 +0200
+++ linux-2.2.27-rc2/drivers/sound/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -5,316 +5,319 @@
 #
 # See drivers/sound/README.CONFIG for more information.
 
-
-
 # Prompt user for primary drivers.
 
+mainmenu_option next_comment
+comment 'Sound card support'
+tristate 'Sound card support' CONFIG_SOUND
+if [ "$CONFIG_SOUND" != "n" ]; then
+
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-  dep_tristate 'Support for C-Media PCI audio chips (Experimental)' CONFIG_SOUND_CMPCI $CONFIG_SOUND
+  dep_tristate '  Support for C-Media PCI audio chips (Experimental)' CONFIG_SOUND_CMPCI $CONFIG_SOUND
   if [ "$CONFIG_SOUND_CMPCI" = "y" -o "$CONFIG_SOUND_CMPCI" = "m" ]; then
-     bool 'Enable legacy FM' CONFIG_SOUND_CMPCI_FM
-     bool 'Enable legacy MPU-401' CONFIG_SOUND_CMPCI_MIDI
+     bool '    Enable legacy FM' CONFIG_SOUND_CMPCI_FM
+     bool '    Enable legacy MPU-401' CONFIG_SOUND_CMPCI_MIDI
   fi
 fi
 
-dep_tristate 'Crystal CS4281' CONFIG_SOUND_CS4281 $CONFIG_SOUND
-dep_tristate 'Crystal SoundFusion (CS4280/461x)' CONFIG_SOUND_FUSION $CONFIG_SOUND
+dep_tristate '  Crystal CS4281' CONFIG_SOUND_CS4281 $CONFIG_SOUND
+dep_tristate '  Crystal SoundFusion (CS4280/461x)' CONFIG_SOUND_FUSION $CONFIG_SOUND
 if [ "$CONFIG_PCI" = "y" ]; then
-   dep_tristate 'Creative SBLive! (EMU10K1)' CONFIG_SOUND_EMU10K1 $CONFIG_SOUND
+   dep_tristate '  Creative SBLive! (EMU10K1)' CONFIG_SOUND_EMU10K1 $CONFIG_SOUND
 fi
-dep_tristate 'Ensoniq AudioPCI (ES1370)' CONFIG_SOUND_ES1370 $CONFIG_SOUND
+dep_tristate '  Ensoniq AudioPCI (ES1370)' CONFIG_SOUND_ES1370 $CONFIG_SOUND
 if [ "$CONFIG_SOUND_ES1370" = "y" ]; then
-   bool 'Joystick support at boot time' CONFIG_SOUND_ES1370_JOYPORT_BOOT
+   bool '    Joystick support at boot time' CONFIG_SOUND_ES1370_JOYPORT_BOOT
 fi
-dep_tristate 'Creative Ensoniq AudioPCI 97 (ES1371)' CONFIG_SOUND_ES1371 $CONFIG_SOUND
+dep_tristate '  Creative Ensoniq AudioPCI 97 (ES1371)' CONFIG_SOUND_ES1371 $CONFIG_SOUND
 if [ "$CONFIG_SOUND_ES1371" = "y" ]; then
-   bool 'Joystick support at boot time' CONFIG_SOUND_ES1371_JOYPORT_BOOT
+   bool '    Joystick support at boot time' CONFIG_SOUND_ES1371_JOYPORT_BOOT
    if [ "$CONFIG_SOUND_ES1371_JOYPORT_BOOT" = "y" ]; then
-      hex 'Gameport I/O 200,208,210,218' CONFIG_SOUND_ES1371_GAMEPORT 200
+      hex '    Gameport I/O 200,208,210,218' CONFIG_SOUND_ES1371_GAMEPORT 200
    fi
 fi
 
-dep_tristate 'ESS Maestro' CONFIG_SOUND_MAESTRO $CONFIG_SOUND
-dep_tristate 'ESS Maestro3' CONFIG_SOUND_MAESTRO3 $CONFIG_SOUND
-dep_tristate 'ESS Solo1' CONFIG_SOUND_ESSSOLO1 $CONFIG_SOUND
+dep_tristate '  ESS Maestro' CONFIG_SOUND_MAESTRO $CONFIG_SOUND
+dep_tristate '  ESS Maestro3' CONFIG_SOUND_MAESTRO3 $CONFIG_SOUND
+dep_tristate '  ESS Solo1' CONFIG_SOUND_ESSSOLO1 $CONFIG_SOUND
 
-dep_tristate 'Intel ICH (810, 820, 440MX...)' CONFIG_SOUND_ICH $CONFIG_SOUND
+dep_tristate '  Intel ICH (810, 820, 440MX...)' CONFIG_SOUND_ICH $CONFIG_SOUND
 
-dep_tristate 'S3 SonicVibes' CONFIG_SOUND_SONICVIBES $CONFIG_SOUND
+dep_tristate '  S3 SonicVibes' CONFIG_SOUND_SONICVIBES $CONFIG_SOUND
 
 if [ "$CONFIG_VISWS" = "y" ]; then
-    dep_tristate ' Workstation Sound' CONFIG_SOUND_VWSND $CONFIG_SOUND
+    dep_tristate '  Workstation Sound' CONFIG_SOUND_VWSND $CONFIG_SOUND
 fi
 
-dep_tristate 'Trident 4DWave DX/NX or SiS 7018 PCI Audio Core or ALi 5451' CONFIG_SOUND_TRIDENT $CONFIG_SOUND
+dep_tristate '  Trident 4DWave DX/NX or SiS 7018 PCI Audio Core or ALi 5451' CONFIG_SOUND_TRIDENT $CONFIG_SOUND
 
-dep_tristate 'Support for Turtle Beach MultiSound Classic, Tahiti, Monterey' CONFIG_SOUND_MSNDCLAS $CONFIG_SOUND
+dep_tristate '  Support for Turtle Beach MultiSound Classic, Tahiti, Monterey' CONFIG_SOUND_MSNDCLAS $CONFIG_SOUND
 if [ "$CONFIG_SOUND_MSNDCLAS" = "y" -o "$CONFIG_SOUND_MSNDCLAS" = "m" ]; then
    if [ "$CONFIG_SOUND_MSNDCLAS" = "y" ]; then
-     comment 'Compiled-in MSND Classic support requires firmware during compilation.'
+     comment '    Compiled-in MSND Classic support requires firmware during compilation.'
      define_bool CONFIG_MSNDCLAS_HAVE_BOOT y
    else
      define_bool CONFIG_MSNDCLAS_HAVE_BOOT n
    fi
-   string '  Full pathname of MSNDINIT.BIN firmware file' CONFIG_MSNDCLAS_INIT_FILE "/etc/sound/msndinit.bin"
-   string '  Full pathname of MSNDPERM.BIN firmware file' CONFIG_MSNDCLAS_PERM_FILE "/etc/sound/msndperm.bin"
+   string '    Full pathname of MSNDINIT.BIN firmware file' CONFIG_MSNDCLAS_INIT_FILE "/etc/sound/msndinit.bin"
+   string '    Full pathname of MSNDPERM.BIN firmware file' CONFIG_MSNDCLAS_PERM_FILE "/etc/sound/msndperm.bin"
 fi
 if [ "$CONFIG_SOUND_MSNDCLAS" = "y" ]; then
-   int 'MSND Classic IRQ 5,7,9,10,11,12' CONFIG_MSNDCLAS_IRQ 5
-   hex 'MSND Classic memory B0000,C8000,D0000,D8000,E0000,E8000' CONFIG_MSNDCLAS_MEM D0000
-   hex 'MSND Classic I/O 210,220,230,240,250,260,290,3E0' CONFIG_MSNDCLAS_IO 290
+   int '    MSND Classic IRQ 5,7,9,10,11,12' CONFIG_MSNDCLAS_IRQ 5
+   hex '    MSND Classic memory B0000,C8000,D0000,D8000,E0000,E8000' CONFIG_MSNDCLAS_MEM D0000
+   hex '    MSND Classic I/O 210,220,230,240,250,260,290,3E0' CONFIG_MSNDCLAS_IO 290
 fi
 
-dep_tristate 'Support for Turtle Beach MultiSound Pinnacle, Fiji' CONFIG_SOUND_MSNDPIN $CONFIG_SOUND
+dep_tristate '  Support for Turtle Beach MultiSound Pinnacle, Fiji' CONFIG_SOUND_MSNDPIN $CONFIG_SOUND
 if [ "$CONFIG_SOUND_MSNDPIN" = "y" -o "$CONFIG_SOUND_MSNDPIN" = "m" ]; then
    if [ "$CONFIG_SOUND_MSNDPIN" = "y" ]; then
-     comment 'Compiled-in MSND Pinnacle support requires firmware during compilation.'
+     comment '    Compiled-in MSND Pinnacle support requires firmware during compilation.'
      define_bool CONFIG_MSNDPIN_HAVE_BOOT y
    else
      define_bool CONFIG_MSNDPIN_HAVE_BOOT n
    fi
-   string '  Full pathname of PNDSPINI.BIN firmware file' CONFIG_MSNDPIN_INIT_FILE "/etc/sound/pndspini.bin"
-   string '  Full pathname of PNDSPERM.BIN firmware file' CONFIG_MSNDPIN_PERM_FILE "/etc/sound/pndsperm.bin"
+   string '    Full pathname of PNDSPINI.BIN firmware file' CONFIG_MSNDPIN_INIT_FILE "/etc/sound/pndspini.bin"
+   string '    Full pathname of PNDSPERM.BIN firmware file' CONFIG_MSNDPIN_PERM_FILE "/etc/sound/pndsperm.bin"
 fi
 if [ "$CONFIG_SOUND_MSNDPIN" = "y" ]; then
-   int 'MSND Pinnacle IRQ 5,7,9,10,11,12' CONFIG_MSNDPIN_IRQ 5
-   hex 'MSND Pinnacle memory B0000,C8000,D0000,D8000,E0000,E8000' CONFIG_MSNDPIN_MEM D0000
-   hex 'MSND Pinnacle I/O 210,220,230,240,250,260,290,3E0' CONFIG_MSNDPIN_IO 290
-   bool 'MSND Pinnacle has S/PDIF I/O' CONFIG_MSNDPIN_DIGITAL
-   bool 'MSND Pinnacle non-PnP Mode' CONFIG_MSNDPIN_NONPNP
+   int '      MSND Pinnacle IRQ 5,7,9,10,11,12' CONFIG_MSNDPIN_IRQ 5
+   hex '  MSND Pinnacle memory B0000,C8000,D0000,D8000,E0000,E8000' CONFIG_MSNDPIN_MEM D0000
+   hex '    MSND Pinnacle I/O 210,220,230,240,250,260,290,3E0' CONFIG_MSNDPIN_IO 290
+   bool '      MSND Pinnacle has S/PDIF I/O' CONFIG_MSNDPIN_DIGITAL
+   bool '      MSND Pinnacle non-PnP Mode' CONFIG_MSNDPIN_NONPNP
    if [ "$CONFIG_MSNDPIN_NONPNP" = "y" ]; then
-     comment 'MSND Pinnacle DSP section will be configured to above parameters.'
-     hex 'MSND Pinnacle config port 250,260,270' CONFIG_MSNDPIN_CFG 250
-     comment 'Pinnacle-specific Device Configuration (0 disables)'
-     hex 'MSND Pinnacle MPU I/O (e.g. 330)' CONFIG_MSNDPIN_MPU_IO 0
-     int 'MSND Pinnacle MPU IRQ (e.g. 9)' CONFIG_MSNDPIN_MPU_IRQ 0
-     hex 'MSND Pinnacle IDE I/O 0 (e.g. 170)' CONFIG_MSNDPIN_IDE_IO0 0
-     hex 'MSND Pinnacle IDE I/O 1 (e.g. 376)' CONFIG_MSNDPIN_IDE_IO1 0
-     int 'MSND Pinnacle IDE IRQ (e.g. 15)' CONFIG_MSNDPIN_IDE_IRQ 0
-     hex 'MSND Pinnacle joystick I/O (e.g. 200)' CONFIG_MSNDPIN_JOYSTICK_IO 0
+     comment '      MSND Pinnacle DSP section will be configured to above parameters.'
+     hex '      MSND Pinnacle config port 250,260,270' CONFIG_MSNDPIN_CFG 250
+     comment '      Pinnacle-specific Device Configuration (0 disables)'
+     hex '      MSND Pinnacle MPU I/O (e.g. 330)' CONFIG_MSNDPIN_MPU_IO 0
+     int '      MSND Pinnacle MPU IRQ (e.g. 9)' CONFIG_MSNDPIN_MPU_IRQ 0
+     hex '      MSND Pinnacle IDE I/O 0 (e.g. 170)' CONFIG_MSNDPIN_IDE_IO0 0
+     hex '      MSND Pinnacle IDE I/O 1 (e.g. 376)' CONFIG_MSNDPIN_IDE_IO1 0
+     int '      MSND Pinnacle IDE IRQ (e.g. 15)' CONFIG_MSNDPIN_IDE_IRQ 0
+     hex '      MSND Pinnacle joystick I/O (e.g. 200)' CONFIG_MSNDPIN_JOYSTICK_IO 0
    fi
 fi
 if [ "$CONFIG_SOUND_MSNDPIN" = "y" -o "$CONFIG_SOUND_MSNDCLAS" = "y" ]; then
-   int 'MSND buffer size (kB)' CONFIG_MSND_FIFOSIZE 128
+   int '      MSND buffer size (kB)' CONFIG_MSND_FIFOSIZE 128
 fi
 
-dep_tristate 'VIA 82C686 Audio Codec' CONFIG_SOUND_VIA82CXXX $CONFIG_SOUND
+dep_tristate '  VIA 82C686 Audio Codec' CONFIG_SOUND_VIA82CXXX $CONFIG_SOUND
 
 
-dep_tristate 'OSS sound modules' CONFIG_SOUND_OSS $CONFIG_SOUND
+dep_tristate '  OSS sound modules' CONFIG_SOUND_OSS $CONFIG_SOUND
 
 if [ "$CONFIG_SOUND_OSS" = "y" -o "$CONFIG_SOUND_OSS" = "m" ]; then
   if [ "$CONFIG_SOUND_OSS" = "y" ]; then
-    bool 'Persistent DMA buffers' CONFIG_SOUND_DMAP
+    bool '    Persistent DMA buffers' CONFIG_SOUND_DMAP
   fi
 
-  dep_tristate 'ProAudioSpectrum 16 support' CONFIG_SOUND_PAS $CONFIG_SOUND_OSS
+  dep_tristate '    ProAudioSpectrum 16 support' CONFIG_SOUND_PAS $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_PAS" = "y" ]; then
-      int 'PAS16 IRQ 3, 4, 5, 7, 9, 10, 11, 12, 14 or 15' CONFIG_PAS_IRQ 10
-      int 'PAS16 DMA 0, 1, 3, 5, 6 or 7' CONFIG_PAS_DMA 3
-      bool 'Enable PAS16 joystick port' CONFIG_PAS_JOYSTICK
+      int '      PAS16 IRQ 3, 4, 5, 7, 9, 10, 11, 12, 14 or 15' CONFIG_PAS_IRQ 10
+      int '      PAS16 DMA 0, 1, 3, 5, 6 or 7' CONFIG_PAS_DMA 3
+      bool '      Enable PAS16 joystick port' CONFIG_PAS_JOYSTICK
   fi
   
-  dep_tristate '100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support' CONFIG_SOUND_SB $CONFIG_SOUND_OSS
+  dep_tristate '    100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support' CONFIG_SOUND_SB $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_SB" = "y" ]; then
-      hex 'I/O base for SB Check from manual of the card' CONFIG_SB_BASE 220
-      int 'Sound Blaster IRQ Check from manual of the card' CONFIG_SB_IRQ 7
-      int 'Sound Blaster DMA 0, 1 or 3' CONFIG_SB_DMA 1
-      int 'Sound Blaster 16 bit DMA (SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards)' CONFIG_SB_DMA2 5
-      hex 'MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card' CONFIG_SB_MPU_BASE 330
-      comment 'MPU401 IRQ is only required with Jazz16, SM Wave and ESS1688.'
-      comment 'Enter -1 to the following question if you have something else such as SB16/32.'
-      int 'SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Check from manual of the card' CONFIG_SB_MPU_IRQ -1
+      hex '      I/O base for SB Check from manual of the card' CONFIG_SB_BASE 220
+      int '      Sound Blaster IRQ Check from manual of the card' CONFIG_SB_IRQ 7
+      int '      Sound Blaster DMA 0, 1 or 3' CONFIG_SB_DMA 1
+      int '      Sound Blaster 16 bit DMA (SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards)' CONFIG_SB_DMA2 5
+      hex '      MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card' CONFIG_SB_MPU_BASE 330
+      comment '      MPU401 IRQ is only required with Jazz16, SM Wave and ESS1688.'
+      comment '      Enter -1 to the following question if you have something else such as SB16/32.'
+      int '      SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Check from manual of the card' CONFIG_SB_MPU_IRQ -1
   fi
   
-  dep_tristate 'Gravis Ultrasound support' CONFIG_SOUND_GUS $CONFIG_SOUND_OSS
+  dep_tristate '    Gravis Ultrasound support' CONFIG_SOUND_GUS $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_GUS" = "y" -o "$CONFIG_SOUND_GUS" = "m" ]; then
-      bool '16 bit sampling option of GUS (_NOT_ GUS MAX)' CONFIG_GUS16 
-      bool 'GUS MAX support' CONFIG_GUSMAX
+      bool '      16 bit sampling option of GUS (_NOT_ GUS MAX)' CONFIG_GUS16 
+      bool '      GUS MAX support' CONFIG_GUSMAX
   fi
   if [ "$CONFIG_SOUND_GUS" = "y" ]; then
-      hex 'I/O base for GUS 210, 220, 230, 240, 250 or 260' CONFIG_GUS_BASE 220
-      int 'GUS IRQ 3, 5, 7, 9, 11, 12 or 15' CONFIG_GUS_IRQ 15
-      int 'GUS DMA 1, 3, 5, 6 or 7' CONFIG_GUS_DMA 6
-      int 'Second DMA channel for GUS 1, 3, 5, 6 or 7' CONFIG_GUS_DMA2 -1
+      hex '      I/O base for GUS 210, 220, 230, 240, 250 or 260' CONFIG_GUS_BASE 220
+      int '      GUS IRQ 3, 5, 7, 9, 11, 12 or 15' CONFIG_GUS_IRQ 15
+      int '      GUS DMA 1, 3, 5, 6 or 7' CONFIG_GUS_DMA 6
+      int '      Second DMA channel for GUS 1, 3, 5, 6 or 7' CONFIG_GUS_DMA2 -1
       if [ "$CONFIG_GUS16" = "y" ]; then
-  	hex 'I/O base for the 16 bit daughtercard of GUS 530, 604, E80 or F40' CONFIG_GUS16_BASE 530
-  	int 'GUS 16 bit daughtercard IRQ 3, 4, 5, 7, or 9' CONFIG_GUS16_IRQ 7
-  	int 'GUS DMA 0, 1 or 3' CONFIG_GUS16_DMA 3
+  	hex '      I/O base for the 16 bit daughtercard of GUS 530, 604, E80 or F40' CONFIG_GUS16_BASE 530
+  	int '      GUS 16 bit daughtercard IRQ 3, 4, 5, 7, or 9' CONFIG_GUS16_IRQ 7
+  	int '      GUS DMA 0, 1 or 3' CONFIG_GUS16_DMA 3
       fi
   fi
   
-  dep_tristate 'MPU-401 support (NOT for SB16)' CONFIG_SOUND_MPU401 $CONFIG_SOUND_OSS
+  dep_tristate '    MPU-401 support (NOT for SB16)' CONFIG_SOUND_MPU401 $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_MPU401" = "y" ]; then
-      hex 'I/O base for MPU401 Check from manual of the card' CONFIG_MPU_BASE 330
-      int 'MPU401 IRQ Check from manual of the card' CONFIG_MPU_IRQ 9
+      hex '      I/O base for MPU401 Check from manual of the card' CONFIG_MPU_BASE 330
+      int '      MPU401 IRQ Check from manual of the card' CONFIG_MPU_IRQ 9
   fi
   
-  dep_tristate 'PSS (AD1848, ADSP-2115, ESC614) support' CONFIG_SOUND_PSS $CONFIG_SOUND_OSS
+  dep_tristate '    PSS (AD1848, ADSP-2115, ESC614) support' CONFIG_SOUND_PSS $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_PSS" = "y" ]; then
-      hex 'PSS I/O base 220 or 240' CONFIG_PSS_BASE 220
-      hex 'PSS audio I/O base 530, 604, E80 or F40' CONFIG_PSS_MSS_BASE 530
-      int 'PSS audio IRQ 7, 9, 10 or 11' CONFIG_PSS_MSS_IRQ 11
-      int 'PSS audio DMA 0, 1 or 3' CONFIG_PSS_MSS_DMA 3
-      hex 'PSS MIDI I/O base ' CONFIG_PSS_MPU_BASE 330
-      int 'PSS MIDI IRQ 3, 4, 5, 7, 9, 10, 11, 12' CONFIG_PSS_MPU_IRQ 9
-      bool '  Have DSPxxx.LD firmware file' CONFIG_PSS_HAVE_BOOT
+      hex '      PSS I/O base 220 or 240' CONFIG_PSS_BASE 220
+      hex '      PSS audio I/O base 530, 604, E80 or F40' CONFIG_PSS_MSS_BASE 530
+      int '      PSS audio IRQ 7, 9, 10 or 11' CONFIG_PSS_MSS_IRQ 11
+      int '      PSS audio DMA 0, 1 or 3' CONFIG_PSS_MSS_DMA 3
+      hex '      PSS MIDI I/O base ' CONFIG_PSS_MPU_BASE 330
+      int '      PSS MIDI IRQ 3, 4, 5, 7, 9, 10, 11, 12' CONFIG_PSS_MPU_IRQ 9
+      bool '        Have DSPxxx.LD firmware file' CONFIG_PSS_HAVE_BOOT
       if [ "$CONFIG_PSS_HAVE_BOOT" = "y" ]; then
-         string '  Full pathname of DSPxxx.LD firmware file' CONFIG_PSS_BOOT_FILE /etc/sound/dsp001.ld
+         string '        Full pathname of DSPxxx.LD firmware file' CONFIG_PSS_BOOT_FILE /etc/sound/dsp001.ld
       fi
   fi
   if [ "$CONFIG_SOUND_PSS" = "y" -o "$CONFIG_SOUND_PSS" = "m" ]; then
-      bool '  Enable PSS mixer (Beethoven ADSP-16 and other compatibile)' CONFIG_PSS_MIXER
+      bool '      Enable PSS mixer (Beethoven ADSP-16 and other compatibile)' CONFIG_PSS_MIXER
   fi
   
-  dep_tristate 'Microsoft Sound System support' CONFIG_SOUND_MSS $CONFIG_SOUND_OSS
+  dep_tristate '    Microsoft Sound System support' CONFIG_SOUND_MSS $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_MSS" = "y" ]; then
-      bool '  Enable support for the SoundPro mixer' CONFIG_SOUND_SPRO
-      hex 'MSS/WSS I/O base 530, 604, E80 or F40' CONFIG_MSS_BASE 530
-      int 'MSS/WSS IRQ 7, 9, 10 or 11' CONFIG_MSS_IRQ 11
-      int 'MSS/WSS DMA 0, 1 or 3' CONFIG_MSS_DMA 3
-      int 'MSS/WSS second DMA (if possible) 0, 1 or 3' CONFIG_MSS_DMA2 -1
+      bool '      Enable support for the SoundPro mixer' CONFIG_SOUND_SPRO
+      hex '      MSS/WSS I/O base 530, 604, E80 or F40' CONFIG_MSS_BASE 530
+      int '      MSS/WSS IRQ 7, 9, 10 or 11' CONFIG_MSS_IRQ 11
+      int '      MSS/WSS DMA 0, 1 or 3' CONFIG_MSS_DMA 3
+      int '      MSS/WSS second DMA (if possible) 0, 1 or 3' CONFIG_MSS_DMA2 -1
   fi
   
-  dep_tristate 'Ensoniq SoundScape support' CONFIG_SOUND_SSCAPE $CONFIG_SOUND_OSS
+  dep_tristate '    Ensoniq SoundScape support' CONFIG_SOUND_SSCAPE $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_SSCAPE" = "y" ]; then
-      hex 'SoundScape MIDI I/O base 320, 330, 340 or 350' CONFIG_SSCAPE_BASE 330
-      int 'SoundScape MIDI IRQ ' CONFIG_SSCAPE_IRQ 9
-      int 'SoundScape initialization DMA 0, 1 or 3' CONFIG_SSCAPE_DMA 3
-      hex 'SoundScape audio I/O base 534, 608, E84 or F44' CONFIG_SSCAPE_MSS_BASE 534
-      int 'SoundScape audio IRQ 7, 9, 10 or 11' CONFIG_SSCAPE_MSS_IRQ 11
+      hex '      SoundScape MIDI I/O base 320, 330, 340 or 350' CONFIG_SSCAPE_BASE 330
+      int '      SoundScape MIDI IRQ ' CONFIG_SSCAPE_IRQ 9
+      int '      SoundScape initialization DMA 0, 1 or 3' CONFIG_SSCAPE_DMA 3
+      hex '      SoundScape audio I/O base 534, 608, E84 or F44' CONFIG_SSCAPE_MSS_BASE 534
+      int '      SoundScape audio IRQ 7, 9, 10 or 11' CONFIG_SSCAPE_MSS_IRQ 11
   fi
   
-  dep_tristate 'MediaTrix AudioTrix Pro support' CONFIG_SOUND_TRIX $CONFIG_SOUND_OSS
+  dep_tristate '    MediaTrix AudioTrix Pro support' CONFIG_SOUND_TRIX $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_TRIX" = "y" ]; then
-      hex 'TRIX audio I/O base 530, 604, E80 or F40' CONFIG_TRIX_BASE 530
-      int 'TRIX audio IRQ 7, 9, 10 or 11' CONFIG_TRIX_IRQ 11
-      int 'TRIX audio DMA 0, 1 or 3' CONFIG_TRIX_DMA 0
-      int 'TRIX second (duplex) DMA 0, 1 or 3' CONFIG_TRIX_DMA2 3
-      hex 'TRIX MIDI I/O base 330, 370, 3B0 or 3F0' CONFIG_TRIX_MPU_BASE 330
-      int 'TRIX MIDI IRQ 3, 4, 5, 7 or 9' CONFIG_TRIX_MPU_IRQ 9
-      hex 'TRIX SB I/O base 220, 210, 230, 240, 250, 260 or 270' CONFIG_TRIX_SB_BASE 220
-      int 'TRIX SB IRQ 3, 4, 5 or 7' CONFIG_TRIX_SB_IRQ 7
-      int 'TRIX SB DMA 1 or 3' CONFIG_TRIX_SB_DMA 1
-      bool '  Have TRXPRO.HEX firmware file' CONFIG_TRIX_HAVE_BOOT
+      hex '      TRIX audio I/O base 530, 604, E80 or F40' CONFIG_TRIX_BASE 530
+      int '      TRIX audio IRQ 7, 9, 10 or 11' CONFIG_TRIX_IRQ 11
+      int '      TRIX audio DMA 0, 1 or 3' CONFIG_TRIX_DMA 0
+      int '      TRIX second (duplex) DMA 0, 1 or 3' CONFIG_TRIX_DMA2 3
+      hex '      TRIX MIDI I/O base 330, 370, 3B0 or 3F0' CONFIG_TRIX_MPU_BASE 330
+      int '      TRIX MIDI IRQ 3, 4, 5, 7 or 9' CONFIG_TRIX_MPU_IRQ 9
+      hex '      TRIX SB I/O base 220, 210, 230, 240, 250, 260 or 270' CONFIG_TRIX_SB_BASE 220
+      int '      TRIX SB IRQ 3, 4, 5 or 7' CONFIG_TRIX_SB_IRQ 7
+      int '      TRIX SB DMA 1 or 3' CONFIG_TRIX_SB_DMA 1
+      bool '        Have TRXPRO.HEX firmware file' CONFIG_TRIX_HAVE_BOOT
       if [ "$CONFIG_TRIX_HAVE_BOOT" = "y" ]; then
-  	string '  Full pathname of TRXPRO.HEX firmware file' CONFIG_TRIX_BOOT_FILE /etc/sound/trxpro.hex
+  	string '        Full pathname of TRXPRO.HEX firmware file' CONFIG_TRIX_BOOT_FILE /etc/sound/trxpro.hex
       fi
   fi
   
-  dep_tristate 'Support for OPTi MAD16 and/or Mozart based cards' CONFIG_SOUND_MAD16 $CONFIG_SOUND_OSS
+  dep_tristate '    Support for OPTi MAD16 and/or Mozart based cards' CONFIG_SOUND_MAD16 $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_MAD16" = "y" -o "$CONFIG_SOUND_MAD16" = "m" ]; then
-    bool 'Support MIDI in older MAD16 based cards (requires SB)' CONFIG_MAD16_OLDCARD
+    bool '      Support MIDI in older MAD16 based cards (requires SB)' CONFIG_MAD16_OLDCARD
   fi
   if [ "$CONFIG_SOUND_MAD16" = "y" ]; then
-      hex 'MAD16 audio I/O base 530, 604, E80 or F40' CONFIG_MAD16_BASE 530
-      int 'MAD16 audio IRQ 7, 9, 10 or 11' CONFIG_MAD16_IRQ 11
-      int 'MAD16 audio DMA 0, 1 or 3' CONFIG_MAD16_DMA 3
-      int 'MAD16 second (duplex) DMA 0, 1 or 3' CONFIG_MAD16_DMA2 0
-      hex 'MAD16 MIDI I/O base 300, 310, 320 or 330 (0 disables)' CONFIG_MAD16_MPU_BASE 330
-      int 'MAD16 MIDI IRQ 5, 7, 9 or 10' CONFIG_MAD16_MPU_IRQ 9
+      hex '      MAD16 audio I/O base 530, 604, E80 or F40' CONFIG_MAD16_BASE 530
+      int '      MAD16 audio IRQ 7, 9, 10 or 11' CONFIG_MAD16_IRQ 11
+      int '      MAD16 audio DMA 0, 1 or 3' CONFIG_MAD16_DMA 3
+      int '      MAD16 second (duplex) DMA 0, 1 or 3' CONFIG_MAD16_DMA2 0
+      hex '      MAD16 MIDI I/O base 300, 310, 320 or 330 (0 disables)' CONFIG_MAD16_MPU_BASE 330
+      int '      MAD16 MIDI IRQ 5, 7, 9 or 10' CONFIG_MAD16_MPU_IRQ 9
   fi
   
-  dep_tristate 'Full support for Turtle Beach WaveFront (Tropez Plus, Tropez, Maui) synth/soundcards' CONFIG_SOUND_WAVEFRONT $CONFIG_SOUND_OSS m
+  dep_tristate '    Full support for Turtle Beach WaveFront (Tropez Plus, Tropez, Maui) synth/soundcards' CONFIG_SOUND_WAVEFRONT $CONFIG_SOUND_OSS m
   if [ "$CONFIG_SOUND_WAVEFRONT" = "y" ]; then
-      hex 'I/O base for WaveFront 210, 230, 260, 290, 300, 320, 338 or 330' CONFIG_WAVEFRONT_BASE 330
-      int 'WaveFront IRQ 5, 9, 12 or 15' CONFIG_WAVEFRONT_IRQ 9
+      hex '      I/O base for WaveFront 210, 230, 260, 290, 300, 320, 338 or 330' CONFIG_WAVEFRONT_BASE 330
+      int '      WaveFront IRQ 5, 9, 12 or 15' CONFIG_WAVEFRONT_IRQ 9
   fi
 
-  dep_tristate 'Support for Crystal CS4232 based (PnP) cards' CONFIG_SOUND_CS4232 $CONFIG_SOUND_OSS
+  dep_tristate '    Support for Crystal CS4232 based (PnP) cards' CONFIG_SOUND_CS4232 $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_CS4232" = "y" ]; then
-      hex 'CS4232 audio I/O base (normally 530, 604, E80 or F40)' CONFIG_CS4232_BASE 530
-      int 'CS4232 audio IRQ 5, 7, 9, 11, 12 or 15' CONFIG_CS4232_IRQ 11
-      int 'CS4232 audio DMA 0, 1 or 3' CONFIG_CS4232_DMA 0
-      int 'CS4232 second (duplex) DMA 0, 1 or 3' CONFIG_CS4232_DMA2 3
-      hex 'CS4232 MIDI I/O base 330, 370, 3B0 or 3F0' CONFIG_CS4232_MPU_BASE 330
-      int 'CS4232 MIDI IRQ 5, 7, 9, 11, 12 or 15' CONFIG_CS4232_MPU_IRQ 9
+      hex '      CS4232 audio I/O base (normally 530, 604, E80 or F40)' CONFIG_CS4232_BASE 530
+      int '      CS4232 audio IRQ 5, 7, 9, 11, 12 or 15' CONFIG_CS4232_IRQ 11
+      int '      CS4232 audio DMA 0, 1 or 3' CONFIG_CS4232_DMA 0
+      int '      CS4232 second (duplex) DMA 0, 1 or 3' CONFIG_CS4232_DMA2 3
+      hex '      CS4232 MIDI I/O base 330, 370, 3B0 or 3F0' CONFIG_CS4232_MPU_BASE 330
+      int '      CS4232 MIDI IRQ 5, 7, 9, 11, 12 or 15' CONFIG_CS4232_MPU_IRQ 9
   fi
 
-  dep_tristate 'Support for Yamaha OPL3-SA2, SA3, and SAx based PnP cards' CONFIG_SOUND_OPL3SA2 $CONFIG_SOUND_OSS
+  dep_tristate '    Support for Yamaha OPL3-SA2, SA3, and SAx based PnP cards' CONFIG_SOUND_OPL3SA2 $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_OPL3SA2" = "y" ]; then
-      int 'Chipset (-1 for autoprobe, 2, or 3)' CONFIG_OPL3SA2_CHIPSET -1
-      hex 'OPL3SA2 audio I/O base (530 - F48 valid)' CONFIG_OPL3SA2_BASE 530
-      int 'OPL3SA2 audio IRQ 5, 7, 9, 11, 12 or 15' CONFIG_OPL3SA2_IRQ 9
-      int 'OPL3SA2 audio DMA 0, 1 or 3' CONFIG_OPL3SA2_DMA 0
-      int 'OPL3SA2 second (duplex) DMA 0, 1 or 3' CONFIG_OPL3SA2_DMA2 1
-      hex 'OPL3SA2 control I/O base (100 - FFE valid)' CONFIG_OPL3SA2_CTRL_BASE 370
-      hex 'OPL3SA2 MIDI I/O base (300 - 334 valid)' CONFIG_OPL3SA2_MPU_BASE 330
-      int 'OPL3SA2 MIDI IRQ 5, 7, 9, 11, 12 or 15' CONFIG_OPL3SA2_MPU_IRQ 9
+      int '      Chipset (-1 for autoprobe, 2, or 3)' CONFIG_OPL3SA2_CHIPSET -1
+      hex '      OPL3SA2 audio I/O base (530 - F48 valid)' CONFIG_OPL3SA2_BASE 530
+      int '      OPL3SA2 audio IRQ 5, 7, 9, 11, 12 or 15' CONFIG_OPL3SA2_IRQ 9
+      int '      OPL3SA2 audio DMA 0, 1 or 3' CONFIG_OPL3SA2_DMA 0
+      int '      OPL3SA2 second (duplex) DMA 0, 1 or 3' CONFIG_OPL3SA2_DMA2 1
+      hex '      OPL3SA2 control I/O base (100 - FFE valid)' CONFIG_OPL3SA2_CTRL_BASE 370
+      hex '      OPL3SA2 MIDI I/O base (300 - 334 valid)' CONFIG_OPL3SA2_MPU_BASE 330
+      int '      OPL3SA2 MIDI IRQ 5, 7, 9, 11, 12 or 15' CONFIG_OPL3SA2_MPU_IRQ 9
   fi
 
-  dep_tristate 'Limited support for Turtle Beach Wave Front (Maui, Tropez) synthesizers' CONFIG_SOUND_MAUI $CONFIG_SOUND_OSS
+  dep_tristate '    Limited support for Turtle Beach Wave Front (Maui, Tropez) synthesizers' CONFIG_SOUND_MAUI $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_MAUI" = "y" ]; then
-      hex 'I/O base for Maui 210, 230, 260, 290, 300, 320, 338 or 330' CONFIG_MAUI_BASE 330
-      int 'Maui IRQ 5, 9, 12 or 15' CONFIG_MAUI_IRQ 9
-      bool '  Have OSWF.MOT firmware file' CONFIG_MAUI_HAVE_BOOT
+      hex '      I/O base for Maui 210, 230, 260, 290, 300, 320, 338 or 330' CONFIG_MAUI_BASE 330
+      int '      Maui IRQ 5, 9, 12 or 15' CONFIG_MAUI_IRQ 9
+      bool '        Have OSWF.MOT firmware file' CONFIG_MAUI_HAVE_BOOT
       if [ "$CONFIG_MAUI_HAVE_BOOT" = "y" ]; then
-  	string '  Full pathname of OSWF.MOT firmware file' CONFIG_MAUI_BOOT_FILE /etc/sound/oswf.mot
+  	string '        Full pathname of OSWF.MOT firmware file' CONFIG_MAUI_BOOT_FILE /etc/sound/oswf.mot
       fi
   fi
 
   
-  dep_tristate 'Support for Aztech Sound Galaxy (non-PnP) cards' CONFIG_SOUND_SGALAXY $CONFIG_SOUND_OSS
+  dep_tristate '    Support for Aztech Sound Galaxy (non-PnP) cards' CONFIG_SOUND_SGALAXY $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_SGALAXY" = "y" ]; then
-      hex 'SGALAXY audio I/O base 530, 604, E80 or F40' CONFIG_SGALAXY_BASE 530
-      int 'SGALAXY audio IRQ 5, 7, 9, 11, 12 or 15' CONFIG_SGALAXY_IRQ 11
-      int 'SGALAXY audio DMA 0, 1 or 3' CONFIG_SGALAXY_DMA 0
-      int 'SGALAXY second (duplex) DMA 0, 1 or 3' CONFIG_SGALAXY_DMA2 3
-      hex 'SGALAXY SB I/O base 220 or 240' CONFIG_SGALAXY_SGBASE 220
+      hex '      SGALAXY audio I/O base 530, 604, E80 or F40' CONFIG_SGALAXY_BASE 530
+      int '      SGALAXY audio IRQ 5, 7, 9, 11, 12 or 15' CONFIG_SGALAXY_IRQ 11
+      int '      SGALAXY audio DMA 0, 1 or 3' CONFIG_SGALAXY_DMA 0
+      int '      SGALAXY second (duplex) DMA 0, 1 or 3' CONFIG_SGALAXY_DMA2 3
+      hex '      SGALAXY SB I/O base 220 or 240' CONFIG_SGALAXY_SGBASE 220
   fi
 
   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-    dep_tristate 'Support for AD1816(A) based cards (EXPERIMENTAL)' CONFIG_SOUND_AD1816 $CONFIG_SOUND_OSS
+    dep_tristate '    Support for AD1816(A) based cards (EXPERIMENTAL)' CONFIG_SOUND_AD1816 $CONFIG_SOUND_OSS
     if [ "$CONFIG_SOUND_AD1816" = "y" ]; then
-      hex 'AD1816 audio I/O base 530, 604, E80 or F40' CONFIG_AD1816_BASE 530
-      int 'AD1816 audio IRQ 5, 7, 9, 11, 12 or 15' CONFIG_AD1816_IRQ 7
-      int 'AD1816 audio DMA 0, 1 or 3' CONFIG_AD1816_DMA 0
-      int 'AD1816 second (duplex) DMA 0, 1 or 3' CONFIG_AD1816_DMA2 3
-      int 'AD1816 clock chip frequency' CONFIG_AD1816_CLOCK 33000
+      hex '      AD1816 audio I/O base 530, 604, E80 or F40' CONFIG_AD1816_BASE 530
+      int '      AD1816 audio IRQ 5, 7, 9, 11, 12 or 15' CONFIG_AD1816_IRQ 7
+      int '      AD1816 audio DMA 0, 1 or 3' CONFIG_AD1816_DMA 0
+      int '      AD1816 second (duplex) DMA 0, 1 or 3' CONFIG_AD1816_DMA2 3
+      int '      AD1816 clock chip frequency' CONFIG_AD1816_CLOCK 33000
     fi
   fi
   
-  dep_tristate 'Yamaha OPL3-SA1 audio controller' CONFIG_SOUND_OPL3SA1 $CONFIG_SOUND_OSS
+  dep_tristate '    Yamaha OPL3-SA1 audio controller' CONFIG_SOUND_OPL3SA1 $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_OPL3SA1" = "y" ]; then
-      hex 'OPL3-SA1 audio I/O base 530, 604, E80 or F40' CONFIG_OPL3SA1_BASE 530
-      int 'OPL3-SA1 audio IRQ 7, 9, 10 or 11' CONFIG_OPL3SA1_IRQ 11
-      int 'OPL3-SA1 audio DMA 0, 1 or 3' CONFIG_OPL3SA1_DMA 0
-      int 'OPL3-SA1 second (duplex) DMA 0, 1 or 3' CONFIG_OPL3SA1_DMA2 3
-      hex 'OPL3-SA1 MIDI I/O base 330, 370, 3B0 or 3F0' CONFIG_OPL3SA1_MPU_BASE 330
-      int 'OPL3-SA1 MIDI IRQ 3, 4, 5, 7 or 9' CONFIG_OPL3SA1_MPU_IRQ 9
+      hex '      OPL3-SA1 audio I/O base 530, 604, E80 or F40' CONFIG_OPL3SA1_BASE 530
+      int '      OPL3-SA1 audio IRQ 7, 9, 10 or 11' CONFIG_OPL3SA1_IRQ 11
+      int '      OPL3-SA1 audio DMA 0, 1 or 3' CONFIG_OPL3SA1_DMA 0
+      int '      OPL3-SA1 second (duplex) DMA 0, 1 or 3' CONFIG_OPL3SA1_DMA2 3
+      hex '      OPL3-SA1 MIDI I/O base 330, 370, 3B0 or 3F0' CONFIG_OPL3SA1_MPU_BASE 330
+      int '      OPL3-SA1 MIDI IRQ 3, 4, 5, 7 or 9' CONFIG_OPL3SA1_MPU_IRQ 9
   fi
   
-  dep_tristate 'SoftOSS software wave table engine' CONFIG_SOUND_SOFTOSS $CONFIG_SOUND_OSS
+  dep_tristate '    SoftOSS software wave table engine' CONFIG_SOUND_SOFTOSS $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_SOFTOSS" = "y" ]; then
-      int 'Sampling rate for SoftOSS 8000 to 48000' CONFIG_SOFTOSS_RATE 22050
-      int 'Max # of concurrent voices for SoftOSS 4 to 32' CONFIG_SOFTOSS_VOICES 32
+      int '      Sampling rate for SoftOSS 8000 to 48000' CONFIG_SOFTOSS_RATE 22050
+      int '      Max # of concurrent voices for SoftOSS 4 to 32' CONFIG_SOFTOSS_VOICES 32
   fi
   
-  dep_tristate 'FM synthesizer (YM3812/OPL-3) support' CONFIG_SOUND_YM3812 $CONFIG_SOUND_OSS
+  dep_tristate '    FM synthesizer (YM3812/OPL-3) support' CONFIG_SOUND_YM3812 $CONFIG_SOUND_OSS
   
-  dep_tristate 'Loopback MIDI device support' CONFIG_SOUND_VMIDI $CONFIG_SOUND_OSS
+  dep_tristate '    Loopback MIDI device support' CONFIG_SOUND_VMIDI $CONFIG_SOUND_OSS
   
-  dep_tristate '6850 UART support' CONFIG_SOUND_UART6850 $CONFIG_SOUND_OSS
+  dep_tristate '    6850 UART support' CONFIG_SOUND_UART6850 $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_UART6850" = "y" ]; then
-      hex 'I/O base for UART 6850 MIDI port (Unknown)' CONFIG_U6850_BASE 0
-      int 'UART6850 IRQ (Unknown)' CONFIG_U6850_IRQ -1
+      hex '      I/O base for UART 6850 MIDI port (Unknown)' CONFIG_U6850_BASE 0
+      int '      UART6850 IRQ (Unknown)' CONFIG_U6850_IRQ -1
   fi
   
   if [ "$CONFIG_ARM" = "y" ]; then
-    dep_tristate 'VIDC 16-bit sound' CONFIG_SOUND_VIDC $CONFIG_SOUND_OSS
-    dep_tristate 'Netwinder WaveArtist' CONFIG_SOUND_WAVEARTIST $CONFIG_SOUND_OSS
+    dep_tristate '    VIDC 16-bit sound' CONFIG_SOUND_VIDC $CONFIG_SOUND_OSS
+    dep_tristate '    Netwinder WaveArtist' CONFIG_SOUND_WAVEARTIST $CONFIG_SOUND_OSS
     if [ "$CONFIG_SOUND_WAVEARTIST" != "n" ]; then
-      hex '  WaveArtist I/O base' CONFIG_WAVEARTIST_BASE 250
-      int '  WaveArtist IRQ' CONFIG_WAVEARTIST_IRQ 12
-      int '  WaveArtist DMA' CONFIG_WAVEARTIST_DMA 3
-      int '  WaveArtist second DMA' CONFIG_WAVEARTIST_DMA2 7
+      hex '        WaveArtist I/O base' CONFIG_WAVEARTIST_BASE 250
+      int '        WaveArtist IRQ' CONFIG_WAVEARTIST_IRQ 12
+      int '        WaveArtist DMA' CONFIG_WAVEARTIST_DMA 3
+      int '        WaveArtist second DMA' CONFIG_WAVEARTIST_DMA2 7
     fi
   fi
   
-  dep_tristate 'NM256AV/NM256ZX audio support' CONFIG_SOUND_NM256 $CONFIG_SOUND_OSS
-  dep_tristate 'Yamaha PCI native mode support' CONFIG_SOUND_YMFPCI $CONFIG_SOUND_OSS
+  dep_tristate '    NM256AV/NM256ZX audio support' CONFIG_SOUND_NM256 $CONFIG_SOUND_OSS
+  dep_tristate '    Yamaha PCI native mode support' CONFIG_SOUND_YMFPCI $CONFIG_SOUND_OSS
   if [ "$CONFIG_SOUND_YMFPCI" != "n" ]; then
-    bool '  Yamaha PCI legacy ports support' CONFIG_SOUND_YMFPCI_LEGACY
+    bool '      Yamaha PCI legacy ports support' CONFIG_SOUND_YMFPCI_LEGACY
   fi
 
   # Additional low level drivers.
@@ -328,3 +331,5 @@ if [ "$CONFIG_SOUND_OSS" = "y" -o "$CONF
   endmenu
 fi
 
+fi
+endmenu
diff -Naurp linux-2.2.26-vanilla/drivers/sound/lowlevel/Config.in linux-2.2.27-rc2/drivers/sound/lowlevel/Config.in
--- linux-2.2.26-vanilla/drivers/sound/lowlevel/Config.in	2001-03-25 18:31:34.000000000 +0200
+++ linux-2.2.27-rc2/drivers/sound/lowlevel/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -1,57 +1,57 @@
-dep_tristate 'ACI mixer (miroPCM12)' CONFIG_ACI_MIXER $CONFIG_SOUND_OSS
-dep_tristate 'MSP3400 Audio for BT848' CONFIG_VIDEO_MSP3400 $CONFIG_VIDEO_BT848 $CONFIG_SOUND
+dep_tristate '  ACI mixer (miroPCM12)' CONFIG_ACI_MIXER $CONFIG_SOUND_OSS
+dep_tristate '  MSP3400 Audio for BT848' CONFIG_VIDEO_MSP3400 $CONFIG_VIDEO_BT848 $CONFIG_SOUND
 
-dep_tristate 'AWE32 synth' CONFIG_AWE32_SYNTH $CONFIG_SOUND_OSS
+dep_tristate '  AWE32 synth' CONFIG_AWE32_SYNTH $CONFIG_SOUND_OSS
 
 if [ "$CONFIG_SOUND_OSS" = "y" -o "$CONFIG_SOUND" = "m" ]; then
-    dep_tristate 'Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16 $CONFIG_SOUND_OSS
+    dep_tristate '  Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16 $CONFIG_SOUND_OSS
     if [ "$CONFIG_AEDSP16" = "y" -o "$CONFIG_AEDSP16" = "m" ]; then
 	hex '  I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
-        hex 'I/O base for MPU401 Check from manual of the card' CONFIG_MPU_BASE 330
+        hex '  I/O base for MPU401 Check from manual of the card' CONFIG_MPU_BASE 330
     fi
 
     if [ "$CONFIG_AEDSP16" = "y" -o "$CONFIG_AEDSP16" = "m" ]; then
-	comment 'SC-6600 Audio Cards have no jumper switches at all'
-	bool 'SC-6600 based audio cards (new Audio Excel DSP 16)' CONFIG_SC6600
+	comment '  SC-6600 Audio Cards have no jumper switches at all'
+	bool '  SC-6600 based audio cards (new Audio Excel DSP 16)' CONFIG_SC6600
 	if [ "$CONFIG_SC6600" = "y" ]; then
-	    comment 'SC-6600 specific configuration'
-	    bool 'Activate SC-6600 Joystick Interface' CONFIG_SC6600_JOY
-	    int 'SC-6600 CDROM Interface (4=None, 3=IDE, 1=Panasonic, 0=?Sony?)' CONFIG_SC6600_CDROM 4
-	    hex 'SC-6600 CDROM Interface I/O Address' CONFIG_SC6600_CDROMBASE 0
+	    comment '  SC-6600 specific configuration'
+	    bool '  Activate SC-6600 Joystick Interface' CONFIG_SC6600_JOY
+	    int '  SC-6600 CDROM Interface (4=None, 3=IDE, 1=Panasonic, 0=?Sony?)' CONFIG_SC6600_CDROM 4
+	    hex '  SC-6600 CDROM Interface I/O Address' CONFIG_SC6600_CDROMBASE 0
 	fi
 
 	if [ "$CONFIG_SOUND_SB" = "y" -o "$CONFIG_SOUND_SB" = "m" ]; then
 	    if [ "$CONFIG_AEDSP16_MSS" != "y" ]; then
-		bool 'Audio Excel DSP 16 (SBPro emulation)' CONFIG_AEDSP16_SBPRO
+		bool '  Audio Excel DSP 16 (SBPro emulation)' CONFIG_AEDSP16_SBPRO
 		if [ "$CONFIG_AEDSP16_SBPRO" = "y" ]; then
-		    comment 'Audio Excel DSP 16 [Sound Blaster Pro]'
-		    hex 'I/O base for Audio Excel DSP 16 220, 240' CONFIG_AEDSP16_BASE $CONFIG_SB_BASE 220
-		    int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' CONFIG_AEDSP16_SB_IRQ $CONFIG_SB_IRQ 5
-		    int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_SB_DMA $CONFIG_SB_DMA 0
+		    comment '  Audio Excel DSP 16 [Sound Blaster Pro]'
+		    hex '  I/O base for Audio Excel DSP 16 220, 240' CONFIG_AEDSP16_BASE $CONFIG_SB_BASE 220
+		    int '  Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' CONFIG_AEDSP16_SB_IRQ $CONFIG_SB_IRQ 5
+		    int '  Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_SB_DMA $CONFIG_SB_DMA 0
 		fi
 	    fi
 	fi
 
 	if [ "$CONFIG_SOUND_MSS" = "y" -o "$CONFIG_SOUND_MSS" = "m" ]; then
 	    if [ "$CONFIG_AEDSP16_SBPRO" != "y" ]; then
-		bool 'Audio Excel DSP 16 (MSS emulation)' CONFIG_AEDSP16_MSS
+		bool '  Audio Excel DSP 16 (MSS emulation)' CONFIG_AEDSP16_MSS
 		if [ "$CONFIG_AEDSP16_MSS" = "y" ]; then
-		    comment 'Audio Excel DSP 16 [Microsoft Sound System]'
-		    hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
-		    int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' CONFIG_AEDSP16_MSS_IRQ $CONFIG_MSS_IRQ 5
-		    int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_MSS_DMA $CONFIG_MSS_DMA 1
+		    comment '  Audio Excel DSP 16 [Microsoft Sound System]'
+		    hex '  I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
+		    int '  Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' CONFIG_AEDSP16_MSS_IRQ $CONFIG_MSS_IRQ 5
+		    int '  Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_MSS_DMA $CONFIG_MSS_DMA 1
 		fi
 	    fi
 	fi
 
 	if [ "$CONFIG_SOUND_MPU401" = "y" -o "$CONFIG_SOUND_MPU401" = "m" ]; then
-	    bool 'Audio Excel DSP 16 (MPU401 emulation)' CONFIG_AEDSP16_MPU401
+	    bool '  Audio Excel DSP 16 (MPU401 emulation)' CONFIG_AEDSP16_MPU401
 	    if [ "$CONFIG_AEDSP16_MPU401" = "y" ]; then
-		comment 'Audio Excel DSP 16 [MPU-401]'
+		comment '  Audio Excel DSP 16 [MPU-401]'
 		if [ "$CONFIG_AEDSP16_SBPRO" != "y" -a "$CONFIG_AEDSP16_MSS" != "y" ]; then
-		    hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
+		    hex '  I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
 		fi
-		int 'MPU401 IRQ for Audio Excel DSP 16 5, 7, 9, 10 or 0 (disable)' CONFIG_AEDSP16_MPU_IRQ $CONFIG_MPU_IRQ
+		int '  MPU401 IRQ for Audio Excel DSP 16 5, 7, 9, 10 or 0 (disable)' CONFIG_AEDSP16_MPU_IRQ $CONFIG_MPU_IRQ
 	    fi
 	fi
     fi
diff -Naurp linux-2.2.26-vanilla/drivers/telephony/Config.in linux-2.2.27-rc2/drivers/telephony/Config.in
--- linux-2.2.26-vanilla/drivers/telephony/Config.in	2001-03-25 18:31:44.000000000 +0200
+++ linux-2.2.27-rc2/drivers/telephony/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -5,5 +5,5 @@ mainmenu_option next_comment
 comment 'Telephony Support'
 
 tristate 'Linux telephony support' CONFIG_PHONE
-dep_tristate 'QuickNet Internet LineJack/PhoneJack support' CONFIG_PHONE_IXJ $CONFIG_PHONE
+dep_tristate '  QuickNet Internet LineJack/PhoneJack support' CONFIG_PHONE_IXJ $CONFIG_PHONE
 endmenu
diff -Naurp linux-2.2.26-vanilla/drivers/video/Config.in linux-2.2.27-rc2/drivers/video/Config.in
--- linux-2.2.26-vanilla/drivers/video/Config.in	2001-03-25 18:37:37.000000000 +0200
+++ linux-2.2.27-rc2/drivers/video/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -6,23 +6,23 @@ if [ "$CONFIG_FB" = "y" ]; then
   define_bool CONFIG_DUMMY_CONSOLE y
   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
     if [ "$CONFIG_AMIGA" = "y" -o "$CONFIG_PCI" = "y" ]; then
-      tristate 'Permedia2 support (experimental)' CONFIG_FB_PM2
+      tristate '  Permedia2 support (experimental)' CONFIG_FB_PM2
       if [ "$CONFIG_FB_PM2" = "y" ]; then
         if [ "$CONFIG_PCI" = "y" ]; then
-          bool '  enable FIFO disconnect feature' CONFIG_FB_PM2_FIFO_DISCONNECT
-          bool '  generic Permedia2 PCI board support' CONFIG_FB_PM2_PCI
+          bool '    enable FIFO disconnect feature' CONFIG_FB_PM2_FIFO_DISCONNECT
+          bool '    generic Permedia2 PCI board support' CONFIG_FB_PM2_PCI
         fi
         if [ "$CONFIG_AMIGA" = "y" ]; then
-          bool '  Phase5 CVisionPPC/BVisionPPC support' CONFIG_FB_PM2_CVPPC
+          bool '    Phase5 CVisionPPC/BVisionPPC support' CONFIG_FB_PM2_CVPPC
         fi
       fi
     fi
   fi
   if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
-    bool 'Acorn VIDC support' CONFIG_FB_ACORN
+    bool '  Acorn VIDC support' CONFIG_FB_ACORN
   fi
   if [ "$CONFIG_ARCH_NETWINDER" = "y" ]; then
-    tristate 'Cyber2000 support' CONFIG_FB_CYBER2000
+    tristate '  Cyber2000 support' CONFIG_FB_CYBER2000
   fi
   if [ "$CONFIG_APOLLO" = "y" ]; then
     define_bool CONFIG_FB_APOLLO y
@@ -31,124 +31,124 @@ if [ "$CONFIG_FB" = "y" ]; then
     define_bool CONFIG_FB_Q40 y
   fi
   if [ "$CONFIG_AMIGA" = "y" ]; then
-    bool 'Amiga native chipset support' CONFIG_FB_AMIGA
+    bool '  Amiga native chipset support' CONFIG_FB_AMIGA
     if [ "$CONFIG_FB_AMIGA" != "n" ]; then
-      bool 'Amiga OCS chipset support' CONFIG_FB_AMIGA_OCS
-      bool 'Amiga ECS chipset support' CONFIG_FB_AMIGA_ECS
-      bool 'Amiga AGA chipset support' CONFIG_FB_AMIGA_AGA
+      bool '  Amiga OCS chipset support' CONFIG_FB_AMIGA_OCS
+      bool '  Amiga ECS chipset support' CONFIG_FB_AMIGA_ECS
+      bool '  Amiga AGA chipset support' CONFIG_FB_AMIGA_AGA
     fi
   fi
   if [ "$CONFIG_ZORRO" = "y" ]; then
-    tristate 'Amiga CyberVision support' CONFIG_FB_CYBER
+    tristate '  Amiga CyberVision support' CONFIG_FB_CYBER
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      bool 'Amiga CyberVision3D support (experimental)' CONFIG_FB_VIRGE
-      tristate 'Amiga RetinaZ3 support' CONFIG_FB_RETINAZ3
-      tristate 'Amiga CLgen driver' CONFIG_FB_CLGEN
-      bool 'Amiga FrameMaster II/Rainbow II support (experimental)' CONFIG_FB_FM2
+      bool '  Amiga CyberVision3D support (experimental)' CONFIG_FB_VIRGE
+      tristate '  Amiga RetinaZ3 support' CONFIG_FB_RETINAZ3
+      tristate '  Amiga CLgen driver' CONFIG_FB_CLGEN
+      bool '  Amiga FrameMaster II/Rainbow II support (experimental)' CONFIG_FB_FM2
     fi
   fi
   if [ "$CONFIG_ATARI" = "y" ]; then
-    bool 'Atari native chipset support' CONFIG_FB_ATARI
+    bool '  Atari native chipset support' CONFIG_FB_ATARI
   fi
   if [ "$CONFIG_ATARI" = "y" -o "$CONFIG_PCI" = "y" ]; then
-    tristate 'ATI Mach64 display support' CONFIG_FB_ATY
+    tristate '  ATI Mach64 display support' CONFIG_FB_ATY
   fi
   if [ "$CONFIG_PPC" = "y" ]; then
-    bool 'Open Firmware frame buffer device support' CONFIG_FB_OF
+    bool '  Open Firmware frame buffer device support' CONFIG_FB_OF
     if [ "$CONFIG_FB_OF" = "y" ]; then
-      bool 'Apple "control" display support' CONFIG_FB_CONTROL
-      bool 'Apple "platinum" display support' CONFIG_FB_PLATINUM
-      bool 'Apple "valkyrie" display support' CONFIG_FB_VALKYRIE
-      bool 'IMS Twin Turbo display support' CONFIG_FB_IMSTT
-      bool 'Chips 65550 display support' CONFIG_FB_CT65550
-      bool 'S3 Trio display support' CONFIG_FB_S3TRIO
-      bool 'Backward compatibility mode for Xpmac' CONFIG_FB_COMPAT_XPMAC
+      bool '    Apple "control" display support' CONFIG_FB_CONTROL
+      bool '    Apple "platinum" display support' CONFIG_FB_PLATINUM
+      bool '    Apple "valkyrie" display support' CONFIG_FB_VALKYRIE
+      bool '    IMS Twin Turbo display support' CONFIG_FB_IMSTT
+      bool '    Chips 65550 display support' CONFIG_FB_CT65550
+      bool '    S3 Trio display support' CONFIG_FB_S3TRIO
+      bool '    Backward compatibility mode for Xpmac' CONFIG_FB_COMPAT_XPMAC
     fi
   fi
   if [ "$CONFIG_MAC" = "y" ]; then
-    bool 'Apple "valkyrie" display support' CONFIG_FB_VALKYRIE
-#    bool 'Apple DAFB display support' CONFIG_FB_DAFB
+    bool '  Apple "valkyrie" display support' CONFIG_FB_VALKYRIE
+#    bool '  Apple DAFB display support' CONFIG_FB_DAFB
     define_bool CONFIG_FB_MAC y
   fi
   if [ "$CONFIG_HP300" = "y" ]; then
     define_bool CONFIG_FB_HP300 y
   fi
   if [ "$ARCH" = "alpha" ]; then
-    tristate 'TGA framebuffer support' CONFIG_FB_TGA
+    tristate '  TGA framebuffer support' CONFIG_FB_TGA
   fi
   if [ "$ARCH" = "i386" ]; then
-    bool 'VESA VGA graphics console' CONFIG_FB_VESA
-    bool 'VGA 16-color graphics console' CONFIG_FB_VGA16
+    bool '  VESA VGA graphics console' CONFIG_FB_VESA
+    bool '  VGA 16-color graphics console' CONFIG_FB_VGA16
     define_bool CONFIG_VIDEO_SELECT y
   fi
   if [ "$CONFIG_VISWS" = "y" ]; then
-    tristate 'SGI Visual Workstation framebuffer support' CONFIG_FB_SGIVW
+    tristate '  SGI Visual Workstation framebuffer support' CONFIG_FB_SGIVW
     define_bool CONFIG_BUS_I2C y
   fi
   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
     if [ "$CONFIG_PCI" = "y" -a "$ARCH" != "sparc" -a "$ARCH" != "sparc64" ]; then
-      tristate 'Matrox acceleration' CONFIG_FB_MATROX
+      tristate '  Matrox acceleration' CONFIG_FB_MATROX
       if  [ "$CONFIG_FB_MATROX" != "n" ]; then
-        bool '  Millennium I/II support' CONFIG_FB_MATROX_MILLENIUM
-        bool '  Mystique support' CONFIG_FB_MATROX_MYSTIQUE
-        bool '  G100/G200 support' CONFIG_FB_MATROX_G100
-        bool '  Multihead support' CONFIG_FB_MATROX_MULTIHEAD
+        bool '    Millennium I/II support' CONFIG_FB_MATROX_MILLENIUM
+        bool '    Mystique support' CONFIG_FB_MATROX_MYSTIQUE
+        bool '    G100/G200 support' CONFIG_FB_MATROX_G100
+        bool '    Multihead support' CONFIG_FB_MATROX_MULTIHEAD
       fi
-      tristate 'ATI Rage128 display support' CONFIG_FB_ATY128
+      tristate '  ATI Rage128 display support' CONFIG_FB_ATY128
     fi
   fi
   if [ "$ARCH" = "sparc" -o "$ARCH" = "sparc64" ]; then
     bool 'SBUS and UPA framebuffers' CONFIG_FB_SBUS
     if [ "$CONFIG_FB_SBUS" != "n" ]; then
       if [ "$ARCH" = "sparc64" ]; then
-	bool '  Creator/Creator3D support' CONFIG_FB_CREATOR
+	bool '    Creator/Creator3D support' CONFIG_FB_CREATOR
       fi
-      bool '  CGsix (GX,TurboGX) support' CONFIG_FB_CGSIX
-      bool '  BWtwo support' CONFIG_FB_BWTWO
-      bool '  CGthree support' CONFIG_FB_CGTHREE
+      bool '    CGsix (GX,TurboGX) support' CONFIG_FB_CGSIX
+      bool '    BWtwo support' CONFIG_FB_BWTWO
+      bool '    CGthree support' CONFIG_FB_CGTHREE
       if [ "$ARCH" = "sparc" ]; then
-        bool '  TCX (SS4/SS5 only) support' CONFIG_FB_TCX
-	bool '  CGfourteen (SX) support' CONFIG_FB_CGFOURTEEN
+        bool '    TCX (SS4/SS5 only) support' CONFIG_FB_TCX
+	bool '    CGfourteen (SX) support' CONFIG_FB_CGFOURTEEN
       fi
-      bool '  Leo (ZX) support' CONFIG_FB_LEO
+      bool '    Leo (ZX) support' CONFIG_FB_LEO
     fi
   fi
   if [ "$ARCH" = "sparc" ]; then
     if [ "$CONFIG_PCI" = "y" ]; then
-      bool 'PCI framebuffers' CONFIG_FB_PCI
+      bool '  PCI framebuffers' CONFIG_FB_PCI
       if [ "$CONFIG_FB_PCI" != "n" ]; then
-        bool '  IGA 168x display support' CONFIG_FB_IGA
+        bool '    IGA 168x display support' CONFIG_FB_IGA
       fi
     fi
   fi
   if [ "$ARCH" = "sparc64" ]; then
     if [ "$CONFIG_PCI" != "n" ]; then
-      bool 'PCI framebuffers' CONFIG_FB_PCI
+      bool '  PCI framebuffers' CONFIG_FB_PCI
       if [ "$CONFIG_FB_PCI" != "n" ]; then
-        bool '  ATI Mach64 display support' CONFIG_FB_ATY
+        bool '    ATI Mach64 display support' CONFIG_FB_ATY
       fi
     fi
   fi
-  tristate 'Virtual Frame Buffer support (ONLY FOR TESTING!)' CONFIG_FB_VIRTUAL
+  tristate '  Virtual Frame Buffer support (ONLY FOR TESTING!)' CONFIG_FB_VIRTUAL
 
-  bool 'Advanced low level driver options' CONFIG_FBCON_ADVANCED
+  bool '  Advanced low level driver options' CONFIG_FBCON_ADVANCED
   if [ "$CONFIG_FBCON_ADVANCED" = "y" ]; then
-    tristate 'Monochrome support' CONFIG_FBCON_MFB
-    tristate '2 bpp packed pixels support' CONFIG_FBCON_CFB2
-    tristate '4 bpp packed pixels support' CONFIG_FBCON_CFB4
-    tristate '8 bpp packed pixels support' CONFIG_FBCON_CFB8
-    tristate '16 bpp packed pixels support' CONFIG_FBCON_CFB16
-    tristate '24 bpp packed pixels support' CONFIG_FBCON_CFB24
-    tristate '32 bpp packed pixels support' CONFIG_FBCON_CFB32
-    tristate 'Amiga bitplanes support' CONFIG_FBCON_AFB
-    tristate 'Amiga interleaved bitplanes support' CONFIG_FBCON_ILBM
-    tristate 'Atari interleaved bitplanes (2 planes) support' CONFIG_FBCON_IPLAN2P2
-    tristate 'Atari interleaved bitplanes (4 planes) support' CONFIG_FBCON_IPLAN2P4
-    tristate 'Atari interleaved bitplanes (8 planes) support' CONFIG_FBCON_IPLAN2P8
-#   tristate 'Atari interleaved bitplanes (16 planes) support' CONFIG_FBCON_IPLAN2P16
-    tristate 'Mac variable bpp packed pixels support' CONFIG_FBCON_MAC
-    bool 'VGA 16-color planar support' CONFIG_FBCON_VGA_PLANES
-    tristate 'VGA characters/attributes support' CONFIG_FBCON_VGA
+    tristate '    Monochrome support' CONFIG_FBCON_MFB
+    tristate '    2 bpp packed pixels support' CONFIG_FBCON_CFB2
+    tristate '    4 bpp packed pixels support' CONFIG_FBCON_CFB4
+    tristate '    8 bpp packed pixels support' CONFIG_FBCON_CFB8
+    tristate '    16 bpp packed pixels support' CONFIG_FBCON_CFB16
+    tristate '    24 bpp packed pixels support' CONFIG_FBCON_CFB24
+    tristate '    32 bpp packed pixels support' CONFIG_FBCON_CFB32
+    tristate '    Amiga bitplanes support' CONFIG_FBCON_AFB
+    tristate '    Amiga interleaved bitplanes support' CONFIG_FBCON_ILBM
+    tristate '    Atari interleaved bitplanes (2 planes) support' CONFIG_FBCON_IPLAN2P2
+    tristate '    Atari interleaved bitplanes (4 planes) support' CONFIG_FBCON_IPLAN2P4
+    tristate '    Atari interleaved bitplanes (8 planes) support' CONFIG_FBCON_IPLAN2P8
+#   tristate '    Atari interleaved bitplanes (16 planes) support' CONFIG_FBCON_IPLAN2P16
+    tristate '    Mac variable bpp packed pixels support' CONFIG_FBCON_MAC
+        bool '    VGA 16-color planar support' CONFIG_FBCON_VGA_PLANES
+    tristate '    VGA characters/attributes support' CONFIG_FBCON_VGA
   else
     # Guess what we need
     if [ "$CONFIG_FB_ACORN" = "y" -o "$CONFIG_FB_AMIGA" = "y" -o \
@@ -304,34 +304,34 @@ if [ "$CONFIG_FB" = "y" ]; then
       fi
     fi
   fi
-  bool 'Support only 8 pixels wide fonts' CONFIG_FBCON_FONTWIDTH8_ONLY
+  bool '  Support only 8 pixels wide fonts' CONFIG_FBCON_FONTWIDTH8_ONLY
   if [ "$ARCH" = "sparc" -o "$ARCH" = "sparc64" ]; then
-    bool 'Sparc console 8x16 font' CONFIG_FONT_SUN8x16
+    bool '  Sparc console 8x16 font' CONFIG_FONT_SUN8x16
     if [ "$CONFIG_FBCON_FONTWIDTH8_ONLY" = "n" ]; then
-      bool 'Sparc console 12x22 font (not supported by all drivers)' CONFIG_FONT_SUN12x22
+      bool '  Sparc console 12x22 font (not supported by all drivers)' CONFIG_FONT_SUN12x22
     fi
-    bool 'Select other fonts' CONFIG_FBCON_FONTS
+    bool '  Select other fonts' CONFIG_FBCON_FONTS
     if [ "$CONFIG_FBCON_FONTS" = "y" ]; then
-      bool '  VGA 8x8 font' CONFIG_FONT_8x8
-      bool '  VGA 8x16 font' CONFIG_FONT_8x16
+      bool '    VGA 8x8 font' CONFIG_FONT_8x8
+      bool '    VGA 8x16 font' CONFIG_FONT_8x16
       if [ "$CONFIG_FBCON_FONTWIDTH8_ONLY" = "n" ]; then
-        bool '  Mac console 6x11 font (not supported by all drivers)' CONFIG_FONT_6x11
+        bool '    Mac console 6x11 font (not supported by all drivers)' CONFIG_FONT_6x11
       fi
-      bool '  Pearl (old m68k) console 8x8 font' CONFIG_FONT_PEARL_8x8
-      bool '  Acorn console 8x8 font' CONFIG_FONT_ACORN_8x8
+      bool '    Pearl (old m68k) console 8x8 font' CONFIG_FONT_PEARL_8x8
+      bool '    Acorn console 8x8 font' CONFIG_FONT_ACORN_8x8
     fi
   else
-    bool 'Select compiled-in fonts' CONFIG_FBCON_FONTS
+    bool '  Select compiled-in fonts' CONFIG_FBCON_FONTS
     if [ "$CONFIG_FBCON_FONTS" = "y" ]; then
-      bool '  VGA 8x8 font' CONFIG_FONT_8x8
-      bool '  VGA 8x16 font' CONFIG_FONT_8x16
-      bool '  Sparc console 8x16 font' CONFIG_FONT_SUN8x16
+      bool '    VGA 8x8 font' CONFIG_FONT_8x8
+      bool '    VGA 8x16 font' CONFIG_FONT_8x16
+      bool '    Sparc console 8x16 font' CONFIG_FONT_SUN8x16
       if [ "$CONFIG_FBCON_FONTWIDTH8_ONLY" = "n" ]; then
-        bool '  Sparc console 12x22 font (not supported by all drivers)' CONFIG_FONT_SUN12x22
-        bool '  Mac console 6x11 font (not supported by all drivers)' CONFIG_FONT_6x11
+        bool '    Sparc console 12x22 font (not supported by all drivers)' CONFIG_FONT_SUN12x22
+        bool '    Mac console 6x11 font (not supported by all drivers)' CONFIG_FONT_6x11
       fi
-      bool '  Pearl (old m68k) console 8x8 font' CONFIG_FONT_PEARL_8x8
-      bool '  Acorn console 8x8 font' CONFIG_FONT_ACORN_8x8
+      bool '    Pearl (old m68k) console 8x8 font' CONFIG_FONT_PEARL_8x8
+      bool '    Acorn console 8x8 font' CONFIG_FONT_ACORN_8x8
     else
       define_bool CONFIG_FONT_8x8 y
       define_bool CONFIG_FONT_8x16 y
diff -Naurp linux-2.2.26-vanilla/fs/Config.in linux-2.2.27-rc2/fs/Config.in
--- linux-2.2.26-vanilla/fs/Config.in	2001-03-25 18:37:38.000000000 +0200
+++ linux-2.2.27-rc2/fs/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -2,7 +2,7 @@
 # Filesystem configuration
 #
 mainmenu_option next_comment
-comment 'Filesystems'
+comment 'File systems'
 
 bool	 'Quota support' CONFIG_QUOTA
 tristate 'Kernel automounter support' CONFIG_AUTOFS_FS
@@ -44,15 +44,15 @@ fi
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'QNX4 filesystem support (read only) (EXPERIMENTAL)' CONFIG_QNX4FS_FS
   if [ "$CONFIG_QNX4FS_FS" != "n" ]; then
-    bool '   QNX4FS write support (DANGEROUS)' CONFIG_QNX4FS_RW
+    bool '  QNX4FS write support (DANGEROUS)' CONFIG_QNX4FS_RW
   fi    
 fi
 tristate 'ROM filesystem support' CONFIG_ROMFS_FS
-tristate 'Second extended fs support' CONFIG_EXT2_FS
+tristate 'Ext2 filesystem support' CONFIG_EXT2_FS
 tristate 'System V and Coherent filesystem support' CONFIG_SYSV_FS
 tristate 'UFS filesystem support' CONFIG_UFS_FS
 if [ "$CONFIG_UFS_FS" != "n" ]; then
-  bool '   UFS filesystem write support (experimental)' CONFIG_UFS_FS_WRITE
+  bool '  UFS filesystem write support (experimental)' CONFIG_UFS_FS_WRITE
 fi
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'SGI EFS filesystem support (read only) (experimental)' CONFIG_EFS_FS
@@ -70,16 +70,16 @@ if [ "$CONFIG_INET" = "y" ]; then
   tristate 'Coda filesystem support (advanced network fs)' CONFIG_CODA_FS
   tristate 'NFS filesystem support' CONFIG_NFS_FS
   if [ "$CONFIG_NFS_FS" != "n" ]; then
-    bool '   NFS Version 3 filesystem support' CONFIG_NFS_V3
+    bool '  NFS Version 3 filesystem support' CONFIG_NFS_V3
   fi
   if [ "$CONFIG_NFS_FS" = "y" -a "$CONFIG_IP_PNP" = "y" ]; then
-    bool '   Root file system on NFS' CONFIG_ROOT_NFS
+    bool '  Root file system on NFS' CONFIG_ROOT_NFS
   fi
   tristate 'NFS server support' CONFIG_NFSD
   if [ "$CONFIG_NFSD" != "n" ]; then
-    bool '   NFS Version 3 server support' CONFIG_NFSD_V3
+    bool '  NFS Version 3 server support' CONFIG_NFSD_V3
     if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-      bool '   NFS server TCP support (VERY EXPERIMENTAL)' CONFIG_NFSD_TCP
+      bool '  NFS server TCP support (VERY EXPERIMENTAL)' CONFIG_NFSD_TCP
     fi
   fi
   if [ "$CONFIG_NFS_FS" = "y" -o "$CONFIG_NFSD" = "y" ]; then
@@ -96,7 +96,7 @@ if [ "$CONFIG_INET" = "y" ]; then
   fi
   tristate 'SMB filesystem support (to mount WfW shares etc.)' CONFIG_SMB_FS
   if [ "$CONFIG_SMB_FS" != "n" ]; then
-     bool '   Use a default NLS' CONFIG_SMB_NLS_DEFAULT
+     bool '  Use a default NLS' CONFIG_SMB_NLS_DEFAULT
      if [ "$CONFIG_SMB_NLS_DEFAULT" = "y" ]; then
         string '  Default Remote NLS Option' CONFIG_SMB_NLS_REMOTE "cp437"
      fi
diff -Naurp linux-2.2.26-vanilla/fs/attr.c linux-2.2.27-rc2/fs/attr.c
--- linux-2.2.26-vanilla/fs/attr.c	2001-03-25 18:30:59.000000000 +0200
+++ linux-2.2.27-rc2/fs/attr.c	2005-01-13 00:05:40.000000000 +0100
@@ -29,7 +29,8 @@ int inode_change_ok(struct inode *inode,
 
 	/* Make sure caller can chgrp. */
 	if ((ia_valid & ATTR_GID) &&
-	    (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid) &&
+	    (current->fsuid != inode->i_uid ||
+	    (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid)) &&
 	    !capable(CAP_CHOWN))
 		goto error;
 
diff -Naurp linux-2.2.26-vanilla/fs/binfmt_elf.c linux-2.2.27-rc2/fs/binfmt_elf.c
--- linux-2.2.26-vanilla/fs/binfmt_elf.c	2002-09-16 18:26:13.000000000 +0200
+++ linux-2.2.27-rc2/fs/binfmt_elf.c	2005-01-13 00:05:40.000000000 +0100
@@ -40,7 +40,9 @@
 #include <linux/elf.h>
 
 static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs);
+#ifdef CONFIG_BINFMT_ELF_AOUT
 static int load_elf_library(struct file *file);
+#endif
 extern int dump_fpu (struct pt_regs *, elf_fpregset_t *);
 extern void dump_thread(struct pt_regs *, struct user *);
 
@@ -66,7 +68,9 @@ static int elf_core_dump(long signr, str
 static struct linux_binfmt elf_format = {
 	module:		THIS_MODULE,
 	load_binary:	load_elf_binary,
+#ifdef CONFIG_BINFMT_ELF_AOUT
 	load_shlib:	load_elf_library,
+#endif
 	core_dump:	elf_core_dump,
 	min_coredump:	ELF_EXEC_PAGESIZE,
 };
@@ -359,6 +363,7 @@ out:
 	return error;
 }
 
+#ifdef CONFIG_BINFMT_ELF_AOUT
 static unsigned long load_aout_interp(struct exec * interp_ex,
 			     struct dentry * interpreter_dentry)
 {
@@ -404,6 +409,7 @@ static unsigned long load_aout_interp(st
 out:
 	return elf_entry;
 }
+#endif
 
 /*
  * These are the functions used to load ELF style executables and shared
@@ -411,7 +417,9 @@ out:
  */
 
 #define INTERPRETER_NONE 0
+#ifdef CONFIG_BINFMT_ELF_AOUT
 #define INTERPRETER_AOUT 1
+#endif
 #define INTERPRETER_ELF 2
 
 
@@ -435,7 +443,9 @@ static int load_elf_binary(struct linux_
 	struct elfhdr elf_ex;
 	struct elfhdr interp_elf_ex;
   	struct exec interp_ex;
+#ifdef CONFIG_BINFMT_ELF_AOUT
 	char passed_fileno[6];
+#endif
 
 	/* Get the exec-header */
 	elf_ex = *((struct elfhdr *) bprm->buf);
@@ -563,6 +573,7 @@ static int load_elf_binary(struct linux_
 
 	/* Some simple consistency checks for the interpreter */
 	if (elf_interpreter) {
+#ifdef CONFIG_BINFMT_ELF_AOUT
 		interpreter_type = INTERPRETER_ELF | INTERPRETER_AOUT;
 
 		/* Now figure out which format our binary is */
@@ -570,6 +581,9 @@ static int load_elf_binary(struct linux_
 		    (N_MAGIC(interp_ex) != ZMAGIC) &&
 		    (N_MAGIC(interp_ex) != QMAGIC))
 			interpreter_type = INTERPRETER_ELF;
+#else
+		interpreter_type = INTERPRETER_ELF;
+#endif
 
 		if (interp_elf_ex.e_ident[0] != 0x7f ||
 		    strncmp(&interp_elf_ex.e_ident[1], "ELF", 3) != 0)
@@ -579,17 +593,20 @@ static int load_elf_binary(struct linux_
 		if (!interpreter_type)
 			goto out_free_dentry;
 
+#ifdef CONFIG_BINFMT_ELF_AOUT
 		/* Make sure only one type was selected */
 		if ((interpreter_type & INTERPRETER_ELF) &&
 		     interpreter_type != INTERPRETER_ELF) {
 			printk(KERN_WARNING "ELF: Ambiguous type, using ELF\n");
 			interpreter_type = INTERPRETER_ELF;
 		}
+#endif
 	}
 
 	/* OK, we are done with that, now set up the arg stuff,
 	   and then start this sucker up */
 
+#ifdef CONFIG_BINFMT_ELF_AOUT
 	if (!bprm->sh_bang) {
 		char * passed_p;
 
@@ -606,6 +623,7 @@ static int load_elf_binary(struct linux_
 		if ((long)bprm->p < 0)
 			goto out_free_dentry;
 	}
+#endif
 
 	/* Flush all traces of the currently running executable */
 	retval = flush_old_exec(bprm);
@@ -699,10 +717,12 @@ static int load_elf_binary(struct linux_
 	end_data += load_bias;
 
 	if (elf_interpreter) {
+#ifdef CONFIG_BINFMT_ELF_AOUT
 		if (interpreter_type == INTERPRETER_AOUT)
 			elf_entry = load_aout_interp(&interp_ex,
 						     interpreter_dentry);
 		else
+#endif
 			elf_entry = load_elf_interp(&interp_elf_ex,
 						    interpreter_dentry,
 						    &interp_load_addr);
@@ -723,7 +743,9 @@ static int load_elf_binary(struct linux_
 
 	kfree(elf_phdata);
 
+#ifdef CONFIG_BINFMT_ELF_AOUT
 	if (interpreter_type != INTERPRETER_AOUT)
+#endif
 		sys_close(elf_exec_fileno);
 
 	set_binfmt(&elf_format);
@@ -742,14 +764,20 @@ static int load_elf_binary(struct linux_
 			(interpreter_type == INTERPRETER_ELF ? &elf_ex : NULL),
 			load_addr, load_bias,
 			interp_load_addr,
+#ifdef CONFIG_BINFMT_ELF_AOUT
 			(interpreter_type == INTERPRETER_AOUT ? 0 : 1));
+#else
+			1);
+#endif
 	if (!bprm->p) {
 		force_sig(SIGSEGV, current);
 		return 0;
 	}
+#ifdef CONFIG_BINFMT_ELF_AOUT
 	/* N.B. passed_fileno might not be initialized? */
 	if (interpreter_type == INTERPRETER_AOUT)
 		current->mm->arg_start += strlen(passed_fileno) + 1;
+#endif
 	current->mm->start_brk = current->mm->brk = elf_brk;
 	current->mm->end_code = end_code;
 	current->mm->start_code = start_code;
@@ -814,9 +842,9 @@ out_free_ph:
 	goto out;
 }
 
+#ifdef CONFIG_BINFMT_ELF_AOUT
 /* This is really simpleminded and specialized - we are loading an
    a.out library that is given an ELF header. */
-
 static int load_elf_library(struct file *file)
 {
 	struct dentry * dentry;
@@ -904,6 +932,7 @@ out_free_ph:
 out_putf:
 	return error;
 }
+#endif
 
 /*
  * Note that some platforms still use traditional core dumps and not
diff -Naurp linux-2.2.26-vanilla/fs/coda/upcall.c linux-2.2.27-rc2/fs/coda/upcall.c
--- linux-2.2.26-vanilla/fs/coda/upcall.c	2001-03-25 18:31:02.000000000 +0200
+++ linux-2.2.27-rc2/fs/coda/upcall.c	2005-01-13 00:06:10.000000000 +0100
@@ -517,6 +517,11 @@ int venus_pioctl(struct super_block *sb,
 		goto exit;
         }
 
+	if (data->vi.out_size > VC_MAXDATASIZE) {
+		error = EINVAL;
+		goto exit;
+	}
+
         inp->coda_ioctl.VFid = *fid;
     
         /* the cmd field was mutated by increasing its size field to
@@ -544,26 +549,30 @@ int venus_pioctl(struct super_block *sb,
 		       error, coda_f2s(fid));
 		goto exit; 
 	}
-        
-	/* Copy out the OUT buffer. */
+
+	if (outsize < (int)outp->coda_ioctl.data + outp->coda_ioctl.len) {
+                CDEBUG(D_FILE, "reply size %d < reply len %ld\n", outsize,
+		       (int)outp->coda_ioctl.data + outp->coda_ioctl.len);
+		error = EINVAL;
+		goto exit;
+	}
+
         if (outp->coda_ioctl.len > data->vi.out_size) {
-                CDEBUG(D_FILE, "return len %d <= request len %d\n",
-                      outp->coda_ioctl.len, 
-                      data->vi.out_size);
+                CDEBUG(D_FILE, "return len %d > request len %d\n",
+		       outp->coda_ioctl.len, data->vi.out_size);
                 error = EINVAL;
-        } else {
-		error = verify_area(VERIFY_WRITE, data->vi.out, 
-                                    data->vi.out_size);
-		if ( error ) goto exit;
-
-		if (copy_to_user(data->vi.out, 
-				 (char *)outp + (int)outp->coda_ioctl.data, 
-				 data->vi.out_size)) {
-		        error = EINVAL;
-			goto exit;
-		}
+		goto exit;
         }
 
+	/* Copy out the OUT buffer. */
+	error = verify_area(VERIFY_WRITE, data->vi.out, outp->coda_ioctl.len);
+	if ( error ) goto exit;
+
+	if (copy_to_user(data->vi.out, 
+			 (char *)outp + (int)outp->coda_ioctl.data, 
+			 outp->coda_ioctl.len)) {
+	    error = EINVAL;
+	}
  exit:
 	CODA_FREE(inp, insize);
 	return error;
diff -Naurp linux-2.2.26-vanilla/fs/exec.c linux-2.2.27-rc2/fs/exec.c
--- linux-2.2.26-vanilla/fs/exec.c	2001-11-02 17:39:08.000000000 +0100
+++ linux-2.2.27-rc2/fs/exec.c	2005-01-13 00:05:40.000000000 +0100
@@ -170,6 +170,7 @@ out:
  */
 asmlinkage int sys_uselib(const char * library)
 {
+#if defined(CONFIG_BINFMT_AOUT) || defined(CONFIG_BINFMT_ELF_AOUT)
 	int retval;
 	struct file * file;
 	struct linux_binfmt * fmt;
@@ -207,6 +208,9 @@ out_fput:
 out:
 	unlock_kernel();
   	return retval;
+#else
+	return -ENOSYS;
+#endif
 }
 
 /*
diff -Naurp linux-2.2.26-vanilla/fs/ncpfs/Config.in linux-2.2.27-rc2/fs/ncpfs/Config.in
--- linux-2.2.26-vanilla/fs/ncpfs/Config.in	2001-03-25 18:30:59.000000000 +0200
+++ linux-2.2.27-rc2/fs/ncpfs/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -1,15 +1,15 @@
 #
 # NCP Filesystem configuration
 #
-bool     '   Packet signatures' CONFIG_NCPFS_PACKET_SIGNING
-bool     '   Proprietary file locking' CONFIG_NCPFS_IOCTL_LOCKING
-bool     '   Clear remove/delete inhibit when needed' CONFIG_NCPFS_STRONG
-bool     '   Use NFS namespace if available' CONFIG_NCPFS_NFS_NS
-bool     '   Use LONG (OS/2) namespace if available' CONFIG_NCPFS_OS2_NS
+bool     '  Packet signatures' CONFIG_NCPFS_PACKET_SIGNING
+bool     '  Proprietary file locking' CONFIG_NCPFS_IOCTL_LOCKING
+bool     '  Clear remove/delete inhibit when needed' CONFIG_NCPFS_STRONG
+bool     '  Use NFS namespace if available' CONFIG_NCPFS_NFS_NS
+bool     '  Use LONG (OS/2) namespace if available' CONFIG_NCPFS_OS2_NS
 if [ "$CONFIG_NCPFS_OS2_NS" = "y" ]; then
-  bool   '      Lowercase DOS filenames' CONFIG_NCPFS_SMALLDOS
+  bool   '    Lowercase DOS filenames' CONFIG_NCPFS_SMALLDOS
 fi
-bool     '   Allow mounting of volume subdirectories' CONFIG_NCPFS_MOUNT_SUBDIR
-# bool     '   NDS interserver authentication support' CONFIG_NCPFS_NDS_DOMAINS
-bool     '   Use Native Language Support' CONFIG_NCPFS_NLS
-bool     '   Enable symbolic links and execute flags' CONFIG_NCPFS_EXTRAS
+bool     '  Allow mounting of volume subdirectories' CONFIG_NCPFS_MOUNT_SUBDIR
+# bool     '  NDS interserver authentication support' CONFIG_NCPFS_NDS_DOMAINS
+bool     '  Use Native Language Support' CONFIG_NCPFS_NLS
+bool     '  Enable symbolic links and execute flags' CONFIG_NCPFS_EXTRAS
diff -Naurp linux-2.2.26-vanilla/fs/open.c linux-2.2.27-rc2/fs/open.c
--- linux-2.2.26-vanilla/fs/open.c	2001-11-02 17:39:08.000000000 +0100
+++ linux-2.2.27-rc2/fs/open.c	2005-01-13 00:05:40.000000000 +0100
@@ -262,7 +262,8 @@ asmlinkage int sys_utimes(char * filenam
 		newattrs.ia_mtime = times[1].tv_sec;
 		newattrs.ia_valid |= ATTR_ATIME_SET | ATTR_MTIME_SET;
 	} else {
-		if ((error = permission(inode,MAY_WRITE)) != 0)
+		if (current->fsuid != inode->i_uid &&
+		    (error = permission(inode,MAY_WRITE)) != 0)
 			goto dput_and_out;
 	}
 	error = notify_change(dentry, &newattrs);
diff -Naurp linux-2.2.26-vanilla/fs/smbfs/proc.c linux-2.2.27-rc2/fs/smbfs/proc.c
--- linux-2.2.26-vanilla/fs/smbfs/proc.c	2001-11-02 17:39:08.000000000 +0100
+++ linux-2.2.27-rc2/fs/smbfs/proc.c	2005-01-13 00:06:28.000000000 +0100
@@ -1108,10 +1108,12 @@ smb_proc_read(struct dentry *dentry, off
 	data_len = WVAL(buf, 1);
 
 	/* we can NOT simply trust the data_len given by the server ... */
-	if (data_len > server->packet_size - (buf+3 - server->packet)) {
-		printk(KERN_ERR "smb_proc_read: invalid data length!! "
-		       "%d > %d - (%p - %p)\n",
-		       data_len, server->packet_size, buf+3, server->packet);
+	if (data_len > count ||
+		(buf+3 - server->packet) + data_len > server->packet_size) {
+		printk(KERN_ERR "smb_proc_read: invalid data length/offset!! "
+		       "%d > %d || (%p - %p) + %d > %d\n",
+		       data_len, count,
+		       buf+3, server->packet, data_len, server->packet_size);
 		result = -EIO;
 		goto out;
 	}
diff -Naurp linux-2.2.26-vanilla/fs/smbfs/sock.c linux-2.2.27-rc2/fs/smbfs/sock.c
--- linux-2.2.26-vanilla/fs/smbfs/sock.c	2001-03-25 18:30:59.000000000 +0200
+++ linux-2.2.27-rc2/fs/smbfs/sock.c	2005-01-13 00:06:28.000000000 +0100
@@ -510,9 +510,12 @@ smb_receive_trans2(struct smb_sb_info *s
 				VERBOSE("fast track, parm=%u %u %u, data=%u %u %u\n",
 					parm_disp, parm_offset, parm_count, 
 					data_disp, data_offset, data_count);
-
 				*parm  = base + parm_offset;
+				if (*parm - inbuf + parm_tot > server->packet_size)
+					goto out_bad_parm;
 				*data  = base + data_offset;
+				if (*data - inbuf + data_tot > server->packet_size)
+					goto out_bad_data;
 				goto success;
 			}
 
@@ -534,6 +537,8 @@ smb_receive_trans2(struct smb_sb_info *s
 			rcv_buf = smb_vmalloc(buf_len);
 			if (!rcv_buf)
 				goto out_no_mem;
+			memset(rcv_buf, 0, buf_len);
+			
 			*parm = rcv_buf;
 			*data = rcv_buf + total_p;
 		} else if (data_tot > total_d || parm_tot > total_p)
@@ -541,8 +546,12 @@ smb_receive_trans2(struct smb_sb_info *s
 
 		if (parm_disp + parm_count > total_p)
 			goto out_bad_parm;
+		if (parm_offset + parm_count > server->packet_size)	
+			goto out_bad_parm;
 		if (data_disp + data_count > total_d)
 			goto out_bad_data;
+		if (data_offset + data_count > server->packet_size)	
+			goto out_bad_data;
 		memcpy(*parm + parm_disp, base + parm_offset, parm_count);
 		memcpy(*data + data_disp, base + data_offset, data_count);
 
@@ -553,8 +562,11 @@ smb_receive_trans2(struct smb_sb_info *s
 		 * Check whether we've received all of the data. Note that
 		 * we use the packet totals -- total lengths might shrink!
 		 */
-		if (data_len >= data_tot && parm_len >= parm_tot)
+		if (data_len >= data_tot && parm_len >= parm_tot) {
+			data_len = data_tot;
+			parm_len = parm_tot;
 			break;
+		}
 	}
 
 	/*
@@ -568,6 +580,9 @@ smb_receive_trans2(struct smb_sb_info *s
 		server->packet = rcv_buf;
 		rcv_buf = inbuf;
 	} else {
+		if (parm_len + data_len > buf_len)
+			goto out_data_grew;
+
 		PARANOIA("copying data, old size=%d, new size=%u\n",
 			 server->packet_size, buf_len);
 		memcpy(inbuf, rcv_buf, parm_len + data_len);
diff -Naurp linux-2.2.26-vanilla/include/linux/coda.h linux-2.2.27-rc2/include/linux/coda.h
--- linux-2.2.26-vanilla/include/linux/coda.h	2001-03-25 18:31:04.000000000 +0200
+++ linux-2.2.27-rc2/include/linux/coda.h	2005-01-13 00:06:10.000000000 +0100
@@ -774,8 +774,8 @@ union coda_downcalls {
 #define PIOCPARM_MASK 0x0000ffff
 struct ViceIoctl {
         caddr_t in, out;        /* Data to be transferred in, or out */
-        short in_size;          /* Size of input buffer <= 2K */
-        short out_size;         /* Maximum size of output buffer, <= 2K */
+        u_short in_size;        /* Size of input buffer <= 2K */
+        u_short out_size;       /* Maximum size of output buffer, <= 2K */
 };
 
 struct PioctlData {
diff -Naurp linux-2.2.26-vanilla/include/linux/kernel.h linux-2.2.27-rc2/include/linux/kernel.h
--- linux-2.2.26-vanilla/include/linux/kernel.h	2005-01-13 00:04:14.000000000 +0100
+++ linux-2.2.27-rc2/include/linux/kernel.h	2005-01-13 00:05:40.000000000 +0100
@@ -53,7 +53,7 @@ extern int sprintf(char *buf, const char
 	__attribute__ ((format (printf, 2, 3)));
 extern int vsprintf(char *buf, const char *, va_list)
 	__attribute__ ((format (printf, 2, 0)));
-extern int _vsnprintf(char *buf, int n, const char *, va_list)
+extern int vsnprintf(char *buf, int n, const char *, va_list)
 	__attribute__ ((format (printf, 3, 0)));
 
 extern int session_of_pgrp(int pgrp);
diff -Naurp linux-2.2.26-vanilla/include/linux/mm.h linux-2.2.27-rc2/include/linux/mm.h
--- linux-2.2.26-vanilla/include/linux/mm.h	2001-03-25 18:31:03.000000000 +0200
+++ linux-2.2.27-rc2/include/linux/mm.h	2005-01-13 00:06:31.000000000 +0100
@@ -354,6 +354,10 @@ static inline int expand_stack(struct vm
 	unsigned long grow;
 
 	address &= PAGE_MASK;
+
+	if (vma->vm_start <= address)
+		return 0;
+
 	grow = vma->vm_start - address;
 	if ((vma->vm_end - address
 	    > current->rlim[RLIMIT_STACK].rlim_cur) ||
diff -Naurp linux-2.2.26-vanilla/include/linux/socket.h linux-2.2.27-rc2/include/linux/socket.h
--- linux-2.2.26-vanilla/include/linux/socket.h	2001-03-25 18:31:03.000000000 +0200
+++ linux-2.2.27-rc2/include/linux/socket.h	2005-01-13 00:05:40.000000000 +0100
@@ -70,6 +70,10 @@ struct cmsghdr {
 				  (struct cmsghdr *)(ctl) : \
 				  (struct cmsghdr *)NULL)
 #define CMSG_FIRSTHDR(msg)	__CMSG_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)
+#define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) && \
+			     (cmsg)->cmsg_len <= (unsigned long) \
+			     ((mhdr)->msg_controllen - \
+			      ((char *)(cmsg) - (char *)(mhdr)->msg_control)))
 
 /*
  *	This mess will go away with glibc
diff -Naurp linux-2.2.26-vanilla/include/linux/sysctl.h linux-2.2.27-rc2/include/linux/sysctl.h
--- linux-2.2.26-vanilla/include/linux/sysctl.h	2005-01-13 00:04:56.000000000 +0100
+++ linux-2.2.27-rc2/include/linux/sysctl.h	2005-01-13 00:05:40.000000000 +0100
@@ -69,45 +69,45 @@ enum
 /* CTL_KERN names: */
 enum
 {
-	KERN_OSTYPE=1,		/* string: system version */
-	KERN_OSRELEASE=2,	/* string: system release */
-	KERN_OSREV=3,		/* int: system revision */
-	KERN_VERSION=4,		/* string: compile time info */
-	KERN_SECUREMASK=5,	/* struct: maximum rights mask */
-	KERN_PROF=6,		/* table: profiling information */
+	KERN_OSTYPE=1,			/* string: system version */
+	KERN_OSRELEASE=2,		/* string: system release */
+	KERN_OSREV=3,			/* int: system revision */
+	KERN_VERSION=4,			/* string: compile time info */
+	KERN_SECUREMASK=5,		/* struct: maximum rights mask */
+	KERN_PROF=6,			/* table: profiling information */
 	KERN_NODENAME=7,
 	KERN_DOMAINNAME=8,
 
-	KERN_CAP_BSET=14,	/* int: capability bounding set */
-	KERN_PANIC=15,		/* int: panic timeout */
-	KERN_REALROOTDEV=16,	/* real root device to mount after initrd */
-
-	KERN_JAVA_INTERPRETER=19, /* path to Java(tm) interpreter */
-	KERN_JAVA_APPLETVIEWER=20, /* path to Java(tm) appletviewer */
-	KERN_SPARC_REBOOT=21,	/* reboot command on Sparc */
-	KERN_CTLALTDEL=22,	/* int: allow ctl-alt-del to reboot */
-	KERN_PRINTK=23,		/* struct: control printk logging parameters */
-	KERN_NAMETRANS=24,	/* Name translation */
-	KERN_PPC_HTABRECLAIM=25, /* turn htab reclaimation on/off on PPC */
-	KERN_PPC_ZEROPAGED=26,	/* turn idle page zeroing on/off on PPC */
-	KERN_PPC_POWERSAVE_NAP=27, /* use nap mode for power saving */
+	KERN_CAP_BSET=14,		/* int: capability bounding set */
+	KERN_PANIC=15,			/* int: panic timeout */
+	KERN_REALROOTDEV=16,		/* real root device to mount after initrd */
+
+	KERN_JAVA_INTERPRETER=19,	/* path to Java(tm) interpreter */
+	KERN_JAVA_APPLETVIEWER=20,	/* path to Java(tm) appletviewer */
+	KERN_SPARC_REBOOT=21,		/* reboot command on Sparc */
+	KERN_CTLALTDEL=22,		/* int: allow ctl-alt-del to reboot */
+	KERN_PRINTK=23,			/* struct: control printk logging parameters */
+	KERN_NAMETRANS=24,		/* Name translation */
+	KERN_PPC_HTABRECLAIM=25,	/* turn htab reclaimation on/off on PPC */
+	KERN_PPC_ZEROPAGED=26,		/* turn idle page zeroing on/off on PPC */
+	KERN_PPC_POWERSAVE_NAP=27,	/* use nap mode for power saving */
 	KERN_MODPROBE=28,
 	KERN_SG_BIG_BUFF=29,
-	KERN_ACCT=30,		/* BSD process accounting parameters */
-	KERN_PPC_L2CR=31,	/* l2cr register on PPC */
+	KERN_ACCT=30,			/* BSD process accounting parameters */
+	KERN_PPC_L2CR=31,		/* l2cr register on PPC */
 
-	KERN_RTSIGNR=32,	/* Number of rt sigs queued */
-	KERN_RTSIGMAX=33,	/* Max queuable */
+	KERN_RTSIGNR=32,		/* Number of rt sigs queued */
+	KERN_RTSIGMAX=33,		/* Max queuable */
 	
-	KERN_SHMMAX=34,         /* int: Maximum shared memory segment */
-	KERN_MSGMAX=35,         /* int: Maximum size of a messege */
-	KERN_MSGMNB=36,         /* int: Maximum message queue size */
-	KERN_MSGPOOL=37,         /* int: Maximum system message pool size */
-	KERN_SYSRQ=38,		/* int: Sysreq enable */
-	KERN_SHMALL=41,		/* int: maximum size of shared memory */
-	KERN_SPARC_STOP_A=44,	/* int: Sparc Stop-A enable */
-	KERN_HOTPLUG=49,	/* string: path to hotplug policy agent */
-	KERN_IEEE_EMULATION_WARNINGS=50 /* int: unimplemented ieee instructions */
+	KERN_SHMMAX=34,			/* int: Maximum shared memory segment */
+	KERN_MSGMAX=35,			/* int: Maximum size of a messege */
+	KERN_MSGMNB=36,			/* int: Maximum message queue size */
+	KERN_MSGPOOL=37,		/* int: Maximum system message pool size */
+	KERN_SYSRQ=38,			/* int: Sysreq enable */
+	KERN_SHMALL=41,			/* int: maximum size of shared memory */
+	KERN_SPARC_STOP_A=44,		/* int: Sparc Stop-A enable */
+	KERN_HOTPLUG=49,		/* string: path to hotplug policy agent */
+	KERN_IEEE_EMULATION_WARNINGS=50	/* int: unimplemented ieee instructions */
 };
 
 
diff -Naurp linux-2.2.26-vanilla/init/main.c linux-2.2.27-rc2/init/main.c
--- linux-2.2.26-vanilla/init/main.c	2005-01-13 00:04:14.000000000 +0100
+++ linux-2.2.27-rc2/init/main.c	2005-01-13 00:05:40.000000000 +0100
@@ -248,41 +248,41 @@ extern void reboot_setup(char *str, int 
 extern void video_setup(char *str, int *ints);
 #ifdef CONFIG_CDU31A
 extern void cdu31a_setup(char *str, int *ints);
-#endif CONFIG_CDU31A
+#endif /* CONFIG_CDU31A */
 #ifdef CONFIG_BLK_DEV_PS2
 extern void ed_setup(char *str, int *ints);
 extern void tp720_setup(char *str, int *ints);
-#endif CONFIG_BLK_DEV_PS2
+#endif /* CONFIG_BLK_DEV_PS2 */
 #ifdef CONFIG_MCD
 extern void mcd_setup(char *str, int *ints);
-#endif CONFIG_MCD
+#endif /* CONFIG_MCD */
 #ifdef CONFIG_MCDX
 extern void mcdx_setup(char *str, int *ints);
-#endif CONFIG_MCDX
+#endif /* CONFIG_MCDX */
 #ifdef CONFIG_SBPCD
 extern void sbpcd_setup(char *str, int *ints);
-#endif CONFIG_SBPCD
+#endif /* CONFIG_SBPCD */
 #ifdef CONFIG_AZTCD
 extern void aztcd_setup(char *str, int *ints);
-#endif CONFIG_AZTCD
+#endif /* CONFIG_AZTCD */
 #ifdef CONFIG_CDU535
 extern void sonycd535_setup(char *str, int *ints);
-#endif CONFIG_CDU535
+#endif /* CONFIG_CDU535 */
 #ifdef CONFIG_GSCD
 extern void gscd_setup(char *str, int *ints);
-#endif CONFIG_GSCD
+#endif /* CONFIG_GSCD */
 #ifdef CONFIG_CM206
 extern void cm206_setup(char *str, int *ints);
-#endif CONFIG_CM206
+#endif /* CONFIG_CM206 */
 #ifdef CONFIG_OPTCD
 extern void optcd_setup(char *str, int *ints);
-#endif CONFIG_OPTCD
+#endif /* CONFIG_OPTCD */
 #ifdef CONFIG_SJCD
 extern void sjcd_setup(char *str, int *ints);
-#endif CONFIG_SJCD
+#endif /* CONFIG_SJCD */
 #ifdef CONFIG_ISP16_CDI
 extern void isp16_setup(char *str, int *ints);
-#endif CONFIG_ISP16_CDI
+#endif /* CONFIG_ISP16_CDI */
 #ifdef CONFIG_BLK_DEV_RAM
 static void ramdisk_start_setup(char *str, int *ints);
 static void load_ramdisk(char *str, int *ints);
@@ -291,7 +291,7 @@ static void ramdisk_size(char *str, int 
 #ifdef CONFIG_BLK_DEV_INITRD
 static void no_initrd(char *s,int *ints);
 #endif
-#endif CONFIG_BLK_DEV_RAM
+#endif /* CONFIG_BLK_DEV_RAM */
 #ifdef CONFIG_ISDN_DRV_ICN
 extern void icn_setup(char *str, int *ints);
 #endif
@@ -460,172 +460,189 @@ static void __init profile_setup(char *s
 		prof_shift = 2;
 }
 
-
 static struct dev_name_struct {
 	const char *name;
 	const int num;
 } root_dev_names[] __initdata = {
-	{ "nfs",     0x00ff },
-	{ "loop",    0x0700 },
-	{ "hda",     0x0300 },
-	{ "hdb",     0x0340 },
-	{ "hdc",     0x1600 },
-	{ "hdd",     0x1640 },
-	{ "hde",     0x2100 },
-	{ "hdf",     0x2140 },
-	{ "hdg",     0x2200 },
-	{ "hdh",     0x2240 },
-	{ "hdi",     0x3800 },
-	{ "hdj",     0x3840 },
-	{ "hdk",     0x3900 },
-	{ "hdl",     0x3940 },
-	{ "sda",     0x0800 },
-	{ "sdb",     0x0810 },
-	{ "sdc",     0x0820 },
-	{ "sdd",     0x0830 },
-	{ "sde",     0x0840 },
-	{ "sdf",     0x0850 },
-	{ "sdg",     0x0860 },
-	{ "sdh",     0x0870 },
-	{ "sdi",     0x0880 },
-	{ "sdj",     0x0890 },
-	{ "sdk",     0x08a0 },
-	{ "sdl",     0x08b0 },
-	{ "sdm",     0x08c0 },
-	{ "sdn",     0x08d0 },
-	{ "sdo",     0x08e0 },
-	{ "sdp",     0x08f0 },
-	{ "rd/c0d0p",0x3000 },
-	{ "rd/c0d1p",0x3008 },
-	{ "rd/c0d2p",0x3010 },
-	{ "rd/c0d3p",0x3018 },
-	{ "rd/c0d4p",0x3020 },
-	{ "rd/c0d5p",0x3028 },
-	{ "rd/c0d6p",0x3030 },
-	{ "rd/c0d7p",0x3038 },
-	{ "rd/c0d8p",0x3040 },
-	{ "rd/c0d9p",0x3048 },
-	{ "rd/c0d10p",0x3050 },
-	{ "rd/c0d11p",0x3058 },
-	{ "rd/c0d12p",0x3060 },
-	{ "rd/c0d13p",0x3068 },
-	{ "rd/c0d14p",0x3070 },
-	{ "rd/c0d15p",0x3078 },
-	{ "ida/c0d0p",0x4800 },
-	{ "ida/c0d1p",0x4810 },
-	{ "ida/c0d2p",0x4820 },
-	{ "ida/c0d3p",0x4830 },
-	{ "ida/c0d4p",0x4840 },
-	{ "ida/c0d5p",0x4850 },
-	{ "ida/c0d6p",0x4860 },
-	{ "ida/c0d7p",0x4870 },
-	{ "ida/c0d8p",0x4880 },
-	{ "ida/c0d9p",0x4890 },
+	{ "nfs",       0x00ff },
+	{ "loop",      0x0700 },
+	{ "hda",       0x0300 },
+	{ "hdb",       0x0340 },
+	{ "hdc",       0x1600 },
+	{ "hdd",       0x1640 },
+	{ "hde",       0x2100 },
+	{ "hdf",       0x2140 },
+	{ "hdg",       0x2200 },
+	{ "hdh",       0x2240 },
+	{ "hdi",       0x3800 },
+	{ "hdj",       0x3840 },
+	{ "hdk",       0x3900 },
+	{ "hdl",       0x3940 },
+	{ "sda",       0x0800 },
+	{ "sdb",       0x0810 },
+	{ "sdc",       0x0820 },
+	{ "sdd",       0x0830 },
+	{ "sde",       0x0840 },
+	{ "sdf",       0x0850 },
+	{ "sdg",       0x0860 },
+	{ "sdh",       0x0870 },
+	{ "sdi",       0x0880 },
+	{ "sdj",       0x0890 },
+	{ "sdk",       0x08a0 },
+	{ "sdl",       0x08b0 },
+	{ "sdm",       0x08c0 },
+	{ "sdn",       0x08d0 },
+	{ "sdo",       0x08e0 },
+	{ "sdp",       0x08f0 },
+	{ "rd/c0d0p",  0x3000 },
+	{ "rd/c0d1p",  0x3008 },
+	{ "rd/c0d2p",  0x3010 },
+	{ "rd/c0d3p",  0x3018 },
+	{ "rd/c0d4p",  0x3020 },
+	{ "rd/c0d5p",  0x3028 },
+	{ "rd/c0d6p",  0x3030 },
+	{ "rd/c0d7p",  0x3038 },
+	{ "rd/c0d8p",  0x3040 },
+	{ "rd/c0d9p",  0x3048 },
+	{ "rd/c0d10p", 0x3050 },
+	{ "rd/c0d11p", 0x3058 },
+	{ "rd/c0d12p", 0x3060 },
+	{ "rd/c0d13p", 0x3068 },
+	{ "rd/c0d14p", 0x3070 },
+	{ "rd/c0d15p", 0x3078 },
+	{ "ida/c0d0p", 0x4800 },
+	{ "ida/c0d1p", 0x4810 },
+	{ "ida/c0d2p", 0x4820 },
+	{ "ida/c0d3p", 0x4830 },
+	{ "ida/c0d4p", 0x4840 },
+	{ "ida/c0d5p", 0x4850 },
+	{ "ida/c0d6p", 0x4860 },
+	{ "ida/c0d7p", 0x4870 },
+	{ "ida/c0d8p", 0x4880 },
+	{ "ida/c0d9p", 0x4890 },
 	{ "ida/c0d10p",0x48A0 },
 	{ "ida/c0d11p",0x48B0 },
 	{ "ida/c0d12p",0x48C0 },
 	{ "ida/c0d13p",0x48D0 },
 	{ "ida/c0d14p",0x48E0 },
 	{ "ida/c0d15p",0x48F0 },
-	{ "ada",     0x1c00 },
-	{ "adb",     0x1c10 },
-	{ "adc",     0x1c20 },
-	{ "add",     0x1c30 },
-	{ "ade",     0x1c40 },
-	{ "fd",      0x0200 },
-	{ "md",      0x0900 },	     
-	{ "xda",     0x0d00 },
-	{ "xdb",     0x0d40 },
-	{ "ram",     0x0100 },
-	{ "scd",     0x0b00 },
-	{ "mcd",     0x1700 },
-	{ "cdu535",  0x1800 },
-	{ "sonycd",  0x1800 },
-	{ "aztcd",   0x1d00 },
-	{ "cm206cd", 0x2000 },
-	{ "gscd",    0x1000 },
-	{ "sbpcd",   0x1900 },
-	{ "eda",     0x2400 },
-	{ "edb",     0x2440 },
-	{ "pda",	0x2d00 },
-	{ "pdb",	0x2d10 },
-	{ "pdc",	0x2d20 },
-	{ "pdd",	0x2d30 },
-	{ "pcd",	0x2e00 },
-	{ "pf",		0x2f00 },
+	{ "ada",       0x1c00 },
+	{ "adb",       0x1c10 },
+	{ "adc",       0x1c20 },
+	{ "add",       0x1c30 },
+	{ "ade",       0x1c40 },
+	{ "fd",        0x0200 },
+	{ "md",        0x0900 },	     
+	{ "xda",       0x0d00 },
+	{ "xdb",       0x0d40 },
+	{ "ram",       0x0100 },
+	{ "scd",       0x0b00 },
+	{ "mcd",       0x1700 },
+	{ "cdu535",    0x1800 },
+	{ "sonycd",    0x1800 },
+	{ "aztcd",     0x1d00 },
+	{ "cm206cd",   0x2000 },
+	{ "gscd",      0x1000 },
+	{ "sbpcd",     0x1900 },
+	{ "eda",       0x2400 },
+	{ "edb",       0x2440 },
+	{ "pda",       0x2d00 },
+	{ "pdb",       0x2d10 },
+	{ "pdc",       0x2d20 },
+	{ "pdd",       0x2d30 },
+	{ "pcd",       0x2e00 },
+	{ "pf",	       0x2f00 },
 	{ "apblock", APBLOCK_MAJOR << 8},
 	{ "ddv", DDV_MAJOR << 8},
 #ifdef CONFIG_MDISK
-        { "mnda", (MDISK_MAJOR << MINORBITS)},
-        { "mndb", (MDISK_MAJOR << MINORBITS) + 1},
-        { "mndc", (MDISK_MAJOR << MINORBITS) + 2},
-        { "mndd", (MDISK_MAJOR << MINORBITS) + 3},
-        { "mnde", (MDISK_MAJOR << MINORBITS) + 4},
-        { "mndf", (MDISK_MAJOR << MINORBITS) + 5},
-        { "mndg", (MDISK_MAJOR << MINORBITS) + 6},
-        { "mndh", (MDISK_MAJOR << MINORBITS) + 7},
+	{ "mnda", (MDISK_MAJOR << MINORBITS)},
+	{ "mndb", (MDISK_MAJOR << MINORBITS) + 1},
+	{ "mndc", (MDISK_MAJOR << MINORBITS) + 2},
+	{ "mndd", (MDISK_MAJOR << MINORBITS) + 3},
+	{ "mnde", (MDISK_MAJOR << MINORBITS) + 4},
+	{ "mndf", (MDISK_MAJOR << MINORBITS) + 5},
+	{ "mndg", (MDISK_MAJOR << MINORBITS) + 6},
+	{ "mndh", (MDISK_MAJOR << MINORBITS) + 7},
 #endif
 #ifdef CONFIG_DASD
-       { "dasda", (DASD_MAJOR << MINORBITS) },
-       { "dasdb", (DASD_MAJOR << MINORBITS) + (1 << 2) },
-       { "dasdc", (DASD_MAJOR << MINORBITS) + (2 << 2) },
-       { "dasdd", (DASD_MAJOR << MINORBITS) + (3 << 2) },
-       { "dasde", (DASD_MAJOR << MINORBITS) + (4 << 2) },
-       { "dasdf", (DASD_MAJOR << MINORBITS) + (5 << 2) },
-       { "dasdg", (DASD_MAJOR << MINORBITS) + (6 << 2) },
-       { "dasdh", (DASD_MAJOR << MINORBITS) + (7 << 2) },
-       { "dasdi", (DASD_MAJOR << MINORBITS) + (8 << 2) },
-       { "dasdj", (DASD_MAJOR << MINORBITS) + (9 << 2) },
-       { "dasdk", (DASD_MAJOR << MINORBITS) + (10 << 2) },
-       { "dasdl", (DASD_MAJOR << MINORBITS) + (11 << 2) },
-       { "dasdm", (DASD_MAJOR << MINORBITS) + (12 << 2) },
-       { "dasdn", (DASD_MAJOR << MINORBITS) + (13 << 2) },
-       { "dasdo", (DASD_MAJOR << MINORBITS) + (14 << 2) },
-       { "dasdp", (DASD_MAJOR << MINORBITS) + (15 << 2) },
-       { "dasdq", (DASD_MAJOR << MINORBITS) + (16 << 2) },
-       { "dasdr", (DASD_MAJOR << MINORBITS) + (17 << 2) },
-       { "dasds", (DASD_MAJOR << MINORBITS) + (18 << 2) },
-       { "dasdt", (DASD_MAJOR << MINORBITS) + (19 << 2) },
-       { "dasdu", (DASD_MAJOR << MINORBITS) + (20 << 2) },
-       { "dasdv", (DASD_MAJOR << MINORBITS) + (21 << 2) },
-       { "dasdw", (DASD_MAJOR << MINORBITS) + (22 << 2) },
-       { "dasdx", (DASD_MAJOR << MINORBITS) + (23 << 2) },
-       { "dasdy", (DASD_MAJOR << MINORBITS) + (24 << 2) },
-       { "dasdz", (DASD_MAJOR << MINORBITS) + (25 << 2) },
+	{ "dasda", (DASD_MAJOR << MINORBITS) },
+	{ "dasdb", (DASD_MAJOR << MINORBITS) + (1 << 2) },
+	{ "dasdc", (DASD_MAJOR << MINORBITS) + (2 << 2) },
+	{ "dasdd", (DASD_MAJOR << MINORBITS) + (3 << 2) },
+	{ "dasde", (DASD_MAJOR << MINORBITS) + (4 << 2) },
+	{ "dasdf", (DASD_MAJOR << MINORBITS) + (5 << 2) },
+	{ "dasdg", (DASD_MAJOR << MINORBITS) + (6 << 2) },
+	{ "dasdh", (DASD_MAJOR << MINORBITS) + (7 << 2) },
+	{ "dasdi", (DASD_MAJOR << MINORBITS) + (8 << 2) },
+	{ "dasdj", (DASD_MAJOR << MINORBITS) + (9 << 2) },
+	{ "dasdk", (DASD_MAJOR << MINORBITS) + (10 << 2) },
+	{ "dasdl", (DASD_MAJOR << MINORBITS) + (11 << 2) },
+	{ "dasdm", (DASD_MAJOR << MINORBITS) + (12 << 2) },
+	{ "dasdn", (DASD_MAJOR << MINORBITS) + (13 << 2) },
+	{ "dasdo", (DASD_MAJOR << MINORBITS) + (14 << 2) },
+	{ "dasdp", (DASD_MAJOR << MINORBITS) + (15 << 2) },
+	{ "dasdq", (DASD_MAJOR << MINORBITS) + (16 << 2) },
+	{ "dasdr", (DASD_MAJOR << MINORBITS) + (17 << 2) },
+	{ "dasds", (DASD_MAJOR << MINORBITS) + (18 << 2) },
+	{ "dasdt", (DASD_MAJOR << MINORBITS) + (19 << 2) },
+	{ "dasdu", (DASD_MAJOR << MINORBITS) + (20 << 2) },
+	{ "dasdv", (DASD_MAJOR << MINORBITS) + (21 << 2) },
+	{ "dasdw", (DASD_MAJOR << MINORBITS) + (22 << 2) },
+	{ "dasdx", (DASD_MAJOR << MINORBITS) + (23 << 2) },
+	{ "dasdy", (DASD_MAJOR << MINORBITS) + (24 << 2) },
+	{ "dasdz", (DASD_MAJOR << MINORBITS) + (25 << 2) },
 #endif
 #ifdef CONFIG_BLK_DEV_XPRAM
-       { "xpram0", (XPRAM_MAJOR << MINORBITS) },
-       { "xpram1", (XPRAM_MAJOR << MINORBITS) + 1 },
-       { "xpram2", (XPRAM_MAJOR << MINORBITS) + 2 },
-       { "xpram3", (XPRAM_MAJOR << MINORBITS) + 3 },
-       { "xpram4", (XPRAM_MAJOR << MINORBITS) + 4 },
-       { "xpram5", (XPRAM_MAJOR << MINORBITS) + 5 },
-       { "xpram6", (XPRAM_MAJOR << MINORBITS) + 6 },
-       { "xpram7", (XPRAM_MAJOR << MINORBITS) + 7 },
-       { "xpram8", (XPRAM_MAJOR << MINORBITS) + 8 },
-       { "xpram9", (XPRAM_MAJOR << MINORBITS) + 9 },
-       { "xpram10", (XPRAM_MAJOR << MINORBITS) + 10 },
-       { "xpram11", (XPRAM_MAJOR << MINORBITS) + 11 },
-       { "xpram12", (XPRAM_MAJOR << MINORBITS) + 12 },
-       { "xpram13", (XPRAM_MAJOR << MINORBITS) + 13 },
-       { "xpram14", (XPRAM_MAJOR << MINORBITS) + 14 },
-       { "xpram15", (XPRAM_MAJOR << MINORBITS) + 15 },
-       { "xpram16", (XPRAM_MAJOR << MINORBITS) + 16 },
-       { "xpram17", (XPRAM_MAJOR << MINORBITS) + 17 },
-       { "xpram18", (XPRAM_MAJOR << MINORBITS) + 18 },
-       { "xpram19", (XPRAM_MAJOR << MINORBITS) + 19 },
-       { "xpram20", (XPRAM_MAJOR << MINORBITS) + 20 },
-       { "xpram21", (XPRAM_MAJOR << MINORBITS) + 21 },
-       { "xpram22", (XPRAM_MAJOR << MINORBITS) + 22 },
-       { "xpram23", (XPRAM_MAJOR << MINORBITS) + 23 },
-       { "xpram24", (XPRAM_MAJOR << MINORBITS) + 24 },
-       { "xpram25", (XPRAM_MAJOR << MINORBITS) + 25 },
-       { "xpram26", (XPRAM_MAJOR << MINORBITS) + 26 },
-       { "xpram27", (XPRAM_MAJOR << MINORBITS) + 27 },
-       { "xpram28", (XPRAM_MAJOR << MINORBITS) + 28 },
-       { "xpram29", (XPRAM_MAJOR << MINORBITS) + 29 },
-       { "xpram30", (XPRAM_MAJOR << MINORBITS) + 30 },
-       { "xpram31", (XPRAM_MAJOR << MINORBITS) + 31 },
+	{ "xpram0", (XPRAM_MAJOR << MINORBITS) },
+	{ "xpram1", (XPRAM_MAJOR << MINORBITS) + 1 },
+	{ "xpram2", (XPRAM_MAJOR << MINORBITS) + 2 },
+	{ "xpram3", (XPRAM_MAJOR << MINORBITS) + 3 },
+	{ "xpram4", (XPRAM_MAJOR << MINORBITS) + 4 },
+	{ "xpram5", (XPRAM_MAJOR << MINORBITS) + 5 },
+	{ "xpram6", (XPRAM_MAJOR << MINORBITS) + 6 },
+	{ "xpram7", (XPRAM_MAJOR << MINORBITS) + 7 },
+	{ "xpram8", (XPRAM_MAJOR << MINORBITS) + 8 },
+	{ "xpram9", (XPRAM_MAJOR << MINORBITS) + 9 },
+	{ "xpram10", (XPRAM_MAJOR << MINORBITS) + 10 },
+	{ "xpram11", (XPRAM_MAJOR << MINORBITS) + 11 },
+	{ "xpram12", (XPRAM_MAJOR << MINORBITS) + 12 },
+	{ "xpram13", (XPRAM_MAJOR << MINORBITS) + 13 },
+	{ "xpram14", (XPRAM_MAJOR << MINORBITS) + 14 },
+	{ "xpram15", (XPRAM_MAJOR << MINORBITS) + 15 },
+	{ "xpram16", (XPRAM_MAJOR << MINORBITS) + 16 },
+	{ "xpram17", (XPRAM_MAJOR << MINORBITS) + 17 },
+	{ "xpram18", (XPRAM_MAJOR << MINORBITS) + 18 },
+	{ "xpram19", (XPRAM_MAJOR << MINORBITS) + 19 },
+	{ "xpram20", (XPRAM_MAJOR << MINORBITS) + 20 },
+	{ "xpram21", (XPRAM_MAJOR << MINORBITS) + 21 },
+	{ "xpram22", (XPRAM_MAJOR << MINORBITS) + 22 },
+	{ "xpram23", (XPRAM_MAJOR << MINORBITS) + 23 },
+	{ "xpram24", (XPRAM_MAJOR << MINORBITS) + 24 },
+	{ "xpram25", (XPRAM_MAJOR << MINORBITS) + 25 },
+	{ "xpram26", (XPRAM_MAJOR << MINORBITS) + 26 },
+	{ "xpram27", (XPRAM_MAJOR << MINORBITS) + 27 },
+	{ "xpram28", (XPRAM_MAJOR << MINORBITS) + 28 },
+	{ "xpram29", (XPRAM_MAJOR << MINORBITS) + 29 },
+	{ "xpram30", (XPRAM_MAJOR << MINORBITS) + 30 },
+	{ "xpram31", (XPRAM_MAJOR << MINORBITS) + 31 },
+#endif
+#if defined(CONFIG_BLK_CPQ_CISS_DA) || defined(CONFIG_BLK_CPQ_CISS_DA_MODULE)
+	{ "cciss/c0d0p", 0x6800 },
+	{ "cciss/c0d1p", 0x6810 },
+	{ "cciss/c0d2p", 0x6820 },
+	{ "cciss/c0d3p", 0x6830 },
+	{ "cciss/c0d4p", 0x6840 },
+	{ "cciss/c0d5p", 0x6850 },
+	{ "cciss/c0d6p", 0x6860 },
+	{ "cciss/c0d7p", 0x6870 },
+	{ "cciss/c0d8p", 0x6880 },
+	{ "cciss/c0d9p", 0x6890 },
+	{ "cciss/c0d10p",0x68A0 },
+	{ "cciss/c0d11p",0x68B0 },
+	{ "cciss/c0d12p",0x68C0 },
+	{ "cciss/c0d13p",0x68D0 },
+	{ "cciss/c0d14p",0x68E0 },
+	{ "cciss/c0d15p",0x68F0 },
 #endif
 	{ NULL, 0 }
 };
@@ -660,7 +677,6 @@ static void __init root_dev_setup(char *
  * an array of ints and chopped off the string), the second table contains
  * the few exceptions which obey their own syntax rules.
  */
-
 struct kernel_param {
 	const char *str;
 	void (*setup_func)(char *, int *);
@@ -681,8 +697,8 @@ static struct kernel_param cooked_params
 	{ "noapic", ioapic_setup },
 	{ "pirq=", ioapic_pirq_setup },
 #endif
+#endif /* __SMP__ */
 
-#endif
 #ifdef CONFIG_BLK_DEV_RAM
 	{ "ramdisk_start=", ramdisk_start_setup },
 	{ "load_ramdisk=", load_ramdisk },
@@ -692,13 +708,13 @@ static struct kernel_param cooked_params
 #ifdef CONFIG_BLK_DEV_INITRD
 	{ "noinitrd", no_initrd },
 #endif
-#endif
+#endif /* CONFIG_BLK_DEV_RAM */
 
 #ifdef CONFIG_CTC
-        { "ctc=", ctc_setup } ,
+	{ "ctc=", ctc_setup } ,
 #endif
 #ifdef CONFIG_IUCV
-        { "iucv=", iucv_setup } ,
+	{ "iucv=", iucv_setup } ,
 #endif
 
 #ifdef CONFIG_FB
@@ -745,10 +761,10 @@ static struct kernel_param cooked_params
 	{ "decnet=", decnet_setup },
 #endif
 #ifdef CONFIG_PRINTER
-        { "lp=", lp_setup },
+	{ "lp=", lp_setup },
 #endif
 #ifdef CONFIG_VIDEO_CPIA_PP
-        { "cpia_pp=", cpia_pp_setup },
+	{ "cpia_pp=", cpia_pp_setup },
 #endif
 #ifdef CONFIG_JOY_AMIGA
 	{ "js_am=", js_am_setup },
@@ -849,7 +865,7 @@ static struct kernel_param cooked_params
 	{ "u14-34f=", u14_34f_setup},
 #endif
 #ifdef CONFIG_SCSI_AM53C974
-        { "AM53C974=", AM53C974_setup},
+	{ "AM53C974=", AM53C974_setup},
 #endif
 #ifdef CONFIG_SCSI_NCR53C406A
 	{ "ncr53c406a=", NCR53c406a_setup},
@@ -867,13 +883,13 @@ static struct kernel_param cooked_params
 	{ "wd7000=", wd7000_setup},
 #endif
 #ifdef CONFIG_SCSI_IBMMCA
-        { "ibmmcascsi=", ibmmca_scsi_setup },
+	{ "ibmmcascsi=", ibmmca_scsi_setup },
 #endif
 #ifdef CONFIG_SCSI_FD_MCS
 	{ "fd_mcs=", fd_mcs_setup },
 #endif
 #if defined(CONFIG_SCSI_DC390T) && ! defined(CONFIG_SCSI_DC390T_NOGENSUPP)
-        { "tmscsim=", dc390_setup },
+	{ "tmscsim=", dc390_setup },
 #endif
 #ifdef CONFIG_BLK_DEV_XD
 	{ "xd=", xd_setup },
@@ -889,37 +905,37 @@ static struct kernel_param cooked_params
 #endif
 #ifdef CONFIG_CDU31A
 	{ "cdu31a=", cdu31a_setup },
-#endif CONFIG_CDU31A
+#endif /* CONFIG_CDU31A */
 #ifdef CONFIG_MCD
 	{ "mcd=", mcd_setup },
-#endif CONFIG_MCD
+#endif /* CONFIG_MCD */
 #ifdef CONFIG_MCDX
 	{ "mcdx=", mcdx_setup },
-#endif CONFIG_MCDX
+#endif /* CONFIG_MCDX */
 #ifdef CONFIG_SBPCD
 	{ "sbpcd=", sbpcd_setup },
-#endif CONFIG_SBPCD
+#endif /* CONFIG_SBPCD */
 #ifdef CONFIG_AZTCD
 	{ "aztcd=", aztcd_setup },
-#endif CONFIG_AZTCD
+#endif /* CONFIG_AZTCD */
 #ifdef CONFIG_CDU535
 	{ "sonycd535=", sonycd535_setup },
-#endif CONFIG_CDU535
+#endif /* CONFIG_CDU535 */
 #ifdef CONFIG_GSCD
 	{ "gscd=", gscd_setup },
-#endif CONFIG_GSCD
+#endif /* CONFIG_GSCD */
 #ifdef CONFIG_CM206
 	{ "cm206=", cm206_setup },
-#endif CONFIG_CM206
+#endif /* CONFIG_CM206 */
 #ifdef CONFIG_OPTCD
 	{ "optcd=", optcd_setup },
-#endif CONFIG_OPTCD
+#endif /* CONFIG_OPTCD */
 #ifdef CONFIG_SJCD
 	{ "sjcd=", sjcd_setup },
-#endif CONFIG_SJCD
+#endif /* CONFIG_SJCD */
 #ifdef CONFIG_ISP16_CDI
 	{ "isp16=", isp16_setup },
-#endif CONFIG_ISP16_CDI
+#endif /* CONFIG_ISP16_CDI */
 #ifdef CONFIG_SOUND_OSS
 	{ "sound=", sound_setup },
 #endif
@@ -927,8 +943,8 @@ static struct kernel_param cooked_params
 	{ "icn=", icn_setup },
 #endif
 #ifdef CONFIG_ISDN_DRV_HISAX
-       { "hisax=", HiSax_setup },
-       { "HiSax=", HiSax_setup },
+	{ "hisax=", HiSax_setup },
+	{ "HiSax=", HiSax_setup },
 #endif
 #ifdef CONFIG_ISDN_DRV_PCBIT
 	{ "pcbit=", pcbit_setup },
@@ -949,7 +965,7 @@ static struct kernel_param cooked_params
 	    || defined(CONFIG_A4091_SCSI) || defined(CONFIG_MVME16x_SCSI) \
 	    || defined(CONFIG_BVME6000_SCSI) \
 	    || defined(CONFIG_BLZ603EPLUS_SCSI)
-        { "53c7xx=", ncr53c7xx_setup },
+	{ "53c7xx=", ncr53c7xx_setup },
 #endif
 #if defined(CONFIG_SCSI_SIM710)
 	{ "sim710=", sim710_setup },
@@ -1049,10 +1065,10 @@ static struct kernel_param raw_params[] 
 	{ "pf.", pf_setup },
 #endif
 #ifdef CONFIG_PARIDE_PT
-        { "pt.", pt_setup },
+	{ "pt.", pt_setup },
 #endif
 #ifdef CONFIG_PARIDE_PG
-        { "pg.", pg_setup },
+	{ "pg.", pg_setup },
 #endif
 #ifdef CONFIG_N2
 	{ "n2=", n2_setup },
@@ -1064,14 +1080,14 @@ static struct kernel_param raw_params[] 
 	{ "condev=", con3215_setup },
 #endif
 #ifdef CONFIG_MDISK
-        { "mdisk=", mdisk_setup },
+	{ "mdisk=", mdisk_setup },
 #endif
 #ifdef CONFIG_BLK_DEV_XPRAM
-        { "xpram_parts=", xpram_setup },
+	{ "xpram_parts=", xpram_setup },
 #endif
 #ifdef CONFIG_ARCH_S390
-        { "vmhalt=", vmhalt_setup },
-        { "vmpoff=", vmpoff_setup },
+	{ "vmhalt=", vmhalt_setup },
+	{ "vmpoff=", vmpoff_setup },
 #endif
 	{ 0, 0 }
 };
@@ -1080,20 +1096,20 @@ static struct kernel_param raw_params[] 
 #ifdef CONFIG_BLK_DEV_RAM
 static void __init ramdisk_start_setup(char *str, int *ints)
 {
-   if (ints[0] > 0 && ints[1] >= 0)
-      rd_image_start = ints[1];
+	if (ints[0] > 0 && ints[1] >= 0)
+		rd_image_start = ints[1];
 }
 
 static void __init load_ramdisk(char *str, int *ints)
 {
-   if (ints[0] > 0 && ints[1] >= 0)
-      rd_doload = ints[1] & 3;
+	if (ints[0] > 0 && ints[1] >= 0)
+		rd_doload = ints[1] & 3;
 }
 
 static void __init prompt_ramdisk(char *str, int *ints)
 {
-   if (ints[0] > 0 && ints[1] >= 0)
-      rd_prompt = ints[1] & 1;
+	if (ints[0] > 0 && ints[1] >= 0)
+		rd_prompt = ints[1] & 1;
 }
 
 static void __init ramdisk_size(char *str, int *ints)
@@ -1205,7 +1221,7 @@ void __init calibrate_delay(void)
 static void __init parse_options(char *line)
 {
 	char *next;
-        char *quote;
+	char *quote;
 	int args, envs;
 
 	if (!*line)
@@ -1215,24 +1231,24 @@ static void __init parse_options(char *l
 	next = line;
 	while ((line = next) != NULL) {
 		/* On S/390 we want to be able to pass an options that
-                 * contains blanks. For example vmhalt="IPL CMS". 
-                 * To allow that I added code that prevents blanks in
-                 * quotes to be recognized as delimiter. -- Martin
-                 */
-                quote = strchr(line,'"');
-                next = strchr(line, ' ');
-                while (next != NULL && quote != NULL && quote < next) {
-                        /* we found a left quote before the next blank
-                         * now we have to find the matching right quote
-                         */
-                        next = strchr(quote+1, '"');
-                        if (next != NULL) {
-                                quote = strchr(next+1, '"');
-                                next = strchr(next+1, ' ');
-                        }
-                }
-                if (next != NULL)
-                        *next++ = 0;
+		 * contains blanks. For example vmhalt="IPL CMS". 
+		 * To allow that I added code that prevents blanks in
+		 * quotes to be recognized as delimiter. -- Martin
+		 */
+		quote = strchr(line,'"');
+		next = strchr(line, ' ');
+		while (next != NULL && quote != NULL && quote < next) {
+			/* we found a left quote before the next blank
+			 * now we have to find the matching right quote
+			 */
+			next = strchr(quote+1, '"');
+			if (next != NULL) {
+				quote = strchr(next+1, '"');
+				next = strchr(next+1, ' ');
+			}
+		}
+		if (next != NULL)
+			*next++ = 0;
 		/*
 		 * check for kernel options first..
 		 */
@@ -1265,7 +1281,7 @@ static void __init parse_options(char *l
 		}
 		if (checksetup(line))
 			continue;
-		
+
 		/*
 		 * Then check if it's an environment variable or
 		 * an option.
@@ -1292,7 +1308,6 @@ extern void setup_arch(char **, unsigned
 /*
  *	Uniprocessor idle thread
  */
- 
 int cpu_idle(void *unused)
 {
 	for(;;)
@@ -1306,7 +1321,6 @@ int cpu_idle(void *unused)
 /*
  *	Multiprocessor idle thread is in arch/...
  */
- 
 extern int cpu_idle(void * unused);
 
 /* Called by boot processor to activate the rest. */
@@ -1325,10 +1339,10 @@ extern void initialize_secondary(void);
 /*
  *	Activate the first processor.
  */
- 
 asmlinkage void __init start_kernel(void)
 {
 	char * command_line;
+	extern char saved_command_line[];
 
 #ifdef __SMP__
 	static int boot_cpu = 1;
@@ -1340,13 +1354,14 @@ asmlinkage void __init start_kernel(void
 
 /*
  * Interrupts are still disabled. Do necessary setups, then
- * enable them
+ * enable them.
  */
 	printk(linux_banner);
 	setup_arch(&command_line, &memory_start, &memory_end);
+	printk("Kernel command line: %s\n", saved_command_line);
 	memory_start = paging_init(memory_start,memory_end);
 	trap_init();
-        memory_start = init_IRQ( memory_start );
+	memory_start = init_IRQ( memory_start );
 	sched_init();
 	time_init();
 	parse_options(command_line);
@@ -1382,7 +1397,7 @@ asmlinkage void __init start_kernel(void
 	mem_init(memory_start,memory_end);
 	kmem_cache_sizes_init();
 #ifdef CONFIG_3215_CONSOLE
-        con3215_activate();
+	con3215_activate();
 #endif
 #ifdef CONFIG_PROC_FS
 	proc_root_init();
@@ -1409,14 +1424,14 @@ asmlinkage void __init start_kernel(void
 	printk("POSIX conformance testing by UNIFIX\n");
 
 	/* 
-	 *	We count on the initial thread going ok 
-	 *	Like idlers init is an unlocked kernel thread, which will
-	 *	make syscalls (and thus be locked).
+	 * We count on the initial thread going ok.
+	 * Like idlers init is an unlocked kernel thread, which will
+	 * make syscalls (and thus be locked).
 	 */
 	smp_init();
 	kernel_thread(init, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
 	current->need_resched = 1;
- 	cpu_idle(NULL);
+	cpu_idle(NULL);
 }
 
 #ifdef CONFIG_BLK_DEV_INITRD
@@ -1446,7 +1461,7 @@ static void __init do_initcalls(void)
 	initcall_t *call;
 
 	call = &__initcall_start;
-	
+
 	while (call < &__initcall_end)
 	{
 		(*call)();
@@ -1540,13 +1555,12 @@ static void __init do_basic_setup(void)
 #if CONFIG_AP1000
 	/* Start the async paging daemon. */
 	{
-	  extern int asyncd(void *);	 
-	  kernel_thread(asyncd, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
+		extern int asyncd(void *);	 
+		kernel_thread(asyncd, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
 	}
 #endif
 
 #ifdef CONFIG_BLK_DEV_INITRD
-
 	real_root_dev = ROOT_DEV;
 	real_root_mountflags = root_mountflags;
 	if (initrd_start && mount_initrd) root_mountflags &= ~MS_RDONLY;
@@ -1563,14 +1577,13 @@ static void __init do_basic_setup(void)
 	binfmt_setup();
 
 	/* the functions marked initcall  */
-	
 	do_initcalls();
 
 	/* .. filesystems .. */
 	filesystem_setup();
 
 #ifdef CONFIG_IRDA
-	irda_device_init(); /* Must be done after protocol initialization */
+	irda_device_init();	/* Must be done after protocol initialization */
 #endif
 
 #ifdef CONFIG_MICROCODE
@@ -1619,14 +1632,13 @@ static int init(void * unused)
 
 	(void) dup(0);
 	(void) dup(0);
-	
+
 	/*
 	 * We try each of these until one succeeds.
 	 *
 	 * The Bourne shell can be used instead of init if we are 
 	 * trying to recover a really broken machine.
 	 */
-
 	if (execute_command)
 		execve(execute_command,argv_init,envp_init);
 	execve("/sbin/init",argv_init,envp_init);
diff -Naurp linux-2.2.26-vanilla/kernel/ksyms.c linux-2.2.27-rc2/kernel/ksyms.c
--- linux-2.2.26-vanilla/kernel/ksyms.c	2001-11-02 17:39:16.000000000 +0100
+++ linux-2.2.27-rc2/kernel/ksyms.c	2005-01-13 00:05:40.000000000 +0100
@@ -362,6 +362,7 @@ EXPORT_SYMBOL(panic);
 EXPORT_SYMBOL(printk);
 EXPORT_SYMBOL(sprintf);
 EXPORT_SYMBOL(vsprintf);
+EXPORT_SYMBOL(vsnprintf);
 EXPORT_SYMBOL(kdevname);
 EXPORT_SYMBOL(bdevname);
 EXPORT_SYMBOL(cdevname);
diff -Naurp linux-2.2.26-vanilla/kernel/printk.c linux-2.2.27-rc2/kernel/printk.c
--- linux-2.2.26-vanilla/kernel/printk.c	2002-09-16 18:26:33.000000000 +0200
+++ linux-2.2.27-rc2/kernel/printk.c	2005-01-13 00:05:40.000000000 +0100
@@ -260,7 +260,7 @@ asmlinkage int printk(const char *fmt, .
 
 	spin_lock_irqsave(&console_lock, flags);
 	va_start(args, fmt);
-	i = _vsnprintf(buf + 3, sizeof(buf) - sizeof(buf) / 8 - 3, fmt, args);
+	i = vsnprintf(buf + 3, sizeof(buf) - sizeof(buf) / 8 - 3, fmt, args);
 	buf_end = buf + 3 + i;
 	va_end(args);
 	for (p = buf + 3; p < buf_end; p++) {
diff -Naurp linux-2.2.26-vanilla/lib/vsprintf.c linux-2.2.27-rc2/lib/vsprintf.c
--- linux-2.2.26-vanilla/lib/vsprintf.c	2002-09-16 18:26:33.000000000 +0200
+++ linux-2.2.27-rc2/lib/vsprintf.c	2005-01-13 00:05:40.000000000 +0100
@@ -142,7 +142,7 @@ static char * number(char * str, long nu
 /* Forward decl. needed for IP address printing stuff... */
 int sprintf(char * buf, const char *fmt, ...);
 
-int _vsnprintf(char *buf, int n, const char *fmt, va_list args)
+int vsnprintf(char *buf, int n, const char *fmt, va_list args)
 {
 	int len;
 	unsigned long num;
@@ -314,7 +314,7 @@ int _vsnprintf(char *buf, int n, const c
 
 int vsprintf(char *buf, const char *fmt, va_list args)
 {
-	return _vsnprintf(buf, -1, fmt, args);
+	return vsnprintf(buf, -1, fmt, args);
 }
 
 int sprintf(char * buf, const char *fmt, ...)
diff -Naurp linux-2.2.26-vanilla/mm/mmap.c linux-2.2.27-rc2/mm/mmap.c
--- linux-2.2.26-vanilla/mm/mmap.c	2005-01-13 00:04:56.000000000 +0100
+++ linux-2.2.27-rc2/mm/mmap.c	2005-01-13 00:05:40.000000000 +0100
@@ -176,8 +176,13 @@ unsigned long do_mmap(struct file * file
 	struct vm_area_struct * vma;
 	int error;
 
-	if (file && (!file->f_op || !file->f_op->mmap))
-		return -ENODEV;
+	if (file) {
+		if (!file->f_op || !file->f_op->mmap)
+			return -ENODEV;
+
+		if ((prot & PROT_EXEC) && IS_NOEXEC(file->f_dentry->d_inode))
+			return -EPERM;
+	}
 
 	if ((len = PAGE_ALIGN(len)) == 0)
 		return addr;
diff -Naurp linux-2.2.26-vanilla/mm/mremap.c linux-2.2.27-rc2/mm/mremap.c
--- linux-2.2.26-vanilla/mm/mremap.c	2005-01-13 00:04:56.000000000 +0100
+++ linux-2.2.27-rc2/mm/mremap.c	2005-01-13 00:05:40.000000000 +0100
@@ -9,115 +9,119 @@
 #include <linux/shm.h>
 #include <linux/mman.h>
 #include <linux/swap.h>
+#include <linux/file.h>
 
 #include <asm/uaccess.h>
 #include <asm/pgtable.h>
 
 extern int vm_enough_memory(long pages);
 
-static inline pte_t *get_one_pte(struct mm_struct *mm, unsigned long addr)
-{
-	pgd_t * pgd;
-	pmd_t * pmd;
-	pte_t * pte = NULL;
-
-	pgd = pgd_offset(mm, addr);
-	if (pgd_none(*pgd))
-		goto end;
-	if (pgd_bad(*pgd)) {
-		printk("move_one_page: bad source pgd (%08lx)\n", pgd_val(*pgd));
-		pgd_clear(pgd);
-		goto end;
-	}
-
-	pmd = pmd_offset(pgd, addr);
-	if (pmd_none(*pmd))
-		goto end;
-	if (pmd_bad(*pmd)) {
-		printk("move_one_page: bad source pmd (%08lx)\n", pmd_val(*pmd));
-		pmd_clear(pmd);
-		goto end;
-	}
-
-	pte = pte_offset(pmd, addr);
-	if (pte_none(*pte))
-		pte = NULL;
-end:
-	return pte;
-}
-
-static inline pte_t *alloc_one_pte(struct mm_struct *mm, unsigned long addr)
-{
-	pmd_t * pmd;
-	pte_t * pte = NULL;
-
-	pmd = pmd_alloc(pgd_offset(mm, addr), addr);
-	if (pmd)
-		pte = pte_alloc(pmd, addr);
-	return pte;
-}
-
-static inline int copy_one_pte(pte_t * src, pte_t * dst)
-{
-	int error = 0;
-	pte_t pte = *src;
+#define PTE_TABLE_MASK ((PTRS_PER_PTE - 1) * sizeof(pte_t))
+#define PMD_TABLE_MASK ((PTRS_PER_PMD - 1) * sizeof(pmd_t))
 
-	if (!pte_none(pte)) {
-		error++;
-		if (dst) {
-			pte_clear(src);
-			set_pte(dst, pte);
-			error--;
-		}
-	}
-	return error;
-}
-
-static int move_one_page(struct mm_struct *mm, unsigned long old_addr, unsigned long new_addr)
-{
-	int error = 0;
-	pte_t * src;
-
-	src = get_one_pte(mm, old_addr);
-	if (src)
-		error = copy_one_pte(src, alloc_one_pte(mm, new_addr));
-	return error;
-}
+/* Idea borrowed from copy_page_range(), see mm/memory.c */
 
-static int move_page_tables(struct mm_struct * mm,
+static int copy_page_tables(struct mm_struct * mm,
 	unsigned long new_addr, unsigned long old_addr, unsigned long len)
 {
-	unsigned long offset = len;
-
-	flush_cache_range(mm, old_addr, old_addr + len);
-
-	/*
-	 * This is not the clever way to do this, but we're taking the
-	 * easy way out on the assumption that most remappings will be
-	 * only a few pages.. This also makes error recovery easier.
-	 */
-	while (offset) {
-		offset -= PAGE_SIZE;
-		if (move_one_page(mm, old_addr + offset, new_addr + offset))
-			goto oops_we_failed;
+	pgd_t * src_pgd, * dst_pgd;
+	pmd_t * dst_pmd;
+	register pte_t * dst_pte;
+	unsigned long src_addr, dst_addr, end;
+
+	dst_addr = (new_addr &= PAGE_MASK);
+	end = (src_addr = (old_addr &= PAGE_MASK)) + len;
+	src_pgd = pgd_offset(mm, src_addr);
+	dst_pgd = pgd_offset(mm, dst_addr);
+	if (!(dst_pmd = pmd_alloc(dst_pgd, dst_addr)) ||
+	    !(dst_pte = pte_alloc(dst_pmd, dst_addr)))
+		goto oops_we_failed;
+
+	for (;; src_pgd++) {
+		pmd_t * src_pmd;
+
+		if (pgd_none(*src_pgd))
+			goto skip_copy_pmd_range;
+		if (pgd_bad(*src_pgd)) {
+			printk(KERN_ERR "copy_page_tables: bad source pgd (%08lx)\n", pgd_val(*src_pgd));
+			pgd_clear(src_pgd);
+skip_copy_pmd_range:
+			src_addr = (src_addr + PGDIR_SIZE) & PGDIR_MASK;
+			if (src_addr >= end)
+				return 0;
+			dst_addr = new_addr + (src_addr - old_addr);
+			dst_pgd = pgd_offset(mm, dst_addr);
+			if (!(dst_pmd = pmd_alloc(dst_pgd, dst_addr)) ||
+			    !(dst_pte = pte_alloc(dst_pmd, dst_addr)))
+				goto oops_we_failed;
+			continue;
+		}
+		src_pmd = pmd_offset(src_pgd, src_addr);
+		do {
+			register pte_t * src_pte;
+
+			if (pmd_none(*src_pmd))
+				goto skip_copy_pte_range;
+			if (pmd_bad(*src_pmd)) {
+				printk(KERN_ERR "copy_page_tables: bad source pmd (%08lx)\n", pmd_val(*src_pmd));
+				pmd_clear(src_pmd);
+skip_copy_pte_range:
+				src_addr = (src_addr + PMD_SIZE) & PMD_MASK;
+				if (src_addr >= end)
+					return 0;
+				dst_addr = new_addr + (src_addr - old_addr);
+				dst_pgd = pgd_offset(mm, dst_addr);
+				if (!(dst_pmd = pmd_alloc(dst_pgd, dst_addr)) ||
+				    !(dst_pte = pte_alloc(dst_pmd, dst_addr)))
+					goto oops_we_failed;
+				continue;
+			}
+			src_pte = pte_offset(src_pmd, src_addr);
+			do {
+				register pte_t pte = *src_pte;
+
+				if (!pte_none(pte)) {
+					if (!pte_present(pte))
+						swap_duplicate(pte_val(pte));
+					else {
+						register unsigned long page_nr =
+						    (pte_val(pte) >> PAGE_SHIFT);
+
+						if (!(page_nr >= max_mapnr || 
+						    PageReserved(mem_map+page_nr)))
+							atomic_inc(&mem_map[page_nr].count);
+					}
+					set_pte(dst_pte, pte);
+				}
+				if ((src_addr += PAGE_SIZE) >= end)
+					return 0;
+				dst_addr += PAGE_SIZE;
+				if (!((unsigned long) ++dst_pte & PTE_TABLE_MASK)) {
+					if (!((unsigned long) ++dst_pmd
+					      & PMD_TABLE_MASK) &&
+					    !(dst_pmd = pmd_alloc(++dst_pgd,
+								  dst_addr)))
+						goto oops_we_failed;
+					if (!(dst_pte = pte_alloc(dst_pmd,
+								  dst_addr)))
+						goto oops_we_failed;
+				}
+			} while ((unsigned long) ++src_pte & PTE_TABLE_MASK);
+		} while ((unsigned long) ++src_pmd & PMD_TABLE_MASK);
 	}
-	flush_tlb_range(mm, old_addr, old_addr + len);
 	return 0;
 
 	/*
-	 * Ok, the move failed because we didn't have enough pages for
+	 * Ok, the copy failed because we didn't have enough pages for
 	 * the new page table tree. This is unlikely, but we have to
-	 * take the possibility into account. In that case we just move
-	 * all the pages back (this will work, because we still have
-	 * the old page tables)
+	 * take the possibility into account. In that case we just remove
+	 * all the fresh copies of pages.
 	 */
 oops_we_failed:
 	flush_cache_range(mm, new_addr, new_addr + len);
-	while ((offset += PAGE_SIZE) < len)
-		move_one_page(mm, new_addr + offset, old_addr + offset);
 	zap_page_range(mm, new_addr, len);
 	flush_tlb_range(mm, new_addr, new_addr + len);
-	return -1;
+	return -ENOMEM;
 }
 
 static inline unsigned long move_vma(struct vm_area_struct * vma,
@@ -127,9 +131,11 @@ static inline unsigned long move_vma(str
 
 	new_vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL);
 	if (new_vma) {
-		unsigned long new_addr = get_unmapped_area(addr, new_len);
+		unsigned long new_addr = get_unmapped_area(0, new_len);
+
+		if (new_addr && !copy_page_tables(current->mm, new_addr, addr, old_len)) {
+			unsigned long ret;
 
-		if (new_addr && !move_page_tables(current->mm, new_addr, addr, old_len)) {
 			*new_vma = *vma;
 			new_vma->vm_start = new_addr;
 			new_vma->vm_end = new_addr+new_len;
@@ -138,10 +144,19 @@ static inline unsigned long move_vma(str
 				new_vma->vm_file->f_count++;
 			if (new_vma->vm_ops && new_vma->vm_ops->open)
 				new_vma->vm_ops->open(new_vma);
+			if ((ret = do_munmap(addr, old_len))) {
+				if (new_vma->vm_ops && new_vma->vm_ops->close)
+					new_vma->vm_ops->close(new_vma);
+				if (new_vma->vm_file)
+					fput(new_vma->vm_file);
+				flush_cache_range(current->mm, new_addr, new_addr + old_len);
+				zap_page_range(current->mm, new_addr, old_len);
+				flush_tlb_range(current->mm, new_addr, new_addr + old_len);
+				kmem_cache_free(vm_area_cachep, new_vma);
+				return ret;
+			}
 			insert_vm_struct(current->mm, new_vma);
 			merge_segments(current->mm, new_vma->vm_start, new_vma->vm_end);
-			/* XXX: possible errors masked, mapping might remain */
-			do_munmap(addr, old_len);
 			current->mm->total_vm += new_len >> PAGE_SHIFT;
 			if (new_vma->vm_flags & VM_LOCKED) {
 				current->mm->locked_vm += new_len >> PAGE_SHIFT;
@@ -168,30 +183,25 @@ asmlinkage unsigned long sys_mremap(unsi
 
 	down(&current->mm->mmap_sem);
 	lock_kernel();
-	if (addr & ~PAGE_MASK)
-		goto out;
-	old_len = PAGE_ALIGN(old_len);
-	new_len = PAGE_ALIGN(new_len);
-
-	if (old_len > TASK_SIZE || addr > TASK_SIZE - old_len)
-		goto out;
-
-	if (addr >= TASK_SIZE)
+	if ((addr & ~PAGE_MASK) || !(old_len = PAGE_ALIGN(old_len)) ||
+	    old_len > TASK_SIZE || addr > TASK_SIZE - old_len ||
+	    (new_len = PAGE_ALIGN(new_len)) > TASK_SIZE)
 		goto out;
 
 	/*
 	 * Always allow a shrinking remap: that just unmaps
 	 * the unnecessary pages..
 	 */
-	if (old_len >= new_len) {
-		ret = do_munmap(addr+new_len, old_len - new_len);
-		if (!ret || old_len == new_len)
+	if (old_len > new_len) {
+		if (!(ret = do_munmap(addr + new_len, old_len - new_len)))
 			ret = addr;
 		goto out;
 	}
 
-	if (new_len > TASK_SIZE || addr > TASK_SIZE - new_len)
+	if (old_len == new_len) {
+		ret = addr;
 		goto out;
+	}
 
 	/*
 	 * Ok, we need to grow..
diff -Naurp linux-2.2.26-vanilla/net/Config.in linux-2.2.27-rc2/net/Config.in
--- linux-2.2.26-vanilla/net/Config.in	2001-03-25 18:37:41.000000000 +0200
+++ linux-2.2.27-rc2/net/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -20,7 +20,7 @@ if [ "$CONFIG_INET" = "y" ]; then
     tristate 'The IPv6 protocol (EXPERIMENTAL)' CONFIG_IPV6
 #   bool 'The IPv6 protocol (EXPERIMENTAL)' CONFIG_IPV6
     if [ "$CONFIG_IPV6" != "n" ]; then
-	    source net/ipv6/Config.in
+      source net/ipv6/Config.in
     fi
   fi
 fi
diff -Naurp linux-2.2.26-vanilla/net/ax25/Config.in linux-2.2.27-rc2/net/ax25/Config.in
--- linux-2.2.26-vanilla/net/ax25/Config.in	2001-03-25 18:31:11.000000000 +0200
+++ linux-2.2.27-rc2/net/ax25/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -8,12 +8,12 @@ bool 'Amateur Radio support' CONFIG_HAMR
 if [ "$CONFIG_HAMRADIO" != "n" ] ; then
   if [ "$CONFIG_NET" != "n" ] ; then
     comment 'Packet Radio protocols'
-    tristate 'Amateur Radio AX.25 Level 2 protocol' CONFIG_AX25
+    tristate '  Amateur Radio AX.25 Level 2 protocol' CONFIG_AX25
     if [ "$CONFIG_AX25" != "n" ]; then
-      bool '   AX.25 DAMA Slave support' CONFIG_AX25_DAMA_SLAVE
-#     bool '   AX.25 DAMA Master support' CONFIG_AX25_DAMA_MASTER
-      dep_tristate '   Amateur Radio NET/ROM protocol' CONFIG_NETROM $CONFIG_AX25
-      dep_tristate '   Amateur Radio X.25 PLP (Rose)' CONFIG_ROSE $CONFIG_AX25
+      bool '    AX.25 DAMA Slave support' CONFIG_AX25_DAMA_SLAVE
+#     bool '    AX.25 DAMA Master support' CONFIG_AX25_DAMA_MASTER
+      dep_tristate '    Amateur Radio NET/ROM protocol' CONFIG_NETROM $CONFIG_AX25
+      dep_tristate '    Amateur Radio X.25 PLP (Rose)' CONFIG_ROSE $CONFIG_AX25
     fi
 
     if [ "$CONFIG_AX25" != "n" ]; then
diff -Naurp linux-2.2.26-vanilla/net/core/scm.c linux-2.2.27-rc2/net/core/scm.c
--- linux-2.2.26-vanilla/net/core/scm.c	2001-03-25 18:31:12.000000000 +0200
+++ linux-2.2.27-rc2/net/core/scm.c	2005-01-13 00:05:40.000000000 +0100
@@ -129,9 +129,7 @@ int __scm_send(struct socket *sock, stru
 		   for too short ancillary data object at all! Oops.
 		   OK, let's add it...
 		 */
-		if (cmsg->cmsg_len < sizeof(struct cmsghdr) ||
-		    (unsigned long)(((char*)cmsg - (char*)msg->msg_control)
-				    + cmsg->cmsg_len) > msg->msg_controllen)
+		if (!CMSG_OK(msg, cmsg))
 			goto error;
 
 		if (cmsg->cmsg_level != SOL_SOCKET)
diff -Naurp linux-2.2.26-vanilla/net/core/skbuff.c linux-2.2.27-rc2/net/core/skbuff.c
--- linux-2.2.26-vanilla/net/core/skbuff.c	2005-01-13 00:04:16.000000000 +0100
+++ linux-2.2.27-rc2/net/core/skbuff.c	2005-01-13 00:05:40.000000000 +0100
@@ -365,13 +365,16 @@ struct sk_buff *skb_realloc_headroom(str
 {
 	struct sk_buff *n;
 	unsigned long offset;
-	int headroom = skb_headroom(skb);
+	int delta = newheadroom - skb_headroom(skb);
+
+	if (delta <= 0)
+		delta = 0;
 
 	/*
 	 *	Allocate the copy buffer
 	 */
  	 
-	n=alloc_skb(skb->truesize+newheadroom-headroom, GFP_ATOMIC);
+	n=alloc_skb(skb->truesize + delta, GFP_ATOMIC);
 	if(n==NULL)
 		return NULL;
 
diff -Naurp linux-2.2.26-vanilla/net/ipv4/Config.in linux-2.2.27-rc2/net/ipv4/Config.in
--- linux-2.2.26-vanilla/net/ipv4/Config.in	2001-03-25 18:31:12.000000000 +0200
+++ linux-2.2.27-rc2/net/ipv4/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -6,13 +6,13 @@ bool 'IP: advanced router' CONFIG_IP_ADV
 if [ "$CONFIG_IP_ADVANCED_ROUTER" = "y" ]; then
   define_bool CONFIG_RTNETLINK y	
   define_bool CONFIG_NETLINK y
-  bool 'IP: policy routing' CONFIG_IP_MULTIPLE_TABLES
-  bool 'IP: equal cost multipath' CONFIG_IP_ROUTE_MULTIPATH
-  bool 'IP: use TOS value as routing key' CONFIG_IP_ROUTE_TOS
-  bool 'IP: verbose route monitoring' CONFIG_IP_ROUTE_VERBOSE
-  bool 'IP: large routing tables' CONFIG_IP_ROUTE_LARGE_TABLES
+  bool '  IP: policy routing' CONFIG_IP_MULTIPLE_TABLES
+  bool '  IP: equal cost multipath' CONFIG_IP_ROUTE_MULTIPATH
+  bool '  IP: use TOS value as routing key' CONFIG_IP_ROUTE_TOS
+  bool '  IP: verbose route monitoring' CONFIG_IP_ROUTE_VERBOSE
+  bool '  IP: large routing tables' CONFIG_IP_ROUTE_LARGE_TABLES
   if [ "$CONFIG_IP_MULTIPLE_TABLES" = "y" ]; then
-    bool 'IP: fast network address translation' CONFIG_IP_ROUTE_NAT
+    bool '    IP: fast network address translation' CONFIG_IP_ROUTE_NAT
   fi
 fi
 bool 'IP: kernel-level configuration support' CONFIG_IP_PNP
@@ -27,13 +27,13 @@ if [ "$CONFIG_FIREWALL" = "y" ]; then
   bool 'IP: firewalling' CONFIG_IP_FIREWALL
   if [ "$CONFIG_IP_FIREWALL" = "y" ]; then
     if [ "$CONFIG_NETLINK" = "y" ]; then
-	bool 'IP: firewall packet netlink device' CONFIG_IP_FIREWALL_NETLINK
+	bool '  IP: firewall packet netlink device' CONFIG_IP_FIREWALL_NETLINK
 	if [ "$CONFIG_IP_FIREWALL_NETLINK" = "y" ]; then
 	    define_bool CONFIG_NETLINK_DEV y
 	fi
     fi
     if [ "$CONFIG_IP_MULTIPLE_TABLES" = "y" ]; then
-	bool 'IP: use FWMARK value as routing key' CONFIG_IP_ROUTE_FWMARK
+	bool '  IP: use FWMARK value as routing key' CONFIG_IP_ROUTE_FWMARK
     fi
   fi
 fi
diff -Naurp linux-2.2.26-vanilla/net/ipv4/ip_gre.c linux-2.2.27-rc2/net/ipv4/ip_gre.c
--- linux-2.2.26-vanilla/net/ipv4/ip_gre.c	2001-03-25 18:31:12.000000000 +0200
+++ linux-2.2.27-rc2/net/ipv4/ip_gre.c	2005-01-13 00:05:40.000000000 +0100
@@ -746,6 +746,7 @@ static int ipgre_tunnel_xmit(struct sk_b
 			skb_set_owner_w(new_skb, skb->sk);
 		dev_kfree_skb(skb);
 		skb = new_skb;
+		old_iph = skb->nh.iph;
 	}
 
 	skb->nh.raw = skb_push(skb, gre_hlen);
diff -Naurp linux-2.2.26-vanilla/net/ipv4/ip_options.c linux-2.2.27-rc2/net/ipv4/ip_options.c
--- linux-2.2.26-vanilla/net/ipv4/ip_options.c	2005-01-13 00:04:14.000000000 +0100
+++ linux-2.2.27-rc2/net/ipv4/ip_options.c	2005-01-13 00:05:40.000000000 +0100
@@ -512,6 +512,8 @@ int ip_options_get(struct ip_options **o
 		kfree_s(opt, sizeof(struct ip_options) + optlen);
 		return -EINVAL;
 	}
+	if (*optp)
+		kfree(*optp);
 	*optp = opt;
 	return 0;
 }
diff -Naurp linux-2.2.26-vanilla/net/ipv4/ip_sockglue.c linux-2.2.27-rc2/net/ipv4/ip_sockglue.c
--- linux-2.2.26-vanilla/net/ipv4/ip_sockglue.c	2001-11-02 17:39:16.000000000 +0100
+++ linux-2.2.27-rc2/net/ipv4/ip_sockglue.c	2005-01-13 00:05:40.000000000 +0100
@@ -150,11 +150,8 @@ int ip_cmsg_send(struct msghdr *msg, str
 	struct cmsghdr *cmsg;
 
 	for (cmsg = CMSG_FIRSTHDR(msg); cmsg; cmsg = CMSG_NXTHDR(msg, cmsg)) {
-		if (cmsg->cmsg_len < sizeof(struct cmsghdr) ||
-		    (unsigned long)(((char*)cmsg - (char*)msg->msg_control)
-				    + cmsg->cmsg_len) > msg->msg_controllen) {
+		if (!CMSG_OK(msg, cmsg))
 			return -EINVAL;
-		}
 		if (cmsg->cmsg_level != SOL_IP)
 			continue;
 		switch (cmsg->cmsg_type) {
diff -Naurp linux-2.2.26-vanilla/net/ipv4/ipip.c linux-2.2.27-rc2/net/ipv4/ipip.c
--- linux-2.2.26-vanilla/net/ipv4/ipip.c	2001-03-25 18:31:12.000000000 +0200
+++ linux-2.2.27-rc2/net/ipv4/ipip.c	2005-01-13 00:05:40.000000000 +0100
@@ -573,6 +573,7 @@ static int ipip_tunnel_xmit(struct sk_bu
 			skb_set_owner_w(new_skb, skb->sk);
 		dev_kfree_skb(skb);
 		skb = new_skb;
+		old_iph = skb->nh.iph;
 	}
 
 	skb->nh.raw = skb_push(skb, sizeof(struct iphdr));
diff -Naurp linux-2.2.26-vanilla/net/ipv4/tcp.c linux-2.2.27-rc2/net/ipv4/tcp.c
--- linux-2.2.26-vanilla/net/ipv4/tcp.c	2002-09-16 18:26:34.000000000 +0200
+++ linux-2.2.27-rc2/net/ipv4/tcp.c	2005-01-13 00:05:40.000000000 +0100
@@ -823,7 +823,7 @@ int tcp_do_sendmsg(struct sock *sk, stru
 				 */
 				if (skb_tailroom(skb) > 0 &&
 				    (mss_now - copy) > 0 &&
-				    tp->snd_nxt < TCP_SKB_CB(skb)->end_seq) {
+				    before(tp->snd_nxt, TCP_SKB_CB(skb)->end_seq)) {
 					int last_byte_was_odd = (copy % 4);
 
 					/* 
diff -Naurp linux-2.2.26-vanilla/net/ipv4/tcp_timer.c linux-2.2.27-rc2/net/ipv4/tcp_timer.c
--- linux-2.2.26-vanilla/net/ipv4/tcp_timer.c	2001-03-25 18:31:12.000000000 +0200
+++ linux-2.2.27-rc2/net/ipv4/tcp_timer.c	2005-01-13 00:05:40.000000000 +0100
@@ -256,7 +256,7 @@ static __inline__ int tcp_keepopen_proc(
 				tcp_set_state(sk, TCP_CLOSE);
 				sk->shutdown = SHUTDOWN_MASK;
 				if (!sk->dead)
-					sk->state_change(sk);
+					sk->error_report(sk);
 			} else {
 				tp->probes_out++;
 				tp->pending = TIME_KEEPOPEN;
diff -Naurp linux-2.2.26-vanilla/net/ipv6/Config.in linux-2.2.27-rc2/net/ipv6/Config.in
--- linux-2.2.26-vanilla/net/ipv6/Config.in	2001-03-25 18:31:13.000000000 +0200
+++ linux-2.2.27-rc2/net/ipv6/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -1,16 +1,16 @@
 #
 # IPv6 configuration
 # 
-bool 'IPv6: enable EUI-64 token format' CONFIG_IPV6_EUI64
+bool '  IPv6: enable EUI-64 token format' CONFIG_IPV6_EUI64
 if [ "$CONFIG_IPV6_EUI64" = "y" ]; then
-  bool 'IPv6: disable provider based addresses' CONFIG_IPV6_NO_PB
+  bool '    IPv6: disable provider based addresses' CONFIG_IPV6_NO_PB
 fi
 if [ "$CONFIG_NETLINK" = "y" ]; then
   if [ "$CONFIG_NETLINK_DEV" != "n" ]; then
     if [ "$CONFIG_RTNETLINK" = "n" ]; then
-      bool 'IPv6: routing messages via old netlink' CONFIG_IPV6_NETLINK
+      bool '  IPv6: routing messages via old netlink' CONFIG_IPV6_NETLINK
     fi
   fi
 fi
-#bool 'IPv6: flow policy support' CONFIG_RT6_POLICY
-#bool 'IPv6: firewall support' CONFIG_IPV6_FIREWALL
+#bool '  IPv6: flow policy support' CONFIG_RT6_POLICY
+#bool '  IPv6: firewall support' CONFIG_IPV6_FIREWALL
diff -Naurp linux-2.2.26-vanilla/net/ipv6/datagram.c linux-2.2.27-rc2/net/ipv6/datagram.c
--- linux-2.2.26-vanilla/net/ipv6/datagram.c	2001-03-25 18:31:13.000000000 +0200
+++ linux-2.2.27-rc2/net/ipv6/datagram.c	2005-01-13 00:05:40.000000000 +0100
@@ -243,9 +243,7 @@ int datagram_send_ctl(struct msghdr *msg
 
 	for (cmsg = CMSG_FIRSTHDR(msg); cmsg; cmsg = CMSG_NXTHDR(msg, cmsg)) {
 
-		if (cmsg->cmsg_len < sizeof(struct cmsghdr) ||
-		    (unsigned long)(((char*)cmsg - (char*)msg->msg_control)
-				    + cmsg->cmsg_len) > msg->msg_controllen) {
+		if (!CMSG_OK(msg, cmsg)) {
 			err = -EINVAL;
 			goto exit_f;
 		}
diff -Naurp linux-2.2.26-vanilla/net/ipv6/sit.c linux-2.2.27-rc2/net/ipv6/sit.c
--- linux-2.2.26-vanilla/net/ipv6/sit.c	2001-03-25 18:31:13.000000000 +0200
+++ linux-2.2.27-rc2/net/ipv6/sit.c	2005-01-13 00:05:40.000000000 +0100
@@ -496,6 +496,7 @@ static int ipip6_tunnel_xmit(struct sk_b
 			skb_set_owner_w(new_skb, skb->sk);
 		dev_kfree_skb(skb);
 		skb = new_skb;
+		iph6 = skb->nh.ipv6h;
 	}
 
 	skb->nh.raw = skb_push(skb, sizeof(struct iphdr));
diff -Naurp linux-2.2.26-vanilla/net/ipx/Config.in linux-2.2.27-rc2/net/ipx/Config.in
--- linux-2.2.26-vanilla/net/ipx/Config.in	2001-03-25 18:31:13.000000000 +0200
+++ linux-2.2.27-rc2/net/ipx/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -2,7 +2,7 @@
 # IPX configuration
 #
 
-bool 'IPX: Full internal IPX network' CONFIG_IPX_INTERN
+bool '  IPX: Full internal IPX network' CONFIG_IPX_INTERN
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-  dep_tristate 'IPX: SPX networking (EXPERIMENTAL)' CONFIG_SPX $CONFIG_IPX
+  dep_tristate '  IPX: SPX networking (EXPERIMENTAL)' CONFIG_SPX $CONFIG_IPX
 fi
diff -Naurp linux-2.2.26-vanilla/net/rose/rose_route.c linux-2.2.27-rc2/net/rose/rose_route.c
--- linux-2.2.26-vanilla/net/rose/rose_route.c	2001-03-25 18:31:13.000000000 +0200
+++ linux-2.2.27-rc2/net/rose/rose_route.c	2005-01-13 00:06:14.000000000 +0100
@@ -629,6 +629,9 @@ int rose_rt_ioctl(unsigned int cmd, void
 			if (rose_route.mask > 10) /* Mask can't be more than 10 digits */
 				return -EINVAL;
 
+			if (rose_route.ndigis > 8) /* No more than 8 digipeats */
+				return -EINVAL;
+
 			return rose_add_node(&rose_route, dev);
 
 		case SIOCDELRT:
diff -Naurp linux-2.2.26-vanilla/net/sched/Config.in linux-2.2.27-rc2/net/sched/Config.in
--- linux-2.2.26-vanilla/net/sched/Config.in	2001-03-25 18:31:14.000000000 +0200
+++ linux-2.2.27-rc2/net/sched/Config.in	2005-01-13 00:05:40.000000000 +0100
@@ -3,31 +3,31 @@
 # 
 define_bool CONFIG_NETLINK y
 define_bool CONFIG_RTNETLINK y	
-tristate 'CBQ packet scheduler' CONFIG_NET_SCH_CBQ
-tristate 'CSZ packet scheduler' CONFIG_NET_SCH_CSZ
-#tristate 'H-PFQ packet scheduler' CONFIG_NET_SCH_HPFQ
-#tristate 'H-FSC packet scheduler' CONFIG_NET_SCH_HFCS
-tristate 'The simplest PRIO pseudoscheduler' CONFIG_NET_SCH_PRIO
-tristate 'RED queue' CONFIG_NET_SCH_RED
-tristate 'SFQ queue' CONFIG_NET_SCH_SFQ
-tristate 'TEQL queue' CONFIG_NET_SCH_TEQL
-tristate 'TBF queue' CONFIG_NET_SCH_TBF
-bool 'QoS support' CONFIG_NET_QOS
+tristate '  CBQ packet scheduler' CONFIG_NET_SCH_CBQ
+tristate '  CSZ packet scheduler' CONFIG_NET_SCH_CSZ
+#tristate '  H-PFQ packet scheduler' CONFIG_NET_SCH_HPFQ
+#tristate '  H-FSC packet scheduler' CONFIG_NET_SCH_HFCS
+tristate '  The simplest PRIO pseudoscheduler' CONFIG_NET_SCH_PRIO
+tristate '  RED queue' CONFIG_NET_SCH_RED
+tristate '  SFQ queue' CONFIG_NET_SCH_SFQ
+tristate '  TEQL queue' CONFIG_NET_SCH_TEQL
+tristate '  TBF queue' CONFIG_NET_SCH_TBF
+bool '  QoS support' CONFIG_NET_QOS
 if [ "$CONFIG_NET_QOS" = "y" ]; then
-    bool 'Rate estimator' CONFIG_NET_ESTIMATOR
+    bool '    Rate estimator' CONFIG_NET_ESTIMATOR
 fi
-bool 'Packet classifier API' CONFIG_NET_CLS
+bool '  Packet classifier API' CONFIG_NET_CLS
 if [ "$CONFIG_NET_CLS" = "y" ]; then
-  tristate 'Routing table based classifier' CONFIG_NET_CLS_ROUTE4
+  tristate '    Routing table based classifier' CONFIG_NET_CLS_ROUTE4
   if [ "$CONFIG_NET_CLS_ROUTE4" != "n" ]; then
     define_bool CONFIG_NET_CLS_ROUTE y
   fi
-  tristate 'Firewall based classifier' CONFIG_NET_CLS_FW
-  tristate 'U32 classifier' CONFIG_NET_CLS_U32
+  tristate '    Firewall based classifier' CONFIG_NET_CLS_FW
+  tristate '    U32 classifier' CONFIG_NET_CLS_U32
   if [ "$CONFIG_NET_QOS" = "y" ]; then
-    tristate 'Special RSVP classifier' CONFIG_NET_CLS_RSVP
-    tristate 'Special RSVP classifier for IPv6' CONFIG_NET_CLS_RSVP6
-    bool 'Ingres traffic policing' CONFIG_NET_CLS_POLICE
+    tristate '    Special RSVP classifier' CONFIG_NET_CLS_RSVP
+    tristate '    Special RSVP classifier for IPv6' CONFIG_NET_CLS_RSVP6
+    bool '    Ingres traffic policing' CONFIG_NET_CLS_POLICE
   fi
 fi
 
