]> git.neil.brown.name Git - history.git/commitdiff
Linux 2.2.27-pre1 2.2.27pre1
authorAlan Cox <alan@lxorguk.ukuu.org.uk>
Fri, 23 Nov 2007 20:24:48 +0000 (15:24 -0500)
committerAlan Cox <alan@lxorguk.ukuu.org.uk>
Fri, 23 Nov 2007 20:24:48 +0000 (15:24 -0500)
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)    (Marc-Christian Petersen)
o       some whitespace cleanups, some coding style cleanups    (Marc-Christian Petersen)
o       fixed some gcc warnings                                 (Marc-Christian Petersen)
o       add PCI ID for 82820 NIC to eepro100 network driver     (Marc-Christian Petersen)
o       move 'Network device support' near 'Networking options' (Marc-Christian Petersen)

41 files changed:
ChangeLog-2.2.26 [deleted file]
ChangeLog-2.2.27 [new file with mode: 0644]
Documentation/Configure.help
MAINTAINERS
Makefile
arch/alpha/config.in
arch/alpha/defconfig
arch/arm/config.in
arch/arm/defconfig
arch/i386/config.in
arch/i386/defconfig
arch/i386/kernel/bluesmoke.c
arch/i386/kernel/smp.c
arch/m68k/config.in
arch/m68k/defconfig
arch/mips/config.in
arch/mips/defconfig
arch/mips/kernel/irixelf.c
arch/ppc/config.in
arch/ppc/defconfig
arch/s390/config.in
arch/s390/defconfig
arch/sparc/config.in
arch/sparc/defconfig
arch/sparc64/config.in
arch/sparc64/defconfig
drivers/net/8139too.c
drivers/net/eepro100.c
drivers/pci/quirks.c
fs/Config.in
fs/binfmt_elf.c
fs/exec.c
fs/open.c
include/linux/sysctl.h
init/main.c
net/core/skbuff.c
net/ipv4/ip_gre.c
net/ipv4/ipip.c
net/ipv4/tcp.c
net/ipv4/tcp_timer.c
net/ipv6/sit.c

diff --git a/ChangeLog-2.2.26 b/ChangeLog-2.2.26
deleted file mode 100644 (file)
index 76e5794..0000000
+++ /dev/null
@@ -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 --git a/ChangeLog-2.2.27 b/ChangeLog-2.2.27
new file mode 100644 (file)
index 0000000..5aa8434
--- /dev/null
@@ -0,0 +1,51 @@
+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,
+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-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)
+
index 735345019d7efd09a3b4704c4acb4a3ca0bd4813..6b071c1160ad60a5524e2228b84d70d265bcef90 100644 (file)
@@ -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
index efdf10688628d3d0b78f8393ce9ef1b3ab7ddb8d..9a0c79ace067c3063e2110132fc92867dee2203d 100644 (file)
@@ -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
@@ -1173,7 +1173,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
index 26007ff6f2a823fc802d660c80dacfc8232f1022..209eb63611aa041611a41c76d07e0a16bc7c8660 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 2
-SUBLEVEL = 26
-EXTRAVERSION = 
+SUBLEVEL = 27
+EXTRAVERSION = -pre1
 
 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 :=
 
index afa7453afe0dfe25990b7974991d97a4b2c2889a..4e04a974edbda1ab5eb0fafeee87b1ab9617021e 100644 (file)
@@ -204,6 +204,9 @@ bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
 tristate 'Kernel support for a.out (ECOFF) binaries' CONFIG_BINFMT_AOUT
 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
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'Kernel support for JAVA binaries (obsolete)' CONFIG_BINFMT_JAVA
index 3836e16a51d81aeea40dc4bd36e638b42979fb16..c857d368322a055ef96fff9345d7746ba2d61b9b 100644 (file)
@@ -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_AOUT is not set
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 CONFIG_BINFMT_EM86=y
 # CONFIG_PARPORT is not set
index 147ff0cc80e0a8d800cf002f522b61a069e947c6..eccfe45eb60a523fc73f9f4f7697d80a3139aad2 100644 (file)
@@ -136,6 +136,9 @@ bool 'Sysctl support' CONFIG_SYSCTL
 tristate 'Math emulation' CONFIG_NWFPE
 tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 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
 if [ "$CONFIG_CPU_32" = "y" ]; then
    tristate 'RISC OS personality' CONFIG_ARTHUR
index ce85d6ffc469e1c4fe9238d452d11f8f038430a7..4825a6cf027f77287b16bdafe71a85cb2c65f676 100644 (file)
@@ -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_AOUT is not set
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_ARTHUR is not set
 CONFIG_PARPORT=y
index 5b639ae6585ae3b653f9db7a7900491b17414bc1..3425083482c6238b4861ca34b9b5513b8f3d5467 100644 (file)
@@ -96,6 +96,9 @@ bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
 tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 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
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'Kernel support for JAVA binaries (obsolete)' CONFIG_BINFMT_JAVA
@@ -131,6 +134,17 @@ if [ "$CONFIG_NET" = "y" ]; then
   source net/Config.in
 fi
 
+if [ "$CONFIG_NET" = "y" ]; then
+  mainmenu_option next_comment
+  comment 'Network device support'
+
+  bool 'Network device support' CONFIG_NETDEVICES
+  if [ "$CONFIG_NETDEVICES" = "y" ]; then
+    source drivers/net/Config.in
+  fi
+  endmenu
+fi
+
 source drivers/telephony/Config.in
 
 mainmenu_option next_comment
@@ -145,17 +159,6 @@ endmenu
 
 source drivers/i2o/Config.in
 
-if [ "$CONFIG_NET" = "y" ]; then
-  mainmenu_option next_comment
-  comment 'Network device support'
-
-  bool 'Network device support' CONFIG_NETDEVICES
-  if [ "$CONFIG_NETDEVICES" = "y" ]; then
-    source drivers/net/Config.in
-  fi
-  endmenu
-fi
-
 source net/ax25/Config.in
 
 source net/irda/Config.in
index c13143e0c19cd3a061b41d50836ae5d39b977213..43c4c0a19edf142cca67c9adcc36d6413ba9ffd8 100644 (file)
@@ -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_AOUT is not set
 CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_MISC=y
+# CONFIG_BINFMT_ELF_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
index 3b2fcc3f6e6ba55c03df73648fa5ed29cf3e3e5d..5c2aa8f5792689c18a131d9de2e16013c10944ed 100644 (file)
@@ -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 cpuinfo_x86 *c)
        
        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(struct cpuinfo_x86 *c)
  */
 
 
-static int mce_disabled = 0;
 
 void __init mcheck_init(struct cpuinfo_x86 *c)
 {
@@ -237,4 +241,12 @@ static int __init mcheck_disable(char *str, int *unused)
        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);
index bad8514d60cd3597eb534acbac349e160f280272..5528cb489ac9e422adf7f7c89174b0ead988eae1 100644 (file)
@@ -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(unsigned long memory_start)
        return memory_start;
 }
 
-#ifdef CONFIG_X86_TSC
 /*
  * TSC synchronization.
  *
@@ -1010,8 +1009,6 @@ static void __init synchronize_tsc_ap (void)
 }
 #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
 }
 
 /*
index f2028fdf4003931fe1ccc6e8ec41b8c040a10b3c..fb50fbff0e8d4589f4ecf37f5b8064beb464644c 100644 (file)
@@ -84,6 +84,9 @@ bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
 tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 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
 
 if [ "$CONFIG_AMIGA" = "y" ]; then
index 109ce19fa86fe5bbf4ed8f465e04d30f1797266f..0b84658cfa3907d06ca5cc1420159e404d27877e 100644 (file)
@@ -38,8 +38,9 @@ CONFIG_M68040=y
 CONFIG_NET=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSCTL=y
-CONFIG_BINFMT_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
 CONFIG_ZORRO=y
 # CONFIG_AMIGA_GSP is not set
 # CONFIG_GSP_RESOLVER is not set
index b4c92b40b84a6863c49ad9826fb73734da4f8f98..1bafe5be1e5b73659880e02e66ffe04c0868e067 100644 (file)
@@ -85,6 +85,7 @@ if [ "$CONFIG_CPU_LITTLE_ENDIAN" = "n" ]; then
 fi
 define_bool CONFIG_BINFMT_AOUT n
 define_bool CONFIG_BINFMT_ELF y
+bool 'ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_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
index 953fc3f116e93c859f777fb8c339948a1fcbf5ae..61d7474f99e93173644c834dcb401d8382e7feff 100644 (file)
@@ -38,6 +38,7 @@ 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_MISC is not set
 CONFIG_NET=y
 CONFIG_SYSVIPC=y
index 6cb132e18cb4d4451bde92eefb2a0b37887cabb0..f298fb428210737722b1f2b6c91ede73f26a9bf6 100644 (file)
@@ -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 *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
index 452d3efc0f42e00a3e64528839a8b89d3d9f3b21..3cc2d3dd9a7c2c7d65ab6c260044590546368ba9 100644 (file)
@@ -69,6 +69,7 @@ bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 # only elf supported, a.out is not -- Cort
 define_bool CONFIG_BINFMT_ELF y
 define_bool CONFIG_KERNEL_ELF y
+bool 'ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
 tristate 'Kernel support for JAVA binaries (obsolete)' CONFIG_BINFMT_JAVA
 
index 4e5fbb6a04aa29c12a161186bf9b96bd6232d187..f4c94aecf4c353395f58ae5f910e714fd4aecbea 100644 (file)
@@ -34,8 +34,9 @@ CONFIG_SYSCTL=y
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_ELF_AOUT is not set
 CONFIG_KERNEL_ELF=y
-CONFIG_BINFMT_MISC=m
+# CONFIG_BINFMT_MISC is not set
 # CONFIG_BINFMT_JAVA is not set
 CONFIG_PARPORT=m
 # CONFIG_PARPORT_PC is not set
index f9155b285192dfa7e525fc8ebfb6a26788f575b2..c2154bfe685c9d28a67951dab5228e411b0fec40 100644 (file)
@@ -40,6 +40,9 @@ bool 'System V IPC' CONFIG_SYSVIPC
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
 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
 
index 9bdb08f8767e92bcb0dbb56305d1f4c5155848cb..ccdf2320cc7c9d2203eeb07a20e66f2eb676ac4b 100644 (file)
@@ -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
index d12c7171616897155b1894ea7345dedd86eafa03..a82a83ea57a72bf317a8a18c96b4ac8793c41b77 100644 (file)
@@ -74,6 +74,9 @@ bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 bool 'Sysctl support' CONFIG_SYSCTL
 tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 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
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   tristate 'Kernel support for JAVA binaries (obsolete)' CONFIG_BINFMT_JAVA
index f6e142eba53973c822585bc2e639eb9d7531a390..04117cf62c5afbd050f1a32a49b9531a778a0e34 100644 (file)
@@ -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_AOUT is not set
 CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_MISC=m
+# CONFIG_BINFMT_ELF_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
 CONFIG_BINFMT_JAVA=m
 CONFIG_SUNOS_EMUL=y
 
index 6b142fe50cd35918eec6aa54ed5f47283e91ea6b..ff3c223afe6e99364d758d5a7eb7b8b106746148 100644 (file)
@@ -62,6 +62,9 @@ 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
 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
 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
index 8968891b80956d0b6553e59d590166d2ae7947b7..5b8bcbd2a4a570f61fee7f6bf834f1705575b278 100644 (file)
@@ -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
index f894b32e276dae096fe5cc555e38dc4fe454769e..7124066c9a4bd13d74e25c7c4610f3e766503401 100644 (file)
@@ -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_dev *pdev, const struct pci_device_id *e
        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 *dev)
        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 *dev, struct ifreq *rq, int cmd)
 {
        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 *dev, struct ifreq *rq, int cmd)
 
        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 *dev, struct ifreq *rq, int cmd)
                        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;
 }
index 5f4a6383b3b883d3ddd09fdefa15264698a29a82..e6e4344dc646236dc381ed7f11cedbc2c78637d7 100644 (file)
@@ -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. */
 };
 
index 35be825ee56b03acb79c49f6c258ca338072c5e6..b01681add998d492cc0bf9f6cfd7925a2082cd29 100644 (file)
@@ -211,6 +211,11 @@ __initfunc(static void quirk_vialatency(struct pci_dev *dev, int arg))
  * 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_athlon_bug(struct pci_dev *d, int arg))
 {
        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[] __initdata = {
        { 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" },
 };
 
 
index 188ab05dac71a63045a3f1de0bdfb4ab49e92219..2fe9886385f968238469ef434185d926a7e73c38 100644 (file)
@@ -48,7 +48,7 @@ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
   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
index 7bcd9ba033e472742a7be667193071a390718fd5..3277d613aba4498d7850b6934a6cc796a6db56d0 100644 (file)
@@ -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, struct pt_regs * regs, struct file *);
 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(struct exec * interp_ex,
 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_binprm * bprm, struct pt_regs * regs)
        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_binprm * bprm, struct pt_regs * regs)
 
        /* 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_binprm * bprm, struct pt_regs * regs)
                    (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_binprm * bprm, struct pt_regs * regs)
                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_binprm * bprm, struct pt_regs * regs)
                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_binprm * bprm, struct pt_regs * regs)
        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_binprm * bprm, struct pt_regs * regs)
 
        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_binprm * bprm, struct pt_regs * regs)
                        (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
index 3f58b8d2b37d5fb1b4d52de9336a714f610ff56c..a89e5b85cbab3638ec9599d42c2bfcc8e94ff27d 100644 (file)
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -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
 }
 
 /*
index 905cf62d6d72f07da65f20a564cf13db86a0f26e..dfe7a53dc130eb0a5236b6a7c694c1c6b591d93b 100644 (file)
--- a/fs/open.c
+++ b/fs/open.c
@@ -262,7 +262,8 @@ asmlinkage int sys_utimes(char * filename, struct timeval * utimes)
                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);
index 78681ced22143d27694571480c20b6e582dce80c..9e896436db1ec9e01351eaa0353a3dd3acc75767 100644 (file)
@@ -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 */
 };
 
 
index 72a12cec5775c508f4bc1825b19a3b3d3869da57..36fa5a2d5287822b282ffb07b7a22f78612ea88e 100644 (file)
@@ -248,41 +248,41 @@ extern void reboot_setup(char *str, int *ints);
 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 *ints);
 #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 *str, int *ints)
                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 *line, int *num)
  * 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[] __initdata = {
        { "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[] __initdata = {
 #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[] __initdata = {
        { "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[] __initdata = {
        { "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[] __initdata = {
        { "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[] __initdata = {
 #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[] __initdata = {
        { "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[] __initdata = {
            || 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[] __initdata = {
        { "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[] __initdata = {
        { "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[] __initdata = {
 #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 *line)
        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 *line)
                }
                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 long *, unsigned long *);
 /*
  *     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);
index e2f3c941ad0e2182d26ffdab3686a83ba15c1993..532a91c30ca0db2da2f70e16733e9b8a17843955 100644 (file)
@@ -365,13 +365,16 @@ struct sk_buff *skb_realloc_headroom(struct sk_buff *skb, int newheadroom)
 {
        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;
 
index 6a7546fd50d81d483fe0571a0a16d2f710610ded..95bbf2013a226d67b118243e0c899a799fde5e02 100644 (file)
@@ -746,6 +746,7 @@ static int ipgre_tunnel_xmit(struct sk_buff *skb, struct device *dev)
                        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);
index 0aeef4a31bb5ef49bf7974f7a49c1a7bc5d4f4b7..391bbca750aa3caca0a623b81883cddf48b81f46 100644 (file)
@@ -573,6 +573,7 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct device *dev)
                        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));
index 849b09074a2aee5335f7d7524e65b6b9a36fbb16..d31b5ce5710777b7787b6f68a03a46602c856bb5 100644 (file)
@@ -823,7 +823,7 @@ int tcp_do_sendmsg(struct sock *sk, struct msghdr *msg)
                                 */
                                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);
 
                                        /* 
index 18ae4380cfc402175c1c62ec76578298016005fa..876b35847b71a5b01d91bbc6fefc1e4e21600fe9 100644 (file)
@@ -256,7 +256,7 @@ static __inline__ int tcp_keepopen_proc(struct sock *sk)
                                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;
index a1d888c98e2a32830903a69ec23e60e0d2a96e9b..ab5103657fed3facbabbb0bf5b4af992cf18bb99 100644 (file)
@@ -496,6 +496,7 @@ static int ipip6_tunnel_xmit(struct sk_buff *skb, struct device *dev)
                        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));