## Automatically generated incremental diff
## From:   linux-2.5.63-bk1
## To:     linux-2.5.63-bk2
## Robot:  $Id: make-incremental-diff,v 1.11 2002/02/20 02:59:33 hpa Exp $

diff -urN linux-2.5.63-bk1/Documentation/block/biodoc.txt linux-2.5.63-bk2/Documentation/block/biodoc.txt
--- linux-2.5.63-bk1/Documentation/block/biodoc.txt	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/Documentation/block/biodoc.txt	Mon Mar 31 12:15:50 2003
@@ -1038,7 +1038,7 @@
 in fact all queues get unplugged as a side-effect.
 
 Aside:
-  This is kind of controversial territory, as its not clear if plugging is
+  This is kind of controversial territory, as it's not clear if plugging is
   always the right thing to do. Devices typically have their own queues,
   and allowing a big queue to build up in software, while letting the device be
   idle for a while may not always make sense. The trick is to handle the fine
diff -urN linux-2.5.63-bk1/Documentation/filesystems/hpfs.txt linux-2.5.63-bk2/Documentation/filesystems/hpfs.txt
--- linux-2.5.63-bk1/Documentation/filesystems/hpfs.txt	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/Documentation/filesystems/hpfs.txt	Mon Mar 31 12:15:50 2003
@@ -109,7 +109,7 @@
 Once I booted English OS/2 working in cp 850 and I created a file on my 852
 partition. It marked file name codepage as 850 - good. But when I again booted
 Czech OS/2, the file was completely inaccessible under any name. It seems that
-OS/2 uppercases the search pattern with it's system code page (852) and file
+OS/2 uppercases the search pattern with its system code page (852) and file
 name it's comparing to with its code page (850). These could never match. Is it
 really what IBM developers wanted? But problems continued. When I created in
 Czech OS/2 another file in that directory, that file was inaccessible too. OS/2
diff -urN linux-2.5.63-bk1/Documentation/networking/decnet.txt linux-2.5.63-bk2/Documentation/networking/decnet.txt
--- linux-2.5.63-bk1/Documentation/networking/decnet.txt	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/Documentation/networking/decnet.txt	Mon Mar 31 12:15:50 2003
@@ -42,7 +42,7 @@
 3) Command line options
 
 You can set a DECnet address on the kernel command line for compatibility
-with the 2.4 configuration procedure, but in general its not needed any more.
+with the 2.4 configuration procedure, but in general it's not needed any more.
 If you do st a DECnet address on the command line, it has only one purpose
 which is that its added to the addresses on the loopback device.
 
diff -urN linux-2.5.63-bk1/Documentation/networking/ifenslave.c linux-2.5.63-bk2/Documentation/networking/ifenslave.c
--- linux-2.5.63-bk1/Documentation/networking/ifenslave.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/Documentation/networking/ifenslave.c	Mon Mar 31 12:15:50 2003
@@ -299,7 +299,7 @@
 		else {  /* attach a slave interface to the master */
 			/* two possibilities :
 			   - if hwaddr_notset, do nothing.  The bond will assign the
-			     hwaddr from it's first slave.
+			     hwaddr from its first slave.
 			   - if !hwaddr_notset, assign the master's hwaddr to each slave
 			*/
 
diff -urN linux-2.5.63-bk1/Documentation/sound/oss/Wavefront linux-2.5.63-bk2/Documentation/sound/oss/Wavefront
--- linux-2.5.63-bk1/Documentation/sound/oss/Wavefront	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/Documentation/sound/oss/Wavefront	Mon Mar 31 12:15:50 2003
@@ -81,7 +81,7 @@
 2) Why does line XXX of the code look like this .... ?
 **********************************************************************
 
-Either because its not finished yet, or because you're a better coder
+Either because it's not finished yet, or because you're a better coder
 than I am, or because you don't understand some aspect of how the card
 or the code works. 
 
diff -urN linux-2.5.63-bk1/Documentation/vm/overcommit-accounting linux-2.5.63-bk2/Documentation/vm/overcommit-accounting
--- linux-2.5.63-bk1/Documentation/vm/overcommit-accounting	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/Documentation/vm/overcommit-accounting	Mon Mar 31 12:15:50 2003
@@ -26,7 +26,7 @@
 The C language stack growth does an implicit mremap. If you want absolute
 guarantees and run close to the edge you MUST mmap your stack for the 
 largest size you think you will need. For typical stack usage is does
-not matter much but its a corner case if you really really care
+not matter much but it's a corner case if you really really care
 
 In mode 2 the MAP_NORESERVE flag is ignored. 
 
diff -urN linux-2.5.63-bk1/MAINTAINERS linux-2.5.63-bk2/MAINTAINERS
--- linux-2.5.63-bk1/MAINTAINERS	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/MAINTAINERS	Mon Mar 31 12:15:50 2003
@@ -1791,10 +1791,10 @@
 S:	Maintained
 
 TRIDENT 4DWAVE/SIS 7018 PCI AUDIO CORE
-P:	Ollie Lho  
-M:	ollie@sis.com.tw
+P:	Muli Ben-Yehuda
+M:	mulix@mulix.org
 L:	linux-kernel@vger.kernel.org
-S:	Supported
+S:	Maintained
 
 TMS380 TOKEN-RING NETWORK DRIVER
 P:	Adam Fritzler
diff -urN linux-2.5.63-bk1/Makefile linux-2.5.63-bk2/Makefile
--- linux-2.5.63-bk1/Makefile	Mon Mar 31 12:15:45 2003
+++ linux-2.5.63-bk2/Makefile	Mon Mar 31 12:15:50 2003
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 5
 SUBLEVEL = 63
-EXTRAVERSION = bk1
+EXTRAVERSION = bk2
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
diff -urN linux-2.5.63-bk1/arch/alpha/boot/tools/objstrip.c linux-2.5.63-bk2/arch/alpha/boot/tools/objstrip.c
--- linux-2.5.63-bk1/arch/alpha/boot/tools/objstrip.c	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/arch/alpha/boot/tools/objstrip.c	Mon Mar 31 12:15:50 2003
@@ -7,7 +7,7 @@
  */
 /*
  * Converts an ECOFF or ELF object file into a bootable file.  The
- * object file must be a OMAGIC file (i.e., data and bss follow immediatly
+ * object file must be a OMAGIC file (i.e., data and bss follow immediately
  * behind the text).  See DEC "Assembly Language Programmer's Guide"
  * documentation for details.  The SRM boot process is documented in
  * the Alpha AXP Architecture Reference Manual, Second Edition by
diff -urN linux-2.5.63-bk1/arch/alpha/kernel/pci_iommu.c linux-2.5.63-bk2/arch/alpha/kernel/pci_iommu.c
--- linux-2.5.63-bk1/arch/alpha/kernel/pci_iommu.c	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/arch/alpha/kernel/pci_iommu.c	Mon Mar 31 12:15:50 2003
@@ -318,7 +318,7 @@
 /* Unmap a single streaming mode DMA translation.  The DMA_ADDR and
    SIZE must match what was provided for in a previous pci_map_single
    call.  All other usages are undefined.  After this call, reads by
-   the cpu to the buffer are guarenteed to see whatever the device
+   the cpu to the buffer are guaranteed to see whatever the device
    wrote there.  */
 
 void
diff -urN linux-2.5.63-bk1/arch/alpha/kernel/sys_marvel.c linux-2.5.63-bk2/arch/alpha/kernel/sys_marvel.c
--- linux-2.5.63-bk1/arch/alpha/kernel/sys_marvel.c	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/arch/alpha/kernel/sys_marvel.c	Mon Mar 31 12:15:50 2003
@@ -440,7 +440,7 @@
 		return;
 
 	/* 
-	 * There is a local IO7 - redirect all of it's interrupts here.
+	 * There is a local IO7 - redirect all of its interrupts here.
 	 */
 	printk("Redirecting IO7 interrupts to local CPU at PE %u\n", cpuid);
 
diff -urN linux-2.5.63-bk1/arch/alpha/kernel/time.c linux-2.5.63-bk2/arch/alpha/kernel/time.c
--- linux-2.5.63-bk1/arch/alpha/kernel/time.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/arch/alpha/kernel/time.c	Mon Mar 31 12:15:50 2003
@@ -50,7 +50,7 @@
 #include "proto.h"
 #include "irq_impl.h"
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 extern unsigned long wall_jiffies;	/* kernel/timer.c */
 
diff -urN linux-2.5.63-bk1/arch/arm/kernel/time.c linux-2.5.63-bk2/arch/arm/kernel/time.c
--- linux-2.5.63-bk1/arch/arm/kernel/time.c	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/arch/arm/kernel/time.c	Mon Mar 31 12:15:50 2003
@@ -32,7 +32,7 @@
 #include <asm/irq.h>
 #include <asm/leds.h>
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 extern unsigned long wall_jiffies;
 
diff -urN linux-2.5.63-bk1/arch/cris/boot/rescue/head.S linux-2.5.63-bk2/arch/cris/boot/rescue/head.S
--- linux-2.5.63-bk1/arch/cris/boot/rescue/head.S	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/arch/cris/boot/rescue/head.S	Mon Mar 31 12:15:50 2003
@@ -130,7 +130,7 @@
 
 	;; first put a jump test to give a possibility of upgrading the rescue code
 	;; without erasing/reflashing the sector. we put a longword of -1 here and if
-	;; its not -1, we jump using the value as jump target. since we can always
+	;; it is not -1, we jump using the value as jump target. since we can always
 	;; change 1's to 0's without erasing the sector, it is possible to add new
 	;; code after this and altering the jumptarget in an upgrade.
 
diff -urN linux-2.5.63-bk1/arch/cris/drivers/serial.c linux-2.5.63-bk2/arch/cris/drivers/serial.c
--- linux-2.5.63-bk1/arch/cris/drivers/serial.c	Mon Mar 31 12:15:45 2003
+++ linux-2.5.63-bk2/arch/cris/drivers/serial.c	Mon Mar 31 12:15:50 2003
@@ -132,7 +132,7 @@
  *   Items worth noticing:
  *
  *      No Etrax100 port 1 workarounds (does only compile on 2.4 anyway now)
- *      RS485 is not ported (why cant it be done in userspace as on x86 ?)
+ *      RS485 is not ported (why can't it be done in userspace as on x86 ?)
  *      Statistics done through async_icount - if any more stats are needed,
  *      that's the place to put them or in an arch-dep version of it.
  *      timeout_interrupt and the other fast timeout stuff not ported yet
@@ -1766,7 +1766,7 @@
 
 B= Break character (0x00) with framing error.
 E= Error byte with parity error received after B characters.
-F= "Faked" valid byte received immediatly after B characters.
+F= "Faked" valid byte received immediately after B characters.
 V= Valid byte
 
 1.
diff -urN linux-2.5.63-bk1/arch/cris/kernel/kgdb.c linux-2.5.63-bk2/arch/cris/kernel/kgdb.c
--- linux-2.5.63-bk1/arch/cris/kernel/kgdb.c	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/arch/cris/kernel/kgdb.c	Mon Mar 31 12:15:50 2003
@@ -1486,7 +1486,7 @@
   move.d   $r0,[reg+0x62]   ; Save the return address in BRP
   move     $usp,[reg+0x66]  ; USP
 
-;; get the serial character (from debugport.c) and check if its a ctrl-c
+;; get the serial character (from debugport.c) and check if it is a ctrl-c
 
   jsr getDebugChar
   cmp.b 3, $r10
diff -urN linux-2.5.63-bk1/arch/cris/kernel/process.c linux-2.5.63-bk2/arch/cris/kernel/process.c
--- linux-2.5.63-bk1/arch/cris/kernel/process.c	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/arch/cris/kernel/process.c	Mon Mar 31 12:15:50 2003
@@ -154,7 +154,7 @@
 #if defined(CONFIG_ETRAX_WATCHDOG) && !defined(CONFIG_SVINTO_SIM)
 	cause_of_death = 0xbedead;
 #else
-	/* Since we dont plan to keep on reseting the watchdog,
+	/* Since we don't plan to keep on reseting the watchdog,
 	   the key can be arbitrary hence three */
 	*R_WATCHDOG = IO_FIELD(R_WATCHDOG, key, 3) |
 		IO_STATE(R_WATCHDOG, enable, start);
@@ -226,7 +226,7 @@
 
 	swstack = ((struct switch_stack *)childregs) - 1;
 
-	swstack->r9 = 0; /* parameter to ret_from_sys_call, 0 == dont restart the syscall */
+	swstack->r9 = 0; /* parameter to ret_from_sys_call, 0 == don't restart the syscall */
 
 	/* we want to return into ret_from_sys_call after the _resume */
 
diff -urN linux-2.5.63-bk1/arch/cris/kernel/setup.c linux-2.5.63-bk2/arch/cris/kernel/setup.c
--- linux-2.5.63-bk1/arch/cris/kernel/setup.c	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/arch/cris/kernel/setup.c	Mon Mar 31 12:15:50 2003
@@ -164,7 +164,7 @@
 
 	paging_init();
 
-	/* We dont use a command line yet, so just re-initialize it without
+	/* We don't use a command line yet, so just re-initialize it without
 	   saving anything that might be there.  */
 
 	*cmdline_p = command_line;
diff -urN linux-2.5.63-bk1/arch/cris/kernel/signal.c linux-2.5.63-bk2/arch/cris/kernel/signal.c
--- linux-2.5.63-bk1/arch/cris/kernel/signal.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/arch/cris/kernel/signal.c	Mon Mar 31 12:15:50 2003
@@ -494,7 +494,7 @@
 			case -ERESTARTNOHAND:
 				/* ERESTARTNOHAND means that the syscall should only be
 				   restarted if there was no handler for the signal, and since
-				   we only get here if there is a handler, we dont restart */
+				   we only get here if there is a handler, we don't restart */
 				regs->r10 = -EINTR;
 				break;
 
diff -urN linux-2.5.63-bk1/arch/cris/kernel/time.c linux-2.5.63-bk2/arch/cris/kernel/time.c
--- linux-2.5.63-bk1/arch/cris/kernel/time.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/arch/cris/kernel/time.c	Mon Mar 31 12:15:50 2003
@@ -45,7 +45,7 @@
 
 #include <asm/svinto.h>
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 static int have_rtc;  /* used to remember if we have an RTC or not */
 
diff -urN linux-2.5.63-bk1/arch/cris/mm/fault.c linux-2.5.63-bk2/arch/cris/mm/fault.c
--- linux-2.5.63-bk1/arch/cris/mm/fault.c	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/arch/cris/mm/fault.c	Mon Mar 31 12:15:50 2003
@@ -170,7 +170,7 @@
 
 	if (miss) {
 		/* see if the pte exists at all
-		 * refer through current_pgd, dont use mm->pgd
+		 * refer through current_pgd, don't use mm->pgd
 		 */
 
 		pmd = (pmd_t *)(current_pgd + pgd_index(address));
diff -urN linux-2.5.63-bk1/arch/cris/mm/tlb.c linux-2.5.63-bk2/arch/cris/mm/tlb.c
--- linux-2.5.63-bk1/arch/cris/mm/tlb.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/arch/cris/mm/tlb.c	Mon Mar 31 12:15:50 2003
@@ -58,7 +58,7 @@
 	int i;
 	unsigned long flags;
 
-	/* the vpn of i & 0xf is so we dont write similar TLB entries
+	/* the vpn of i & 0xf is so we don't write similar TLB entries
 	 * in the same 4-way entry group. details.. 
 	 */
 
diff -urN linux-2.5.63-bk1/arch/i386/Kconfig linux-2.5.63-bk2/arch/i386/Kconfig
--- linux-2.5.63-bk1/arch/i386/Kconfig	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/arch/i386/Kconfig	Mon Mar 31 12:15:50 2003
@@ -75,6 +75,11 @@
 
 	  If you don't have one of these computers, you should say N here.
 
+config ACPI_SRAT
+	bool
+	default y
+	depends on NUMA && X86_SUMMIT
+
 config X86_BIGSMP
 	bool "Support for other sub-arch SMP systems with more than 8 CPUs"
 	help
@@ -483,7 +488,7 @@
 # Common NUMA Features
 config NUMA
 	bool "Numa Memory Allocation Support"
-	depends on X86_NUMAQ
+	depends on (HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT && ACPI && !ACPI_HT_ONLY)))
 
 config DISCONTIGMEM
 	bool
@@ -752,6 +757,13 @@
 	depends on (SMP || PREEMPT) && X86_CMPXCHG
 	default y
 
+# turning this on wastes a bunch of space.
+# Summit needs it only when NUMA is on
+config BOOT_IOREMAP
+	bool
+	depends on (X86_SUMMIT && NUMA)
+	default y
+
 endmenu
 
 
diff -urN linux-2.5.63-bk1/arch/i386/kernel/Makefile linux-2.5.63-bk2/arch/i386/kernel/Makefile
--- linux-2.5.63-bk1/arch/i386/kernel/Makefile	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/Makefile	Mon Mar 31 12:15:50 2003
@@ -28,6 +28,7 @@
 obj-$(CONFIG_EDD)             	+= edd.o
 obj-$(CONFIG_MODULES)		+= module.o
 obj-y				+= sysenter.o
+obj-$(CONFIG_ACPI_SRAT) 	+= srat.o
 
 EXTRA_AFLAGS   := -traditional
 
diff -urN linux-2.5.63-bk1/arch/i386/kernel/apm.c linux-2.5.63-bk2/arch/i386/kernel/apm.c
--- linux-2.5.63-bk1/arch/i386/kernel/apm.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/apm.c	Mon Mar 31 12:15:51 2003
@@ -1096,7 +1096,7 @@
  *	@blank: on/off
  *
  *	Attempt to blank the console, firstly by blanking just video device
- *	zero, and if that fails (some BIOSes dont support it) then it blanks
+ *	zero, and if that fails (some BIOSes don't support it) then it blanks
  *	all video devices. Typically the BIOS will do laptop backlight and
  *	monitor powerdown for us.
  */
diff -urN linux-2.5.63-bk1/arch/i386/kernel/cpu/cyrix.c linux-2.5.63-bk2/arch/i386/kernel/cpu/cyrix.c
--- linux-2.5.63-bk1/arch/i386/kernel/cpu/cyrix.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/cpu/cyrix.c	Mon Mar 31 12:15:51 2003
@@ -49,7 +49,7 @@
  * Cx86_dir0_msb is a HACK needed by check_cx686_cpuid/slop in bugs.h in
  * order to identify the Cyrix CPU model after we're out of setup.c
  *
- * Actually since bugs.h doesnt even reference this perhaps someone should
+ * Actually since bugs.h doesn't even reference this perhaps someone should
  * fix the documentation ???
  */
 static unsigned char Cx86_dir0_msb __initdata = 0;
@@ -77,7 +77,7 @@
  * BIOSes for compatibility with DOS games.  This makes the udelay loop
  * work correctly, and improves performance.
  *
- * FIXME: our newer udelay uses the tsc. We dont need to frob with SLOP
+ * FIXME: our newer udelay uses the tsc. We don't need to frob with SLOP
  */
 
 extern void calibrate_delay(void) __init;
diff -urN linux-2.5.63-bk1/arch/i386/kernel/io_apic.c linux-2.5.63-bk2/arch/i386/kernel/io_apic.c
--- linux-2.5.63-bk1/arch/i386/kernel/io_apic.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/io_apic.c	Mon Mar 31 12:15:51 2003
@@ -46,7 +46,7 @@
 
 /*
  *	Is the SiS APIC rmw bug present ?
- *	-1 = dont know, 0 = no, 1 = yes
+ *	-1 = don't know, 0 = no, 1 = yes
  */
 int sis_apic_bug = -1;
 
@@ -223,7 +223,7 @@
 
 extern unsigned long irq_affinity [NR_IRQS];
 int __cacheline_aligned pending_irq_balance_apicid [NR_IRQS];
-static int irqbalance_disabled __initdata = 0;
+static int irqbalance_disabled = NO_BALANCE_IRQ;
 static int physical_balance = 0;
 
 struct irq_cpu_info {
@@ -492,7 +492,7 @@
 	unsigned long allowed_mask;
 	unsigned int new_cpu;
 		
-	if (no_balance_irq)
+	if (irqbalance_disabled)
 		return;
 
 	allowed_mask = cpu_online_map & irq_affinity[irq];
diff -urN linux-2.5.63-bk1/arch/i386/kernel/irq.c linux-2.5.63-bk2/arch/i386/kernel/irq.c
--- linux-2.5.63-bk1/arch/i386/kernel/irq.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/irq.c	Mon Mar 31 12:15:51 2003
@@ -87,7 +87,7 @@
 {
 /*
  * 'what should we do if we get a hw irq event on an illegal vector'.
- * each architecture has to answer this themselves, it doesnt deserve
+ * each architecture has to answer this themselves, it doesn't deserve
  * a generic callback i think.
  */
 #if CONFIG_X86
diff -urN linux-2.5.63-bk1/arch/i386/kernel/nmi.c linux-2.5.63-bk2/arch/i386/kernel/nmi.c
--- linux-2.5.63-bk1/arch/i386/kernel/nmi.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/nmi.c	Mon Mar 31 12:15:51 2003
@@ -325,7 +325,7 @@
  * as these watchdog NMI IRQs are generated on every CPU, we only
  * have to check the current processor.
  *
- * since NMIs dont listen to _any_ locks, we have to be extremely
+ * since NMIs don't listen to _any_ locks, we have to be extremely
  * careful not to rely on unsafe variables. The printk might lock
  * up though, so we have to break up any console locks first ...
  * [when there will be more tty-related locks, break them up
diff -urN linux-2.5.63-bk1/arch/i386/kernel/setup.c linux-2.5.63-bk2/arch/i386/kernel/setup.c
--- linux-2.5.63-bk1/arch/i386/kernel/setup.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/setup.c	Mon Mar 31 12:15:51 2003
@@ -818,7 +818,7 @@
 		request_resource(&iomem_resource, res);
 		if (e820.map[i].type == E820_RAM) {
 			/*
-			 *  We dont't know which RAM region contains kernel data,
+			 *  We don't know which RAM region contains kernel data,
 			 *  so we try it repeatedly and let the resource manager
 			 *  test it.
 			 */
diff -urN linux-2.5.63-bk1/arch/i386/kernel/smpboot.c linux-2.5.63-bk2/arch/i386/kernel/smpboot.c
--- linux-2.5.63-bk1/arch/i386/kernel/smpboot.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/smpboot.c	Mon Mar 31 12:15:51 2003
@@ -170,7 +170,7 @@
 /*
  * TSC synchronization.
  *
- * We first check wether all CPUs have their TSC's synchronized,
+ * We first check whether all CPUs have their TSC's synchronized,
  * then we print a warning if not, and always resync.
  */
 
@@ -956,7 +956,7 @@
 	smp_tune_scheduling();
 
 	/*
-	 * If we couldnt find an SMP configuration at boot time,
+	 * If we couldn't find an SMP configuration at boot time,
 	 * get out of here now!
 	 */
 	if (!smp_found_config) {
diff -urN linux-2.5.63-bk1/arch/i386/kernel/srat.c linux-2.5.63-bk2/arch/i386/kernel/srat.c
--- linux-2.5.63-bk1/arch/i386/kernel/srat.c	Wed Dec 31 16:00:00 1969
+++ linux-2.5.63-bk2/arch/i386/kernel/srat.c	Mon Mar 31 12:15:51 2003
@@ -0,0 +1,448 @@
+/*
+ * Some of the code in this file has been gleaned from the 64 bit 
+ * discontigmem support code base.
+ *
+ * Copyright (C) 2002, IBM Corp.
+ *
+ * All rights reserved.          
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
+ * NON INFRINGEMENT.  See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Send feedback to Pat Gaughen <gone@us.ibm.com>
+ */
+#include <linux/config.h>
+#include <linux/mm.h>
+#include <linux/bootmem.h>
+#include <linux/mmzone.h>
+#include <linux/acpi.h>
+#include <asm/srat.h>
+
+/*
+ * proximity macros and definitions
+ */
+#define NODE_ARRAY_INDEX(x)	((x) / 8)	/* 8 bits/char */
+#define NODE_ARRAY_OFFSET(x)	((x) % 8)	/* 8 bits/char */
+#define BMAP_SET(bmap, bit)	((bmap)[NODE_ARRAY_INDEX(bit)] |= 1 << NODE_ARRAY_OFFSET(bit))
+#define BMAP_TEST(bmap, bit)	((bmap)[NODE_ARRAY_INDEX(bit)] & (1 << NODE_ARRAY_OFFSET(bit)))
+#define MAX_PXM_DOMAINS		256	/* 1 byte and no promises about values */
+/* bitmap length; _PXM is at most 255 */
+#define PXM_BITMAP_LEN (MAX_PXM_DOMAINS / 8) 
+static u8 pxm_bitmap[PXM_BITMAP_LEN];	/* bitmap of proximity domains */
+
+#define MAX_CHUNKS_PER_NODE	4
+#define MAXCHUNKS		(MAX_CHUNKS_PER_NODE * MAX_NUMNODES)
+struct node_memory_chunk_s {
+	unsigned long	start_pfn;
+	unsigned long	end_pfn;
+	u8	pxm;		// proximity domain of node
+	u8	nid;		// which cnode contains this chunk?
+	u8	bank;		// which mem bank on this node
+};
+static struct node_memory_chunk_s node_memory_chunk[MAXCHUNKS];
+
+static int num_memory_chunks;		/* total number of memory chunks */
+static int zholes_size_init;
+static unsigned long zholes_size[MAX_NUMNODES * MAX_NR_ZONES];
+
+unsigned long node_start_pfn[MAX_NUMNODES];
+unsigned long node_end_pfn[MAX_NUMNODES];
+
+extern void * boot_ioremap(unsigned long, unsigned long);
+
+/* Identify CPU proximity domains */
+static void __init parse_cpu_affinity_structure(char *p)
+{
+	struct acpi_table_processor_affinity *cpu_affinity = 
+				(struct acpi_table_processor_affinity *) p;
+
+	if (!cpu_affinity->flags.enabled)
+		return;		/* empty entry */
+
+	/* mark this node as "seen" in node bitmap */
+	BMAP_SET(pxm_bitmap, cpu_affinity->proximity_domain);
+
+	printk("CPU 0x%02X in proximity domain 0x%02X\n",
+		cpu_affinity->apic_id, cpu_affinity->proximity_domain);
+}
+
+/*
+ * Identify memory proximity domains and hot-remove capabilities.
+ * Fill node memory chunk list structure.
+ */
+static void __init parse_memory_affinity_structure (char *sratp)
+{
+	unsigned long long paddr, size;
+	unsigned long start_pfn, end_pfn; 
+	u8 pxm;
+	struct node_memory_chunk_s *p, *q, *pend;
+	struct acpi_table_memory_affinity *memory_affinity =
+			(struct acpi_table_memory_affinity *) sratp;
+
+	if (!memory_affinity->flags.enabled)
+		return;		/* empty entry */
+
+	/* mark this node as "seen" in node bitmap */
+	BMAP_SET(pxm_bitmap, memory_affinity->proximity_domain);
+
+	/* calculate info for memory chunk structure */
+	paddr = memory_affinity->base_addr_hi;
+	paddr = (paddr << 32) | memory_affinity->base_addr_lo;
+	size = memory_affinity->length_hi;
+	size = (size << 32) | memory_affinity->length_lo;
+	
+	start_pfn = paddr >> PAGE_SHIFT;
+	end_pfn = (paddr + size) >> PAGE_SHIFT;
+	
+	pxm = memory_affinity->proximity_domain;
+
+	if (num_memory_chunks >= MAXCHUNKS) {
+		printk("Too many mem chunks in SRAT. Ignoring %lld MBytes at %llx\n",
+			size/(1024*1024), paddr);
+		return;
+	}
+
+	/* Insertion sort based on base address */
+	pend = &node_memory_chunk[num_memory_chunks];
+	for (p = &node_memory_chunk[0]; p < pend; p++) {
+		if (start_pfn < p->start_pfn)
+			break;
+	}
+	if (p < pend) {
+		for (q = pend; q >= p; q--)
+			*(q + 1) = *q;
+	}
+	p->start_pfn = start_pfn;
+	p->end_pfn = end_pfn;
+	p->pxm = pxm;
+
+	num_memory_chunks++;
+
+	printk("Memory range 0x%lX to 0x%lX (type 0x%X) in proximity domain 0x%02X %s\n",
+		start_pfn, end_pfn,
+		memory_affinity->memory_type,
+		memory_affinity->proximity_domain,
+		(memory_affinity->flags.hot_pluggable ?
+		 "enabled and removable" : "enabled" ) );
+}
+
+#if MAX_NR_ZONES != 3
+#error "MAX_NR_ZONES != 3, chunk_to_zone requires review"
+#endif
+/* Take a chunk of pages from page frame cstart to cend and count the number
+ * of pages in each zone, returned via zones[].
+ */
+static __init void chunk_to_zones(unsigned long cstart, unsigned long cend, 
+		unsigned long *zones)
+{
+	unsigned long max_dma;
+	extern unsigned long max_low_pfn;
+
+	int z;
+	unsigned long rend;
+
+	/* FIXME: MAX_DMA_ADDRESS and max_low_pfn are trying to provide
+	 * similarly scoped information and should be handled in a consistant
+	 * manner.
+	 */
+	max_dma = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT;
+
+	/* Split the hole into the zones in which it falls.  Repeatedly
+	 * take the segment in which the remaining hole starts, round it
+	 * to the end of that zone.
+	 */
+	memset(zones, 0, MAX_NR_ZONES * sizeof(long));
+	while (cstart < cend) {
+		if (cstart < max_dma) {
+			z = ZONE_DMA;
+			rend = (cend < max_dma)? cend : max_dma;
+
+		} else if (cstart < max_low_pfn) {
+			z = ZONE_NORMAL;
+			rend = (cend < max_low_pfn)? cend : max_low_pfn;
+
+		} else {
+			z = ZONE_HIGHMEM;
+			rend = cend;
+		}
+		zones[z] += rend - cstart;
+		cstart = rend;
+	}
+}
+
+/*
+ * physnode_map keeps track of the physical memory layout of the
+ * numaq nodes on a 256Mb break (each element of the array will
+ * represent 256Mb of memory and will be marked by the node id.  so,
+ * if the first gig is on node 0, and the second gig is on node 1
+ * physnode_map will contain:
+ * physnode_map[0-3] = 0;
+ * physnode_map[4-7] = 1;
+ * physnode_map[8- ] = -1;
+ */
+int pfnnode_map[MAX_ELEMENTS] = { [0 ... (MAX_ELEMENTS - 1)] = -1};
+EXPORT_SYMBOL(pfnnode_map);
+
+static void __init initialize_pfnnode_map(void)
+{
+	unsigned long topofchunk, cur = 0;
+	int i;
+	
+	for (i = 0; i < num_memory_chunks; i++) {
+		cur = node_memory_chunk[i].start_pfn;
+		topofchunk = node_memory_chunk[i].end_pfn;
+		while (cur < topofchunk) {
+			pfnnode_map[PFN_TO_ELEMENT(cur)] = node_memory_chunk[i].nid;
+			cur ++;
+		}
+	}
+}
+
+/* Parse the ACPI Static Resource Affinity Table */
+static int __init acpi20_parse_srat(struct acpi_table_srat *sratp)
+{
+	u8 *start, *end, *p;
+	int i, j, nid;
+	u8 pxm_to_nid_map[MAX_PXM_DOMAINS];/* _PXM to logical node ID map */
+	u8 nid_to_pxm_map[MAX_NUMNODES];/* logical node ID to _PXM map */
+
+	start = (u8 *)(&(sratp->reserved) + 1);	/* skip header */
+	p = start;
+	end = (u8 *)sratp + sratp->header.length;
+
+	memset(pxm_bitmap, 0, sizeof(pxm_bitmap));	/* init proximity domain bitmap */
+	memset(node_memory_chunk, 0, sizeof(node_memory_chunk));
+	memset(zholes_size, 0, sizeof(zholes_size));
+
+	/* -1 in these maps means not available */
+	memset(pxm_to_nid_map, -1, sizeof(pxm_to_nid_map));
+	memset(nid_to_pxm_map, -1, sizeof(nid_to_pxm_map));
+
+	num_memory_chunks = 0;
+	while (p < end) {
+		switch (*p) {
+		case ACPI_SRAT_PROCESSOR_AFFINITY:
+			parse_cpu_affinity_structure(p);
+			break;
+		case ACPI_SRAT_MEMORY_AFFINITY:
+			parse_memory_affinity_structure(p);
+			break;
+		default:
+			printk("ACPI 2.0 SRAT: unknown entry skipped: type=0x%02X, len=%d\n", p[0], p[1]);
+			break;
+		}
+		p += p[1];
+		if (p[1] == 0) {
+			printk("acpi20_parse_srat: Entry length value is zero;"
+				" can't parse any further!\n");
+			break;
+		}
+	}
+
+	/* Calculate total number of nodes in system from PXM bitmap and create
+	 * a set of sequential node IDs starting at zero.  (ACPI doesn't seem
+	 * to specify the range of _PXM values.)
+	 */
+	numnodes = 0;		/* init total nodes in system */
+	for (i = 0; i < MAX_PXM_DOMAINS; i++) {
+		if (BMAP_TEST(pxm_bitmap, i)) {
+			pxm_to_nid_map[i] = numnodes;
+			nid_to_pxm_map[numnodes] = i;
+			node_set_online(numnodes);
+			++numnodes;
+		}
+	}
+
+	if (numnodes == 0)
+		BUG();
+
+	/* set cnode id in memory chunk structure */
+	for (i = 0; i < num_memory_chunks; i++)
+		node_memory_chunk[i].nid = pxm_to_nid_map[node_memory_chunk[i].pxm];
+
+	initialize_pfnnode_map();
+	
+	printk("pxm bitmap: ");
+	for (i = 0; i < sizeof(pxm_bitmap); i++) {
+		printk("%02X ", pxm_bitmap[i]);
+	}
+	printk("\n");
+	printk("Number of logical nodes in system = %d\n", numnodes);
+	printk("Number of memory chunks in system = %d\n", num_memory_chunks);
+
+	for (j = 0; j < num_memory_chunks; j++){
+		printk("chunk %d nid %d start_pfn %08lx end_pfn %08lx\n",
+		       j, node_memory_chunk[j].nid,
+		       node_memory_chunk[j].start_pfn,
+		       node_memory_chunk[j].end_pfn);
+	}
+ 
+	/*calculate node_start_pfn/node_end_pfn arrays*/
+	for (nid = 0; nid < numnodes; nid++) {
+		int been_here_before = 0;
+
+		for (j = 0; j < num_memory_chunks; j++){
+			if (node_memory_chunk[j].nid == nid) {
+				if (been_here_before == 0) {
+					node_start_pfn[nid] = node_memory_chunk[j].start_pfn;
+					node_end_pfn[nid] = node_memory_chunk[j].end_pfn;
+					been_here_before = 1;
+				} else { /* We've found another chunk of memory for the node */
+					if (node_start_pfn[nid] < node_memory_chunk[j].start_pfn) {
+						node_end_pfn[nid] = node_memory_chunk[j].end_pfn;
+					}
+				}
+			}
+		}
+	}
+	return 0;
+}
+
+void __init get_memcfg_from_srat(void)
+{
+	struct acpi_table_header *header = NULL;
+	struct acpi_table_rsdp *rsdp = NULL;
+	struct acpi_table_rsdt *rsdt = NULL;
+	struct acpi_pointer *rsdp_address = NULL;
+	struct acpi_table_rsdt saved_rsdt;
+	int tables = 0;
+	int i = 0;
+
+	acpi_find_root_pointer(ACPI_PHYSICAL_ADDRESSING, rsdp_address);
+
+	if (rsdp_address->pointer_type == ACPI_PHYSICAL_POINTER) {
+		printk("%s: assigning address to rsdp\n", __FUNCTION__);
+		rsdp = (struct acpi_table_rsdp *)rsdp_address->pointer.physical;
+	} else {
+		printk("%s: rsdp_address is not a physical pointer\n", __FUNCTION__);
+		return;
+	}
+	if (!rsdp) {
+		printk("%s: Didn't find ACPI root!\n", __FUNCTION__);
+		return;
+	}
+
+	printk(KERN_INFO "%.8s v%d [%.6s]\n", rsdp->signature, rsdp->revision,
+		rsdp->oem_id);
+
+	if (strncmp(rsdp->signature, RSDP_SIG,strlen(RSDP_SIG))) {
+		printk(KERN_WARNING "%s: RSDP table signature incorrect\n", __FUNCTION__);
+		return;
+	}
+
+	rsdt = (struct acpi_table_rsdt *)
+	    boot_ioremap(rsdp->rsdt_address, sizeof(struct acpi_table_rsdt));
+
+	if (!rsdt) {
+		printk(KERN_WARNING
+		       "%s: ACPI: Invalid root system description tables (RSDT)\n",
+		       __FUNCTION__);
+		return;
+	}
+
+	header = & rsdt->header;
+
+	if (strncmp(header->signature, RSDT_SIG, strlen(RSDT_SIG))) {
+		printk(KERN_WARNING "ACPI: RSDT signature incorrect\n");
+		return;
+	}
+
+	/* 
+	 * The number of tables is computed by taking the 
+	 * size of all entries (header size minus total 
+	 * size of RSDT) divided by the size of each entry
+	 * (4-byte table pointers).
+	 */
+	tables = (header->length - sizeof(struct acpi_table_header)) / 4;
+
+	memcpy(&saved_rsdt, rsdt, sizeof(saved_rsdt));
+
+	if (saved_rsdt.header.length > sizeof(saved_rsdt)) {
+		printk(KERN_WARNING "ACPI: Too big length in RSDT: %d\n",
+		       saved_rsdt.header.length);
+		return;
+	}
+
+printk("Begin table scan....\n");
+
+	for (i = 0; i < tables; i++) {
+		/* Map in header, then map in full table length. */
+		header = (struct acpi_table_header *)
+			boot_ioremap(saved_rsdt.entry[i], sizeof(struct acpi_table_header));
+		if (!header)
+			break;
+		header = (struct acpi_table_header *)
+			boot_ioremap(saved_rsdt.entry[i], header->length);
+		if (!header)
+			break;
+
+		if (strncmp((char *) &header->signature, "SRAT", 4))
+			continue;
+		acpi20_parse_srat((struct acpi_table_srat *)header);
+		/* we've found the srat table. don't need to look at any more tables */
+		break;
+	}
+}
+
+/* For each node run the memory list to determine whether there are
+ * any memory holes.  For each hole determine which ZONE they fall
+ * into.
+ *
+ * NOTE#1: this requires knowledge of the zone boundries and so
+ * _cannot_ be performed before those are calculated in setup_memory.
+ * 
+ * NOTE#2: we rely on the fact that the memory chunks are ordered by
+ * start pfn number during setup.
+ */
+static void __init get_zholes_init(void)
+{
+	int nid;
+	int c;
+	int first;
+	unsigned long end = 0;
+
+	for (nid = 0; nid < numnodes; nid++) {
+		first = 1;
+		for (c = 0; c < num_memory_chunks; c++){
+			if (node_memory_chunk[c].nid == nid) {
+				if (first) {
+					end = node_memory_chunk[c].end_pfn;
+					first = 0;
+
+				} else {
+					/* Record any gap between this chunk
+					 * and the previous chunk on this node
+					 * against the zones it spans.
+					 */
+					chunk_to_zones(end,
+						node_memory_chunk[c].start_pfn,
+						&zholes_size[nid * MAX_NR_ZONES]);
+				}
+			}
+		}
+	}
+}
+
+unsigned long * __init get_zholes_size(int nid)
+{
+	if (!zholes_size_init) {
+		zholes_size_init++;
+		get_zholes_init();
+	}
+	if((nid >= numnodes) | (nid >= MAX_NUMNODES))
+		printk("%s: nid = %d is invalid. numnodes = %d",
+		       __FUNCTION__, nid, numnodes);
+	return &zholes_size[nid * MAX_NR_ZONES];
+}
diff -urN linux-2.5.63-bk1/arch/i386/kernel/time.c linux-2.5.63-bk2/arch/i386/kernel/time.c
--- linux-2.5.63-bk1/arch/i386/kernel/time.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/time.c	Mon Mar 31 12:15:51 2003
@@ -66,7 +66,7 @@
 
 #include "do_timer.h"
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 unsigned long cpu_khz;	/* Detected as we calibrate the TSC */
 
diff -urN linux-2.5.63-bk1/arch/i386/kernel/timers/timer_tsc.c linux-2.5.63-bk2/arch/i386/kernel/timers/timer_tsc.c
--- linux-2.5.63-bk1/arch/i386/kernel/timers/timer_tsc.c	Mon Feb 24 11:05:37 2003
+++ linux-2.5.63-bk2/arch/i386/kernel/timers/timer_tsc.c	Mon Mar 31 12:15:51 2003
@@ -264,7 +264,7 @@
  	 *	the ident/bugs checks so we must run this hook as it
  	 *	may turn off the TSC flag.
  	 *
- 	 *	NOTE: this doesnt yet handle SMP 486 machines where only
+ 	 *	NOTE: this doesn't yet handle SMP 486 machines where only
  	 *	some CPU's have a TSC. Thats never worked and nobody has
  	 *	moaned if you have the only one in the world - you fix it!
  	 */
diff -urN linux-2.5.63-bk1/arch/i386/lib/mmx.c linux-2.5.63-bk2/arch/i386/lib/mmx.c
--- linux-2.5.63-bk1/arch/i386/lib/mmx.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/arch/i386/lib/mmx.c	Mon Mar 31 12:15:51 2003
@@ -15,7 +15,7 @@
  *		(reported so on K6-III)
  *	We should use a better code neutral filler for the short jump
  *		leal ebx. [ebx] is apparently best for K6-2, but Cyrix ??
- *	We also want to clobber the filler register so we dont get any
+ *	We also want to clobber the filler register so we don't get any
  *		register forwarding stalls on the filler. 
  *
  *	Add *user handling. Checksums are not a win with MMX on any CPU
diff -urN linux-2.5.63-bk1/arch/i386/mach-visws/visws_apic.c linux-2.5.63-bk2/arch/i386/mach-visws/visws_apic.c
--- linux-2.5.63-bk1/arch/i386/mach-visws/visws_apic.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/arch/i386/mach-visws/visws_apic.c	Mon Mar 31 12:15:51 2003
@@ -190,7 +190,7 @@
  * the 'master' interrupt source: CO_IRQ_8259.
  *
  * When the 8259 interrupts its handler figures out which of these
- * devices is interrupting and dispatches to it's handler.
+ * devices is interrupting and dispatches to its handler.
  *
  * CAREFUL: devices see the 'virtual' interrupt only. Thus disable/
  * enable_irq gets the right irq. This 'master' irq is never directly
diff -urN linux-2.5.63-bk1/arch/i386/mach-voyager/voyager_smp.c linux-2.5.63-bk2/arch/i386/mach-voyager/voyager_smp.c
--- linux-2.5.63-bk1/arch/i386/mach-voyager/voyager_smp.c	Mon Mar 31 12:15:45 2003
+++ linux-2.5.63-bk2/arch/i386/mach-voyager/voyager_smp.c	Mon Mar 31 12:15:51 2003
@@ -1230,9 +1230,10 @@
 void
 flush_tlb_all(void)
 {
+	preempt_disable();
 	smp_call_function (flush_tlb_all_function, 0, 1, 1);
-
 	do_flush_tlb_all_local();
+	preempt_enable();
 }
 
 /* used to set up the trampoline for other CPUs when the memory manager
diff -urN linux-2.5.63-bk1/arch/i386/mm/Makefile linux-2.5.63-bk2/arch/i386/mm/Makefile
--- linux-2.5.63-bk1/arch/i386/mm/Makefile	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/arch/i386/mm/Makefile	Mon Mar 31 12:15:51 2003
@@ -2,8 +2,9 @@
 # Makefile for the linux i386-specific parts of the memory manager.
 #
 
-obj-y	:= init.o pgtable.o fault.o ioremap.o extable.o pageattr.o
+obj-y	:= init.o pgtable.o fault.o ioremap.o extable.o pageattr.o 
 
 obj-$(CONFIG_DISCONTIGMEM)	+= discontig.o
 obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
 obj-$(CONFIG_HIGHMEM) += highmem.o
+obj-$(CONFIG_BOOT_IOREMAP) += boot_ioremap.o
diff -urN linux-2.5.63-bk1/arch/i386/mm/boot_ioremap.c linux-2.5.63-bk2/arch/i386/mm/boot_ioremap.c
--- linux-2.5.63-bk1/arch/i386/mm/boot_ioremap.c	Wed Dec 31 16:00:00 1969
+++ linux-2.5.63-bk2/arch/i386/mm/boot_ioremap.c	Mon Mar 31 12:15:51 2003
@@ -0,0 +1,94 @@
+/*
+ * arch/i386/mm/boot_ioremap.c
+ * 
+ * Re-map functions for early boot-time before paging_init() when the 
+ * boot-time pagetables are still in use
+ *
+ * Written by Dave Hansen <haveblue@us.ibm.com>
+ */
+
+
+/*
+ * We need to use the 2-level pagetable functions, but CONFIG_X86_PAE
+ * keeps that from happenning.  If anyone has a better way, I'm listening.
+ *
+ * boot_pte_t is defined only if this all works correctly
+ */
+
+#include <linux/config.h>
+#undef CONFIG_X86_PAE
+#include <asm/page.h>
+#include <asm/pgtable.h>
+#include <linux/init.h>
+#include <linux/stddef.h>
+
+/* 
+ * I'm cheating here.  It is known that the two boot PTE pages are 
+ * allocated next to each other.  I'm pretending that they're just
+ * one big array. 
+ */
+
+#define BOOT_PTE_PTRS (PTRS_PER_PTE*2)
+#define boot_pte_index(address) \
+	     (((address) >> PAGE_SHIFT) & (BOOT_PTE_PTRS - 1))
+
+static inline boot_pte_t* boot_vaddr_to_pte(void *address)
+{
+	boot_pte_t* boot_pg = (boot_pte_t*)pg0;
+	return &boot_pg[boot_pte_index((unsigned long)address)];
+}
+
+/*
+ * This is only for a caller who is clever enough to page-align
+ * phys_addr and virtual_source, and who also has a preference
+ * about which virtual address from which to steal ptes
+ */
+static void __boot_ioremap(unsigned long phys_addr, unsigned long nrpages, 
+		    void* virtual_source)
+{
+	boot_pte_t* pte;
+	int i;
+
+	pte = boot_vaddr_to_pte(virtual_source);
+	for (i=0; i < nrpages; i++, phys_addr += PAGE_SIZE, pte++) {
+		set_pte(pte, pfn_pte(phys_addr>>PAGE_SHIFT, PAGE_KERNEL));
+	}
+}
+
+/* the virtual space we're going to remap comes from this array */
+#define BOOT_IOREMAP_PAGES 4
+#define BOOT_IOREMAP_SIZE (BOOT_IOREMAP_PAGES*PAGE_SIZE)
+__initdata char boot_ioremap_space[BOOT_IOREMAP_SIZE] 
+		__attribute__ ((aligned (PAGE_SIZE)));
+
+/*
+ * This only applies to things which need to ioremap before paging_init()
+ * bt_ioremap() and plain ioremap() are both useless at this point.
+ * 
+ * When used, we're still using the boot-time pagetables, which only
+ * have 2 PTE pages mapping the first 8MB
+ *
+ * There is no unmap.  The boot-time PTE pages aren't used after boot.
+ * If you really want the space back, just remap it yourself.
+ * boot_ioremap(&ioremap_space-PAGE_OFFSET, BOOT_IOREMAP_SIZE)
+ */
+__init void* boot_ioremap(unsigned long phys_addr, unsigned long size)
+{
+	unsigned long last_addr, offset;
+	unsigned int nrpages;
+	
+	last_addr = phys_addr + size - 1;
+
+	/* page align the requested address */
+	offset = phys_addr & ~PAGE_MASK;
+	phys_addr &= PAGE_MASK;
+	size = PAGE_ALIGN(last_addr) - phys_addr;
+	
+	nrpages = size >> PAGE_SHIFT;
+	if (nrpages > BOOT_IOREMAP_PAGES)
+		return NULL;
+	
+	__boot_ioremap(phys_addr, nrpages, boot_ioremap_space);
+
+	return &boot_ioremap_space[offset];
+}
diff -urN linux-2.5.63-bk1/arch/i386/mm/discontig.c linux-2.5.63-bk2/arch/i386/mm/discontig.c
--- linux-2.5.63-bk1/arch/i386/mm/discontig.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/arch/i386/mm/discontig.c	Mon Mar 31 12:15:51 2003
@@ -284,6 +284,7 @@
 
 	for (nid = 0; nid < numnodes; nid++) {
 		unsigned long zones_size[MAX_NR_ZONES] = {0, 0, 0};
+		unsigned long *zholes_size;
 		unsigned int max_dma;
 
 		unsigned long low = max_low_pfn;
@@ -307,6 +308,7 @@
 #endif
 			}
 		}
+		zholes_size = get_zholes_size(nid);
 		/*
 		 * We let the lmem_map for node 0 be allocated from the
 		 * normal bootmem allocator, but other nodes come from the
@@ -315,10 +317,10 @@
 		if (nid)
 			free_area_init_node(nid, NODE_DATA(nid), 
 				node_remap_start_vaddr[nid], zones_size, 
-				start, 0);
+				start, zholes_size);
 		else
 			free_area_init_node(nid, NODE_DATA(nid), 0, 
-				zones_size, start, 0);
+				zones_size, start, zholes_size);
 	}
 	return;
 }
diff -urN linux-2.5.63-bk1/arch/i386/mm/hugetlbpage.c linux-2.5.63-bk2/arch/i386/mm/hugetlbpage.c
--- linux-2.5.63-bk1/arch/i386/mm/hugetlbpage.c	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/arch/i386/mm/hugetlbpage.c	Mon Mar 31 12:15:51 2003
@@ -29,6 +29,8 @@
 static LIST_HEAD(htlbpage_freelist);
 static spinlock_t htlbpage_lock = SPIN_LOCK_UNLOCKED;
 
+void free_huge_page(struct page *page);
+
 static struct page *alloc_hugetlb_page(void)
 {
 	int i;
@@ -45,7 +47,7 @@
 	htlbpagemem--;
 	spin_unlock(&htlbpage_lock);
 	set_page_count(page, 1);
-	page->lru.prev = (void *)huge_page_release;
+	page->lru.prev = (void *)free_huge_page;
 	for (i = 0; i < (HPAGE_SIZE/PAGE_SIZE); ++i)
 		clear_highpage(&page[i]);
 	return page;
diff -urN linux-2.5.63-bk1/arch/i386/mm/ioremap.c linux-2.5.63-bk2/arch/i386/mm/ioremap.c
--- linux-2.5.63-bk1/arch/i386/mm/ioremap.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/arch/i386/mm/ioremap.c	Mon Mar 31 12:15:51 2003
@@ -205,6 +205,7 @@
 			iounmap(p); 
 			p = NULL;
 		}
+		global_flush_tlb();
 	} 
 
 	return p;					
@@ -226,6 +227,7 @@
 		change_page_attr(virt_to_page(__va(p->phys_addr)),
 				 p->size >> PAGE_SHIFT,
 				 PAGE_KERNEL); 				 
+		global_flush_tlb();
 	} 
 	kfree(p); 
 }
diff -urN linux-2.5.63-bk1/arch/ia64/ia32/ia32_signal.c linux-2.5.63-bk2/arch/ia64/ia32/ia32_signal.c
--- linux-2.5.63-bk1/arch/ia64/ia32/ia32_signal.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/arch/ia64/ia32/ia32_signal.c	Mon Mar 31 12:15:51 2003
@@ -338,7 +338,7 @@
 	/*
 	 * Updating fsr, fcr, fir, fdr.
 	 * Just a bit more complicated than save.
-	 * - Need to make sure that we dont write any value other than the
+	 * - Need to make sure that we don't write any value other than the
 	 *   specific fpstate info
 	 * - Need to make sure that the untouched part of frs, fdr, fir, fcr
 	 *   should remain same while writing.
diff -urN linux-2.5.63-bk1/arch/ia64/kernel/irq.c linux-2.5.63-bk2/arch/ia64/kernel/irq.c
--- linux-2.5.63-bk1/arch/ia64/kernel/irq.c	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/arch/ia64/kernel/irq.c	Mon Mar 31 12:15:51 2003
@@ -104,7 +104,7 @@
 {
 /*
  * 'what should we do if we get a hw irq event on an illegal vector'.
- * each architecture has to answer this themselves, it doesnt deserve
+ * each architecture has to answer this themselves, it doesn't deserve
  * a generic callback i think.
  */
 #if CONFIG_X86
diff -urN linux-2.5.63-bk1/arch/ia64/kernel/minstate.h linux-2.5.63-bk2/arch/ia64/kernel/minstate.h
--- linux-2.5.63-bk1/arch/ia64/kernel/minstate.h	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/arch/ia64/kernel/minstate.h	Mon Mar 31 12:15:51 2003
@@ -26,7 +26,7 @@
  */
 
 /*
- * For ivt.s we want to access the stack virtually so we dont have to disable translation
+ * For ivt.s we want to access the stack virtually so we don't have to disable translation
  * on interrupts.
  */
 #define MINSTATE_START_SAVE_MIN_VIRT								\
@@ -52,7 +52,7 @@
 
 /*
  * For mca_asm.S we want to access the stack physically since the state is saved before we
- * go virtual and dont want to destroy the iip or ipsr.
+ * go virtual and don't want to destroy the iip or ipsr.
  */
 #define MINSTATE_START_SAVE_MIN_PHYS								\
 (pKStk) movl sp=ia64_init_stack+IA64_STK_OFFSET-IA64_PT_REGS_SIZE;				\
diff -urN linux-2.5.63-bk1/arch/ia64/kernel/perfmon.c linux-2.5.63-bk2/arch/ia64/kernel/perfmon.c
--- linux-2.5.63-bk1/arch/ia64/kernel/perfmon.c	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/arch/ia64/kernel/perfmon.c	Mon Mar 31 12:15:51 2003
@@ -718,7 +718,7 @@
 
 /*
  * counts the number of PMDS to save per entry.
- * This code is generic enough to accomodate more than 64 PMDS when they become available
+ * This code is generic enough to accommodate more than 64 PMDS when they become available
  */
 static unsigned long
 pfm_smpl_entry_size(unsigned long *which, unsigned long size)
diff -urN linux-2.5.63-bk1/arch/ia64/kernel/time.c linux-2.5.63-bk2/arch/ia64/kernel/time.c
--- linux-2.5.63-bk1/arch/ia64/kernel/time.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/arch/ia64/kernel/time.c	Mon Mar 31 12:15:51 2003
@@ -27,7 +27,7 @@
 extern unsigned long wall_jiffies;
 extern unsigned long last_time_offset;
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 #ifdef CONFIG_IA64_DEBUG_IRQ
 
diff -urN linux-2.5.63-bk1/arch/ia64/lib/do_csum.S linux-2.5.63-bk2/arch/ia64/lib/do_csum.S
--- linux-2.5.63-bk1/arch/ia64/lib/do_csum.S	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/arch/ia64/lib/do_csum.S	Mon Mar 31 12:15:51 2003
@@ -41,7 +41,7 @@
 //	into one 8 byte word. In this case we have only one entry in the pipeline.
 //
 //	We use a (LOAD_LATENCY+2)-stage pipeline in the loop to account for
-//	possible load latency and also to accomodate for head and tail.
+//	possible load latency and also to accommodate for head and tail.
 //
 //	The end of the function deals with folding the checksum from 64bits
 //	down to 16bits taking care of the carry.
diff -urN linux-2.5.63-bk1/arch/ia64/lib/swiotlb.c linux-2.5.63-bk2/arch/ia64/lib/swiotlb.c
--- linux-2.5.63-bk1/arch/ia64/lib/swiotlb.c	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/arch/ia64/lib/swiotlb.c	Mon Mar 31 12:15:51 2003
@@ -359,7 +359,7 @@
  * was provided for in a previous swiotlb_map_single call.  All other usages are
  * undefined.
  *
- * After this call, reads by the cpu to the buffer are guarenteed to see whatever the
+ * After this call, reads by the cpu to the buffer are guaranteed to see whatever the
  * device wrote there.
  */
 void
diff -urN linux-2.5.63-bk1/arch/ia64/mm/discontig.c linux-2.5.63-bk2/arch/ia64/mm/discontig.c
--- linux-2.5.63-bk1/arch/ia64/mm/discontig.c	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/arch/ia64/mm/discontig.c	Mon Mar 31 12:15:51 2003
@@ -241,7 +241,7 @@
  *	- build the nodedir for the node. This contains pointers to
  *	  the per-bank mem_map entries.
  *	- fix the page struct "virtual" pointers. These are bank specific
- *	  values that the paging system doesnt understand.
+ *	  values that the paging system doesn't understand.
  *	- replicate the nodedir structure to other nodes	
  */ 
 
diff -urN linux-2.5.63-bk1/arch/ia64/mm/hugetlbpage.c linux-2.5.63-bk2/arch/ia64/mm/hugetlbpage.c
--- linux-2.5.63-bk1/arch/ia64/mm/hugetlbpage.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/arch/ia64/mm/hugetlbpage.c	Mon Mar 31 12:15:51 2003
@@ -26,6 +26,8 @@
 static LIST_HEAD(htlbpage_freelist);
 static spinlock_t htlbpage_lock = SPIN_LOCK_UNLOCKED;
 
+void free_huge_page(struct page *page);
+
 static struct page *alloc_hugetlb_page(void)
 {
 	int i;
@@ -42,6 +44,7 @@
 	htlbpagemem--;
 	spin_unlock(&htlbpage_lock);
 	set_page_count(page, 1);
+	page->lru.prev = (void *)free_huge_page;
 	for (i = 0; i < (HPAGE_SIZE/PAGE_SIZE); ++i)
 		clear_highpage(&page[i]);
 	return page;
diff -urN linux-2.5.63-bk1/arch/ia64/sn/fakeprom/fpmem.c linux-2.5.63-bk2/arch/ia64/sn/fakeprom/fpmem.c
--- linux-2.5.63-bk1/arch/ia64/sn/fakeprom/fpmem.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/fakeprom/fpmem.c	Mon Mar 31 12:15:51 2003
@@ -218,7 +218,7 @@
 				}
 
                                 /*
-                                 * Check for the node 0 hole. Since banks cant
+                                 * Check for the node 0 hole. Since banks can't
                                  * span the hole, we only need to check if the end of
                                  * the range is the end of the hole.
                                  */
@@ -226,7 +226,7 @@
                                         numbytes -= NODE0_HOLE_SIZE;
                                 /*
                                  * UGLY hack - we must skip overr the kernel and
-                                 * PROM runtime services but we dont exactly where it is.
+                                 * PROM runtime services but we don't exactly where it is.
                                  * So lets just reserve:
 				 *	node 0
 				 *		0-1MB for PAL
diff -urN linux-2.5.63-bk1/arch/ia64/sn/fakeprom/fw-emu.c linux-2.5.63-bk2/arch/ia64/sn/fakeprom/fw-emu.c
--- linux-2.5.63-bk1/arch/ia64/sn/fakeprom/fw-emu.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/fakeprom/fw-emu.c	Mon Mar 31 12:15:51 2003
@@ -757,7 +757,7 @@
 	sal_systab->checksum = -checksum;
 
 	/* If the checksum is correct, the kernel tries to use the
-	 * table. We dont build enough table & the kernel aborts.
+	 * table. We don't build enough table & the kernel aborts.
 	 * Note that the PROM hasd thhhe same problem!!
 	 */
 
diff -urN linux-2.5.63-bk1/arch/ia64/sn/io/hcl.c linux-2.5.63-bk2/arch/ia64/sn/io/hcl.c
--- linux-2.5.63-bk1/arch/ia64/sn/io/hcl.c	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/io/hcl.c	Mon Mar 31 12:15:51 2003
@@ -467,7 +467,7 @@
 		/*
 		 * We need to clean up!
 		 */
-		printk(KERN_WARNING "HCL: Unable to set the connect point to it's parent 0x%p\n",
+		printk(KERN_WARNING "HCL: Unable to set the connect point to its parent 0x%p\n",
 			(void *)new_devfs_handle);
 	}
 
diff -urN linux-2.5.63-bk1/arch/ia64/sn/io/sn1/pcibr.c linux-2.5.63-bk2/arch/ia64/sn/io/sn1/pcibr.c
--- linux-2.5.63-bk1/arch/ia64/sn/io/sn1/pcibr.c	Mon Mar 31 12:15:45 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/io/sn1/pcibr.c	Mon Mar 31 12:15:51 2003
@@ -2647,7 +2647,7 @@
 	/*
 	 * The Adaptec 1160 FC Controller WAR #767995:
 	 * The part incorrectly ignores the upper 32 bits of a 64 bit
-	 * address when decoding references to it's registers so to
+	 * address when decoding references to its registers so to
 	 * keep it from responding to a bus cycle that it shouldn't
 	 * we only use I/O space to get at it's registers.  Don't
 	 * enable memory space accesses on that PCI device.
diff -urN linux-2.5.63-bk1/arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c linux-2.5.63-bk2/arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c
--- linux-2.5.63-bk1/arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c	Mon Mar 31 12:15:51 2003
@@ -849,7 +849,7 @@
      * will set the c_slot (which is suppose to represent the external
      * slot (i.e the slot number silk screened on the back of the I/O
      * brick)).  So for PIC we need to adjust this "internal slot" num
-     * passed into us, into it's external representation.  See comment
+     * passed into us, into its external representation.  See comment
      * for the PCIBR_DEVICE_TO_SLOT macro for more information.
      */
     NEW(pcibr_info);
@@ -1527,7 +1527,7 @@
 	/* enable parity checking on PICs internal RAM */
 	pic_ctrl_reg |= PIC_CTRL_PAR_EN_RESP;
 	pic_ctrl_reg |= PIC_CTRL_PAR_EN_ATE;
-	/* PIC BRINGUP WAR (PV# 862253): dont enable write request
+	/* PIC BRINGUP WAR (PV# 862253): don't enable write request
 	 * parity checking.
 	 */
 	if (!PCIBR_WAR_ENABLED(PV862253, pcibr_soft)) {
diff -urN linux-2.5.63-bk1/arch/ia64/sn/io/sn2/pcibr/pcibr_slot.c linux-2.5.63-bk2/arch/ia64/sn/io/sn2/pcibr/pcibr_slot.c
--- linux-2.5.63-bk1/arch/ia64/sn/io/sn2/pcibr/pcibr_slot.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/io/sn2/pcibr/pcibr_slot.c	Mon Mar 31 12:15:51 2003
@@ -803,7 +803,7 @@
 	 * 'min_gnt' and attempt to calculate a latency time. 
 	 *
 	 * NOTE: For now if the device is on the 'real time' arbitration
-	 * ring we dont set the latency timer.  
+	 * ring we don't set the latency timer.  
 	 *
 	 * WAR: SGI's IOC3 and RAD devices target abort if you write a 
 	 * single byte into their config space.  So don't set the Latency
@@ -852,7 +852,7 @@
 	}
 
 	/* Get the PCI-X capability if running in PCI-X mode.  If the func
-	 * doesnt have a pcix capability, allocate a PCIIO_VENDOR_ID_NONE
+	 * doesn't have a pcix capability, allocate a PCIIO_VENDOR_ID_NONE
 	 * pcibr_info struct so the device driver for that function is not
 	 * called.
 	 */
@@ -1449,7 +1449,7 @@
 	/*
 	 * The Adaptec 1160 FC Controller WAR #767995:
 	 * The part incorrectly ignores the upper 32 bits of a 64 bit
-	 * address when decoding references to it's registers so to
+	 * address when decoding references to its registers so to
 	 * keep it from responding to a bus cycle that it shouldn't
 	 * we only use I/O space to get at it's registers.  Don't
 	 * enable memory space accesses on that PCI device.
diff -urN linux-2.5.63-bk1/arch/ia64/sn/kernel/llsc4.c linux-2.5.63-bk2/arch/ia64/sn/kernel/llsc4.c
--- linux-2.5.63-bk1/arch/ia64/sn/kernel/llsc4.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/kernel/llsc4.c	Mon Mar 31 12:15:51 2003
@@ -301,7 +301,7 @@
 		 */
 		linei = randn(linecount, &seed);
 		sharei = randn(2, &seed);
-		slinei = (linei + (linecount/2))%linecount;		/* I dont like this - fix later */
+		slinei = (linei + (linecount/2))%linecount;		/* I don't like this - fix later */
 
 		linep = (dataline_t *)blocks[linei];
 		slinep = (dataline_t *)blocks[slinei];
diff -urN linux-2.5.63-bk1/arch/ia64/sn/kernel/setup.c linux-2.5.63-bk2/arch/ia64/sn/kernel/setup.c
--- linux-2.5.63-bk1/arch/ia64/sn/kernel/setup.c	Mon Mar 31 12:15:45 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/kernel/setup.c	Mon Mar 31 12:15:51 2003
@@ -172,7 +172,7 @@
 
 	/*
 	 * Parse enough of the SAL tables to locate the SAL entry point. Since, console
-	 * IO on SN2 is done via SAL calls, early_printk wont work without this.
+	 * IO on SN2 is done via SAL calls, early_printk won't work without this.
 	 *
 	 * This code duplicates some of the ACPI table parsing that is in efi.c & sal.c.
 	 * Any changes to those file may have to be made hereas well.
diff -urN linux-2.5.63-bk1/arch/ia64/sn/kernel/sn1/sn1_smp.c linux-2.5.63-bk2/arch/ia64/sn/kernel/sn1/sn1_smp.c
--- linux-2.5.63-bk1/arch/ia64/sn/kernel/sn1/sn1_smp.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/kernel/sn1/sn1_smp.c	Mon Mar 31 12:15:51 2003
@@ -100,7 +100,7 @@
 
 /*
  * The following table/struct is for remembering PTC coherency domains. It
- * is also used to translate sapicid into cpuids. We dont want to start 
+ * is also used to translate sapicid into cpuids. We don't want to start 
  * cpus unless we know their cache domain.
  */
 #ifdef PTC_NOTYET
diff -urN linux-2.5.63-bk1/arch/ia64/sn/kernel/sn2/sn2_smp.c linux-2.5.63-bk2/arch/ia64/sn/kernel/sn2/sn2_smp.c
--- linux-2.5.63-bk1/arch/ia64/sn/kernel/sn2/sn2_smp.c	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/arch/ia64/sn/kernel/sn2/sn2_smp.c	Mon Mar 31 12:15:51 2003
@@ -395,7 +395,7 @@
 	mycnode = local_nodeid;
 
 	/* 
-	 * For now, we dont want to spin uninterruptibly waiting
+	 * For now, we don't want to spin uninterruptibly waiting
 	 * for the lock. Makes hangs hard to debug.
 	 */
 	local_irq_save(flags);
@@ -506,7 +506,7 @@
 	pio_phys_write_mmr(p, val);
 
 #ifndef CONFIG_SHUB_1_0_SPECIFIC
-	/* doesnt work on shub 1.0 */
+	/* doesn't work on shub 1.0 */
 	wait_piowc();
 #endif
 }
diff -urN linux-2.5.63-bk1/arch/m68k/ifpsp060/src/fpsp.S linux-2.5.63-bk2/arch/m68k/ifpsp060/src/fpsp.S
--- linux-2.5.63-bk1/arch/m68k/ifpsp060/src/fpsp.S	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/arch/m68k/ifpsp060/src/fpsp.S	Mon Mar 31 12:15:51 2003
@@ -2201,7 +2201,7 @@
 	mov.l		LOCAL_SIZE+2+EXC_PC(%sp),LOCAL_SIZE+2+EXC_PC-0xc(%sp)
 	mov.l		LOCAL_SIZE+EXC_EA(%sp),LOCAL_SIZE+EXC_EA-0xc(%sp)
 
-# now, we copy the default result to it's proper location
+# now, we copy the default result to its proper location
 	mov.l		LOCAL_SIZE+FP_DST_EX(%sp),LOCAL_SIZE+0x4(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_HI(%sp),LOCAL_SIZE+0x8(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_LO(%sp),LOCAL_SIZE+0xc(%sp)
@@ -2241,7 +2241,7 @@
 	mov.l		LOCAL_SIZE+2+EXC_PC(%sp),LOCAL_SIZE+2+EXC_PC-0xc(%sp)
 	mov.l		LOCAL_SIZE+EXC_EA(%sp),LOCAL_SIZE+EXC_EA-0xc(%sp)
 
-# now, we copy the default result to it's proper location
+# now, we copy the default result to its proper location
 	mov.l		LOCAL_SIZE+FP_DST_EX(%sp),LOCAL_SIZE+0x4(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_HI(%sp),LOCAL_SIZE+0x8(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_LO(%sp),LOCAL_SIZE+0xc(%sp)
@@ -2281,7 +2281,7 @@
 	mov.l		LOCAL_SIZE+2+EXC_PC(%sp),LOCAL_SIZE+2+EXC_PC-0xc(%sp)
 	mov.l		LOCAL_SIZE+EXC_EA(%sp),LOCAL_SIZE+EXC_EA-0xc(%sp)
 
-# now, we copy the default result to it's proper location
+# now, we copy the default result to its proper location
 	mov.l		LOCAL_SIZE+FP_DST_EX(%sp),LOCAL_SIZE+0x4(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_HI(%sp),LOCAL_SIZE+0x8(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_LO(%sp),LOCAL_SIZE+0xc(%sp)
diff -urN linux-2.5.63-bk1/arch/m68k/ifpsp060/src/isp.S linux-2.5.63-bk2/arch/m68k/ifpsp060/src/isp.S
--- linux-2.5.63-bk1/arch/m68k/ifpsp060/src/isp.S	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/arch/m68k/ifpsp060/src/isp.S	Mon Mar 31 12:15:51 2003
@@ -843,7 +843,7 @@
 	bra.l		_real_access		
 
 # if the addressing mode was (an)+ or -(an), the address register must
-# be restored to it's pre-exception value before entering _real_access.
+# be restored to its pre-exception value before entering _real_access.
 isp_restore:
 	cmpi.b		SPCOND_FLG(%a6),&restore_flg # do we need a restore?
 	bne.b		isp_restore_done	# no
diff -urN linux-2.5.63-bk1/arch/m68k/ifpsp060/src/pfpsp.S linux-2.5.63-bk2/arch/m68k/ifpsp060/src/pfpsp.S
--- linux-2.5.63-bk1/arch/m68k/ifpsp060/src/pfpsp.S	Mon Feb 24 11:05:07 2003
+++ linux-2.5.63-bk2/arch/m68k/ifpsp060/src/pfpsp.S	Mon Mar 31 12:15:51 2003
@@ -2200,7 +2200,7 @@
 	mov.l		LOCAL_SIZE+2+EXC_PC(%sp),LOCAL_SIZE+2+EXC_PC-0xc(%sp)
 	mov.l		LOCAL_SIZE+EXC_EA(%sp),LOCAL_SIZE+EXC_EA-0xc(%sp)
 
-# now, we copy the default result to it's proper location
+# now, we copy the default result to its proper location
 	mov.l		LOCAL_SIZE+FP_DST_EX(%sp),LOCAL_SIZE+0x4(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_HI(%sp),LOCAL_SIZE+0x8(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_LO(%sp),LOCAL_SIZE+0xc(%sp)
@@ -2240,7 +2240,7 @@
 	mov.l		LOCAL_SIZE+2+EXC_PC(%sp),LOCAL_SIZE+2+EXC_PC-0xc(%sp)
 	mov.l		LOCAL_SIZE+EXC_EA(%sp),LOCAL_SIZE+EXC_EA-0xc(%sp)
 
-# now, we copy the default result to it's proper location
+# now, we copy the default result to its proper location
 	mov.l		LOCAL_SIZE+FP_DST_EX(%sp),LOCAL_SIZE+0x4(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_HI(%sp),LOCAL_SIZE+0x8(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_LO(%sp),LOCAL_SIZE+0xc(%sp)
@@ -2280,7 +2280,7 @@
 	mov.l		LOCAL_SIZE+2+EXC_PC(%sp),LOCAL_SIZE+2+EXC_PC-0xc(%sp)
 	mov.l		LOCAL_SIZE+EXC_EA(%sp),LOCAL_SIZE+EXC_EA-0xc(%sp)
 
-# now, we copy the default result to it's proper location
+# now, we copy the default result to its proper location
 	mov.l		LOCAL_SIZE+FP_DST_EX(%sp),LOCAL_SIZE+0x4(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_HI(%sp),LOCAL_SIZE+0x8(%sp)
 	mov.l		LOCAL_SIZE+FP_DST_LO(%sp),LOCAL_SIZE+0xc(%sp)
diff -urN linux-2.5.63-bk1/arch/m68k/kernel/head.S linux-2.5.63-bk2/arch/m68k/kernel/head.S
--- linux-2.5.63-bk1/arch/m68k/kernel/head.S	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/arch/m68k/kernel/head.S	Mon Mar 31 12:15:51 2003
@@ -3127,7 +3127,7 @@
 	moveb	%d0,M162_SCC_CTRL_A
 	jra	3f
 5:
-	/* 166/167/177; its a CD2401 */
+	/* 166/167/177; it's a CD2401 */
 	moveb	#0,M167_CYCAR
 	moveb	M167_CYIER,%d2
 	moveb	#0x02,M167_CYIER
diff -urN linux-2.5.63-bk1/arch/m68k/kernel/time.c linux-2.5.63-bk2/arch/m68k/kernel/time.c
--- linux-2.5.63-bk1/arch/m68k/kernel/time.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/arch/m68k/kernel/time.c	Mon Mar 31 12:15:51 2003
@@ -26,7 +26,7 @@
 #include <linux/timex.h>
 #include <linux/profile.h>
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 static inline int set_rtc_mmss(unsigned long nowtime)
 {
diff -urN linux-2.5.63-bk1/arch/m68k/math-emu/fp_util.S linux-2.5.63-bk2/arch/m68k/math-emu/fp_util.S
--- linux-2.5.63-bk1/arch/m68k/math-emu/fp_util.S	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/arch/m68k/math-emu/fp_util.S	Mon Mar 31 12:15:51 2003
@@ -49,7 +49,7 @@
  * is currently at that time unused, be careful if you want change
  * something here. %d0 and %d1 is always usable, sometimes %d2 (or
  * only the lower half) most function have to return the %a0
- * unmodified, so that the caller can immediatly reuse it.
+ * unmodified, so that the caller can immediately reuse it.
  */
 
 	.globl	fp_ill, fp_end
diff -urN linux-2.5.63-bk1/arch/m68k/sun3/config.c linux-2.5.63-bk2/arch/m68k/sun3/config.c
--- linux-2.5.63-bk1/arch/m68k/sun3/config.c	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/arch/m68k/sun3/config.c	Mon Mar 31 12:15:51 2003
@@ -119,7 +119,7 @@
 {
 	unsigned long start_page;
 
-	/* align start/end to page boundries */
+	/* align start/end to page boundaries */
 	memory_start = ((memory_start + (PAGE_SIZE-1)) & PAGE_MASK);
 	memory_end = memory_end & PAGE_MASK;
 		
diff -urN linux-2.5.63-bk1/arch/m68knommu/kernel/syscalltable.S linux-2.5.63-bk2/arch/m68knommu/kernel/syscalltable.S
--- linux-2.5.63-bk1/arch/m68knommu/kernel/syscalltable.S	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/arch/m68knommu/kernel/syscalltable.S	Mon Mar 31 12:15:51 2003
@@ -14,6 +14,7 @@
 #include <linux/config.h>
 #include <linux/sys.h>
 #include <linux/linkage.h>
+#include <asm/unistd.h>
 
 .text
 ALIGN
diff -urN linux-2.5.63-bk1/arch/m68knommu/kernel/time.c linux-2.5.63-bk2/arch/m68knommu/kernel/time.c
--- linux-2.5.63-bk1/arch/m68knommu/kernel/time.c	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/arch/m68knommu/kernel/time.c	Mon Mar 31 12:15:51 2003
@@ -26,7 +26,7 @@
 
 #define	TICK_SIZE (tick_nsec / 1000)
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 static inline int set_rtc_mmss(unsigned long nowtime)
 {
diff -urN linux-2.5.63-bk1/arch/m68knommu/platform/5307/entry.S linux-2.5.63-bk2/arch/m68knommu/platform/5307/entry.S
--- linux-2.5.63-bk1/arch/m68knommu/platform/5307/entry.S	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/arch/m68knommu/platform/5307/entry.S	Mon Mar 31 12:15:51 2003
@@ -27,6 +27,7 @@
 #include <linux/config.h>
 #include <linux/sys.h>
 #include <linux/linkage.h>
+#include <asm/unistd.h>
 #include <asm/thread_info.h>
 #include <asm/errno.h>
 #include <asm/setup.h>
diff -urN linux-2.5.63-bk1/arch/m68knommu/platform/5307/vectors.c linux-2.5.63-bk2/arch/m68knommu/platform/5307/vectors.c
--- linux-2.5.63-bk1/arch/m68knommu/platform/5307/vectors.c	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/arch/m68knommu/platform/5307/vectors.c	Mon Mar 31 12:15:51 2003
@@ -13,6 +13,7 @@
 #include <linux/sched.h>
 #include <linux/param.h>
 #include <linux/init.h>
+#include <linux/unistd.h>
 #include <asm/irq.h>
 #include <asm/dma.h>
 #include <asm/traps.h>
diff -urN linux-2.5.63-bk1/arch/m68knommu/platform/68360/ints.c linux-2.5.63-bk2/arch/m68knommu/platform/68360/ints.c
--- linux-2.5.63-bk1/arch/m68knommu/platform/68360/ints.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/arch/m68knommu/platform/68360/ints.c	Mon Mar 31 12:15:51 2003
@@ -291,7 +291,7 @@
 
 	/* unsigned long pend = *(volatile unsigned long *)pquicc->intr_cipr; */
 
-	/* Bugger all that wierdness. For the moment, I seem to know where I came from;
+	/* Bugger all that weirdness. For the moment, I seem to know where I came from;
 	 * vec is passed from a specific ISR, so I'll use it. */
 
 	if (int_irq_list[irq] && int_irq_list[irq]->handler) {
diff -urN linux-2.5.63-bk1/arch/mips/baget/wbflush.c linux-2.5.63-bk2/arch/mips/baget/wbflush.c
--- linux-2.5.63-bk1/arch/mips/baget/wbflush.c	Mon Feb 24 11:05:37 2003
+++ linux-2.5.63-bk2/arch/mips/baget/wbflush.c	Mon Mar 31 12:15:51 2003
@@ -17,7 +17,7 @@
 }
 
 /*
- * Baget/MIPS doesnt need to write back the WB.
+ * Baget/MIPS doesn't need to write back the WB.
  */
 static void wbflush_baget(void)
 {
diff -urN linux-2.5.63-bk1/arch/mips/dec/boot/decstation.c linux-2.5.63-bk2/arch/mips/dec/boot/decstation.c
--- linux-2.5.63-bk1/arch/mips/dec/boot/decstation.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/arch/mips/dec/boot/decstation.c	Mon Mar 31 12:15:51 2003
@@ -70,7 +70,7 @@
 
 #ifdef RELOC
 	/*
-	 * Now copy kernel image to it's destination.
+	 * Now copy kernel image to its destination.
 	 */
 	len = ((unsigned long) (&_end) - k_start);
 	memcpy((void *)k_start, &_ftext, len);
diff -urN linux-2.5.63-bk1/arch/mips/kernel/irq.c linux-2.5.63-bk2/arch/mips/kernel/irq.c
--- linux-2.5.63-bk1/arch/mips/kernel/irq.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/arch/mips/kernel/irq.c	Mon Mar 31 12:15:51 2003
@@ -44,7 +44,7 @@
 {
 	/*
 	 * 'what should we do if we get a hw irq event on an illegal vector'.
-	 * each architecture has to answer this themselves, it doesnt deserve
+	 * each architecture has to answer this themselves, it doesn't deserve
 	 * a generic callback i think.
 	 */
 	printk("unexpected interrupt %d\n", irq);
diff -urN linux-2.5.63-bk1/arch/mips/kernel/r2300_misc.S linux-2.5.63-bk2/arch/mips/kernel/r2300_misc.S
--- linux-2.5.63-bk1/arch/mips/kernel/r2300_misc.S	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/arch/mips/kernel/r2300_misc.S	Mon Mar 31 12:15:51 2003
@@ -76,7 +76,7 @@
 	/* Check is PTE is present, if not then jump to LABEL.
 	 * PTR points to the page table where this PTE is located,
 	 * when the macro is done executing PTE will be restored
-	 * with it's original value.
+	 * with its original value.
 	 */
 #define PTE_PRESENT(pte, ptr, label) \
 	andi	pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
diff -urN linux-2.5.63-bk1/arch/mips/kernel/r2300_switch.S linux-2.5.63-bk2/arch/mips/kernel/r2300_switch.S
--- linux-2.5.63-bk1/arch/mips/kernel/r2300_switch.S	Mon Mar 31 12:15:45 2003
+++ linux-2.5.63-bk2/arch/mips/kernel/r2300_switch.S	Mon Mar 31 12:15:51 2003
@@ -108,7 +108,7 @@
 
 /*
  * Load the FPU with signalling NANS.  This bit pattern we're using has
- * the property that no matter wether considered as single or as double
+ * the property that no matter whether considered as single or as double
  * precission represents signaling NANS.
  *
  * We initialize fcr31 to rounding to nearest, no exceptions.
diff -urN linux-2.5.63-bk1/arch/mips/kernel/r4k_misc.S linux-2.5.63-bk2/arch/mips/kernel/r4k_misc.S
--- linux-2.5.63-bk1/arch/mips/kernel/r4k_misc.S	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/arch/mips/kernel/r4k_misc.S	Mon Mar 31 12:15:51 2003
@@ -93,7 +93,7 @@
 	/* Check is PTE is present, if not then jump to LABEL.
 	 * PTR points to the page table where this PTE is located,
 	 * when the macro is done executing PTE will be restored
-	 * with it's original value.
+	 * with its original value.
 	 */
 #define PTE_PRESENT(pte, ptr, label) \
 	andi	pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
diff -urN linux-2.5.63-bk1/arch/mips/kernel/setup.c linux-2.5.63-bk2/arch/mips/kernel/setup.c
--- linux-2.5.63-bk1/arch/mips/kernel/setup.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/arch/mips/kernel/setup.c	Mon Mar 31 12:15:51 2003
@@ -775,7 +775,7 @@
 		request_resource(&iomem_resource, res);
 
 		/*
-		 *  We dont't know which RAM region contains kernel data,
+		 *  We don't know which RAM region contains kernel data,
 		 *  so we try it repeatedly and let the resource manager
 		 *  test it.
 		 */
diff -urN linux-2.5.63-bk1/arch/mips/kernel/time.c linux-2.5.63-bk2/arch/mips/kernel/time.c
--- linux-2.5.63-bk1/arch/mips/kernel/time.c	Mon Feb 24 11:05:29 2003
+++ linux-2.5.63-bk2/arch/mips/kernel/time.c	Mon Mar 31 12:15:51 2003
@@ -32,7 +32,7 @@
 #define USECS_PER_JIFFY (1000000/HZ)
 #define USECS_PER_JIFFY_FRAC ((1000000ULL << 32) / HZ & 0xffffffff)
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 /*
  * forward reference
diff -urN linux-2.5.63-bk1/arch/mips/kernel/traps.c linux-2.5.63-bk2/arch/mips/kernel/traps.c
--- linux-2.5.63-bk1/arch/mips/kernel/traps.c	Mon Feb 24 11:05:29 2003
+++ linux-2.5.63-bk2/arch/mips/kernel/traps.c	Mon Mar 31 12:15:51 2003
@@ -793,7 +793,7 @@
 	/* Some firmware leaves the BEV flag set, clear it.  */
 	clear_cp0_status(ST0_BEV);
 
-	/* Copy the generic exception handler code to it's final destination. */
+	/* Copy the generic exception handler code to its final destination. */
 	memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80);
 	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
 	memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
@@ -805,7 +805,7 @@
 		set_except_vector(i, handle_reserved);
 
 	/* 
-	 * Copy the EJTAG debug exception vector handler code to it's final 
+	 * Copy the EJTAG debug exception vector handler code to its final 
 	 * destination.
 	 */
 	memcpy((void *)(KSEG0 + 0x300), &except_vec_ejtag_debug, 0x80);
diff -urN linux-2.5.63-bk1/arch/mips/math-emu/ieee754.c linux-2.5.63-bk2/arch/mips/math-emu/ieee754.c
--- linux-2.5.63-bk1/arch/mips/math-emu/ieee754.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/arch/mips/math-emu/ieee754.c	Mon Mar 31 12:15:51 2003
@@ -3,7 +3,7 @@
  *
  * BUGS
  * not much dp done
- * doesnt generate IEEE754_INEXACT
+ * doesn't generate IEEE754_INEXACT
  *
  */
 /*
diff -urN linux-2.5.63-bk1/arch/mips/math-emu/ieee754dp.c linux-2.5.63-bk2/arch/mips/math-emu/ieee754dp.c
--- linux-2.5.63-bk1/arch/mips/math-emu/ieee754dp.c	Mon Mar 31 12:15:45 2003
+++ linux-2.5.63-bk2/arch/mips/math-emu/ieee754dp.c	Mon Mar 31 12:15:51 2003
@@ -106,7 +106,7 @@
  */
 ieee754dp ieee754dp_format(int sn, int xe, unsigned long long xm)
 {
-	assert(xm);		/* we dont gen exact zeros (probably should) */
+	assert(xm);		/* we don't gen exact zeros (probably should) */
 
 	assert((xm >> (DP_MBITS + 1 + 3)) == 0);	/* no execess */
 	assert(xm & (DP_HIDDEN_BIT << 3));
diff -urN linux-2.5.63-bk1/arch/mips/math-emu/ieee754sp.c linux-2.5.63-bk2/arch/mips/math-emu/ieee754sp.c
--- linux-2.5.63-bk1/arch/mips/math-emu/ieee754sp.c	Mon Mar 31 12:15:45 2003
+++ linux-2.5.63-bk2/arch/mips/math-emu/ieee754sp.c	Mon Mar 31 12:15:51 2003
@@ -107,7 +107,7 @@
  */
 ieee754sp ieee754sp_format(int sn, int xe, unsigned xm)
 {
-	assert(xm);		/* we dont gen exact zeros (probably should) */
+	assert(xm);		/* we don't gen exact zeros (probably should) */
 
 	assert((xm >> (SP_MBITS + 1 + 3)) == 0);	/* no execess */
 	assert(xm & (SP_HIDDEN_BIT << 3));
diff -urN linux-2.5.63-bk1/arch/mips/math-emu/sp_fdp.c linux-2.5.63-bk2/arch/mips/math-emu/sp_fdp.c
--- linux-2.5.63-bk1/arch/mips/math-emu/sp_fdp.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/arch/mips/math-emu/sp_fdp.c	Mon Mar 31 12:15:51 2003
@@ -49,7 +49,7 @@
 	case IEEE754_CLASS_ZERO:
 		return ieee754sp_zero(xs);
 	case IEEE754_CLASS_DNORM:
-		/* cant possibly be sp representable */
+		/* can't possibly be sp representable */
 		SETCX(IEEE754_UNDERFLOW);
 		return ieee754sp_xcpt(ieee754sp_zero(xs), "fdp", x);
 	case IEEE754_CLASS_NORM:
diff -urN linux-2.5.63-bk1/arch/mips64/kernel/traps.c linux-2.5.63-bk2/arch/mips64/kernel/traps.c
--- linux-2.5.63-bk1/arch/mips64/kernel/traps.c	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/arch/mips64/kernel/traps.c	Mon Mar 31 12:15:51 2003
@@ -497,7 +497,7 @@
 	/* Some firmware leaves the BEV flag set, clear it.  */
 	set_cp0_status(ST0_BEV, 0);
 
-	/* Copy the generic exception handler code to it's final destination. */
+	/* Copy the generic exception handler code to its final destination. */
 	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
 	memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
 
diff -urN linux-2.5.63-bk1/arch/mips64/math-emu/ieee754dp.c linux-2.5.63-bk2/arch/mips64/math-emu/ieee754dp.c
--- linux-2.5.63-bk1/arch/mips64/math-emu/ieee754dp.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/arch/mips64/math-emu/ieee754dp.c	Mon Mar 31 12:15:51 2003
@@ -106,7 +106,7 @@
  */
 ieee754dp ieee754dp_format(int sn, int xe, unsigned long long xm)
 {
-	assert(xm);		/* we dont gen exact zeros (probably should) */
+	assert(xm);		/* we don't gen exact zeros (probably should) */
 
 	assert((xm >> (DP_MBITS + 1 + 3)) == 0);	/* no execess */
 	assert(xm & (DP_HIDDEN_BIT << 3));
diff -urN linux-2.5.63-bk1/arch/mips64/math-emu/ieee754sp.c linux-2.5.63-bk2/arch/mips64/math-emu/ieee754sp.c
--- linux-2.5.63-bk1/arch/mips64/math-emu/ieee754sp.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/arch/mips64/math-emu/ieee754sp.c	Mon Mar 31 12:15:51 2003
@@ -107,7 +107,7 @@
  */
 ieee754sp ieee754sp_format(int sn, int xe, unsigned xm)
 {
-	assert(xm);		/* we dont gen exact zeros (probably should) */
+	assert(xm);		/* we don't gen exact zeros (probably should) */
 
 	assert((xm >> (SP_MBITS + 1 + 3)) == 0);	/* no execess */
 	assert(xm & (SP_HIDDEN_BIT << 3));
diff -urN linux-2.5.63-bk1/arch/mips64/math-emu/sp_fdp.c linux-2.5.63-bk2/arch/mips64/math-emu/sp_fdp.c
--- linux-2.5.63-bk1/arch/mips64/math-emu/sp_fdp.c	Mon Feb 24 11:05:45 2003
+++ linux-2.5.63-bk2/arch/mips64/math-emu/sp_fdp.c	Mon Mar 31 12:15:51 2003
@@ -49,7 +49,7 @@
 	case IEEE754_CLASS_ZERO:
 		return ieee754sp_zero(xs);
 	case IEEE754_CLASS_DNORM:
-		/* cant possibly be sp representable */
+		/* can't possibly be sp representable */
 		SETCX(IEEE754_UNDERFLOW);
 		return ieee754sp_xcpt(ieee754sp_zero(xs), "fdp", x);
 	case IEEE754_CLASS_NORM:
diff -urN linux-2.5.63-bk1/arch/mips64/sgi-ip27/ip27-nmi.c linux-2.5.63-bk2/arch/mips64/sgi-ip27/ip27-nmi.c
--- linux-2.5.63-bk1/arch/mips64/sgi-ip27/ip27-nmi.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/arch/mips64/sgi-ip27/ip27-nmi.c	Mon Mar 31 12:15:51 2003
@@ -127,7 +127,7 @@
 	 * This is for 2 reasons:
 	 *	- sometimes a MMSC fail to NMI all cpus.
 	 *	- on 512p SN0 system, the MMSC will only send NMIs to
-	 *	  half the cpus. Unfortunately, we dont know which cpus may be
+	 *	  half the cpus. Unfortunately, we don't know which cpus may be
 	 *	  NMIed - it depends on how the site chooses to configure.
 	 * 
 	 * Note: it has been measure that it takes the MMSC up to 2.3 secs to
diff -urN linux-2.5.63-bk1/arch/mips64/sgi-ip27/ip27-pci-dma.c linux-2.5.63-bk2/arch/mips64/sgi-ip27/ip27-pci-dma.c
--- linux-2.5.63-bk1/arch/mips64/sgi-ip27/ip27-pci-dma.c	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/arch/mips64/sgi-ip27/ip27-pci-dma.c	Mon Mar 31 12:15:51 2003
@@ -74,7 +74,7 @@
  * must match what was provided for in a previous pci_map_single call.  All
  * other usages are undefined.
  *
- * After this call, reads by the cpu to the buffer are guarenteed to see
+ * After this call, reads by the cpu to the buffer are guaranteed to see
  * whatever the device wrote there.
  */
 void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
diff -urN linux-2.5.63-bk1/arch/parisc/kernel/irq.c linux-2.5.63-bk2/arch/parisc/kernel/irq.c
--- linux-2.5.63-bk1/arch/parisc/kernel/irq.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/arch/parisc/kernel/irq.c	Mon Mar 31 12:15:51 2003
@@ -349,7 +349,7 @@
 
 
 /*
-** The alloc process needs to accept a parameter to accomodate limitations
+** The alloc process needs to accept a parameter to accommodate limitations
 ** of the HW/SW which use these bits:
 ** Legacy PA I/O (GSC/NIO): 5 bits (architected EIM register)
 ** V-class (EPIC):          6 bits
diff -urN linux-2.5.63-bk1/arch/parisc/kernel/perf.c linux-2.5.63-bk2/arch/parisc/kernel/perf.c
--- linux-2.5.63-bk1/arch/parisc/kernel/perf.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/arch/parisc/kernel/perf.c	Mon Mar 31 12:15:51 2003
@@ -255,7 +255,7 @@
 }
 
 /*
- * Open the device and initialize all of it's memory.  The device is only 
+ * Open the device and initialize all of its memory.  The device is only 
  * opened once, but can be "queried" by multiple processes that know its
  * file descriptor.
  */
diff -urN linux-2.5.63-bk1/arch/parisc/kernel/ptrace.c linux-2.5.63-bk2/arch/parisc/kernel/ptrace.c
--- linux-2.5.63-bk1/arch/parisc/kernel/ptrace.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/arch/parisc/kernel/ptrace.c	Mon Mar 31 12:15:51 2003
@@ -242,7 +242,7 @@
 			 *
 			 * Allow writing to Nullify, Divide-step-correction,
 			 * and carry/borrow bits.
-			 * BEWARE, if you set N, and then single step, it wont
+			 * BEWARE, if you set N, and then single step, it won't
 			 * stop on the nullified instruction.
 			 */
 			DBG(("sys_ptrace(POKEUSR, %d, %lx, %lx)\n",
diff -urN linux-2.5.63-bk1/arch/parisc/kernel/time.c linux-2.5.63-bk2/arch/parisc/kernel/time.c
--- linux-2.5.63-bk1/arch/parisc/kernel/time.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/arch/parisc/kernel/time.c	Mon Mar 31 12:15:51 2003
@@ -32,7 +32,7 @@
 
 #include <linux/timex.h>
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 /* xtime and wall_jiffies keep wall-clock time */
 extern unsigned long wall_jiffies;
diff -urN linux-2.5.63-bk1/arch/ppc/kernel/l2cr.S linux-2.5.63-bk2/arch/ppc/kernel/l2cr.S
--- linux-2.5.63-bk1/arch/ppc/kernel/l2cr.S	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/arch/ppc/kernel/l2cr.S	Mon Mar 31 12:15:51 2003
@@ -136,7 +136,7 @@
 	 /**** Might be a good idea to set L2DO here - to prevent instructions
 	       from getting into the cache.  But since we invalidate
 	       the next time we enable the cache it doesn't really matter.
-	       Don't do this unless you accomodate all processor variations.
+	       Don't do this unless you accommodate all processor variations.
 	       The bit moved on the 7450.....
 	  ****/
 
diff -urN linux-2.5.63-bk1/arch/ppc/kernel/time.c linux-2.5.63-bk2/arch/ppc/kernel/time.c
--- linux-2.5.63-bk1/arch/ppc/kernel/time.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/arch/ppc/kernel/time.c	Mon Mar 31 12:15:51 2003
@@ -68,7 +68,7 @@
 #include <asm/time.h>
 
 /* XXX false sharing with below? */
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 unsigned long disarm_decr[NR_CPUS];
 
diff -urN linux-2.5.63-bk1/arch/ppc/mm/mem_pieces.c linux-2.5.63-bk2/arch/ppc/mm/mem_pieces.c
--- linux-2.5.63-bk1/arch/ppc/mm/mem_pieces.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/arch/ppc/mm/mem_pieces.c	Mon Mar 31 12:15:52 2003
@@ -1,6 +1,6 @@
 /*
  *    Copyright (c) 1996 Paul Mackerras <paulus@cs.anu.edu.au>
- *      Changes to accomodate Power Macintoshes.
+ *      Changes to accommodate Power Macintoshes.
  *    Cort Dougan <cort@cs.nmt.edu>
  *      Rewrites.
  *    Grant Erickson <grant@lcse.umn.edu>
diff -urN linux-2.5.63-bk1/arch/ppc/mm/mem_pieces.h linux-2.5.63-bk2/arch/ppc/mm/mem_pieces.h
--- linux-2.5.63-bk1/arch/ppc/mm/mem_pieces.h	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/arch/ppc/mm/mem_pieces.h	Mon Mar 31 12:15:52 2003
@@ -1,6 +1,6 @@
 /*
  *    Copyright (c) 1996 Paul Mackerras <paulus@cs.anu.edu.au>
- *      Changes to accomodate Power Macintoshes.
+ *      Changes to accommodate Power Macintoshes.
  *    Cort Dougan <cort@cs.nmt.edu>
  *      Rewrites.
  *    Grant Erickson <grant@lcse.umn.edu>
diff -urN linux-2.5.63-bk1/arch/ppc/platforms/pmac_feature.c linux-2.5.63-bk2/arch/ppc/platforms/pmac_feature.c
--- linux-2.5.63-bk1/arch/ppc/platforms/pmac_feature.c	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/arch/ppc/platforms/pmac_feature.c	Mon Mar 31 12:15:52 2003
@@ -50,7 +50,7 @@
 
 /*
  * We use a single global lock to protect accesses. Each driver has
- * to take care of it's own locking
+ * to take care of its own locking
  */
 static spinlock_t feature_lock  __pmacdata = SPIN_LOCK_UNLOCKED;
 
diff -urN linux-2.5.63-bk1/arch/ppc/syslib/mpc10x_common.c linux-2.5.63-bk2/arch/ppc/syslib/mpc10x_common.c
--- linux-2.5.63-bk1/arch/ppc/syslib/mpc10x_common.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/arch/ppc/syslib/mpc10x_common.c	Mon Mar 31 12:15:52 2003
@@ -109,7 +109,7 @@
 			return -1;
 	}
 
-	/* Make sure its a supported bridge */
+	/* Make sure it's a supported bridge */
 	early_read_config_dword(hose,
 			        0,
 			        PCI_DEVFN(0,0),
diff -urN linux-2.5.63-bk1/arch/ppc64/boot/addRamDisk.c linux-2.5.63-bk2/arch/ppc64/boot/addRamDisk.c
--- linux-2.5.63-bk1/arch/ppc64/boot/addRamDisk.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/arch/ppc64/boot/addRamDisk.c	Mon Mar 31 12:15:52 2003
@@ -154,7 +154,7 @@
   
 	/* Process the Sysmap file to determine where _end is */
 	sysmapPages = sysmapLen / 4096;
-	/* read the whole file line by line, expect that it doesnt fail */
+	/* read the whole file line by line, expect that it doesn't fail */
 	while ( fgets(inbuf, 4096, sysmap) )  ;
 	/* search for _end in the last page of the system map */
 	ptr_end = strstr(inbuf, " _end");
diff -urN linux-2.5.63-bk1/arch/ppc64/boot/addSystemMap.c linux-2.5.63-bk2/arch/ppc64/boot/addSystemMap.c
--- linux-2.5.63-bk1/arch/ppc64/boot/addSystemMap.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/arch/ppc64/boot/addSystemMap.c	Mon Mar 31 12:15:52 2003
@@ -146,7 +146,7 @@
   /* Process the Sysmap file to determine the true end of the kernel */
 	sysmapPages = sysmapLen / 4096;
 	printf("System map pages to copy = %ld\n", sysmapPages);
-	/* read the whole file line by line, expect that it doesnt fail */
+	/* read the whole file line by line, expect that it doesn't fail */
 	while ( fgets(inbuf, 4096, sysmap) )  ;
 	/* search for _end in the last page of the system map */
 	ptr_end = strstr(inbuf, " _end");
diff -urN linux-2.5.63-bk1/arch/ppc64/kernel/head.S linux-2.5.63-bk2/arch/ppc64/kernel/head.S
--- linux-2.5.63-bk1/arch/ppc64/kernel/head.S	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/arch/ppc64/kernel/head.S	Mon Mar 31 12:15:52 2003
@@ -109,7 +109,7 @@
 	.llong  0x0
 
 	/* Secondary processors write this value with their cpu # */
-	/* after they enter the spin loop immediatly below.       */
+	/* after they enter the spin loop immediately below.       */
 	.globl  __secondary_hold_acknowledge
 __secondary_hold_acknowledge:
 	.llong  0x0
diff -urN linux-2.5.63-bk1/arch/ppc64/kernel/ioctl32.c linux-2.5.63-bk2/arch/ppc64/kernel/ioctl32.c
--- linux-2.5.63-bk1/arch/ppc64/kernel/ioctl32.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/arch/ppc64/kernel/ioctl32.c	Mon Mar 31 12:15:52 2003
@@ -3315,7 +3315,7 @@
  *
  *	But how to keep track of these kernel buffers?  We'd need to either
  *	keep track of them in some table _or_ know about usbdevicefs internals
- *	(ie. the exact layout of it's file private, which is actually defined
+ *	(ie. the exact layout of its file private, which is actually defined
  *	in linux/usbdevice_fs.h, the layout of the async queues are private to
  *	devio.c)
  *
diff -urN linux-2.5.63-bk1/arch/ppc64/kernel/lmb.c linux-2.5.63-bk2/arch/ppc64/kernel/lmb.c
--- linux-2.5.63-bk1/arch/ppc64/kernel/lmb.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/arch/ppc64/kernel/lmb.c	Mon Mar 31 12:15:52 2003
@@ -73,7 +73,7 @@
 	_lmb->reserved.cnt = 1;
 }
 
-/* This is only used here, it doesnt deserve to be in bitops.h */
+/* This is only used here, it doesn't deserve to be in bitops.h */
 static __inline__ long cnt_trailing_zeros(unsigned long mask)
 {
         long cnt;
diff -urN linux-2.5.63-bk1/arch/ppc64/kernel/pSeries_lpar.c linux-2.5.63-bk2/arch/ppc64/kernel/pSeries_lpar.c
--- linux-2.5.63-bk1/arch/ppc64/kernel/pSeries_lpar.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/arch/ppc64/kernel/pSeries_lpar.c	Mon Mar 31 12:15:52 2003
@@ -461,7 +461,7 @@
 		return -1;
 
 	/*
-	 * Since we try and ioremap PHBs we dont own, the pte insert
+	 * Since we try and ioremap PHBs we don't own, the pte insert
 	 * will fail. However we must catch the failure in hash_page
 	 * or we will loop forever, so return -2 in this case.
 	 */
@@ -485,7 +485,7 @@
 
 	for (i = 0; i < HPTES_PER_GROUP; i++) {
 
-		/* dont remove a bolted entry */
+		/* don't remove a bolted entry */
 		lpar_rc = plpar_pte_remove(H_ANDCOND, hpte_group + slot_offset,
 					   (0x1UL << 4), &dummy1, &dummy2);
 
diff -urN linux-2.5.63-bk1/arch/ppc64/kernel/pci_dn.c linux-2.5.63-bk2/arch/ppc64/kernel/pci_dn.c
--- linux-2.5.63-bk1/arch/ppc64/kernel/pci_dn.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/arch/ppc64/kernel/pci_dn.c	Mon Mar 31 12:15:52 2003
@@ -150,7 +150,7 @@
 }
 
 /* This is the "slow" path for looking up a device_node from a
- * pci_dev.  It will hunt for the device under it's parent's
+ * pci_dev.  It will hunt for the device under its parent's
  * phb and then update sysdata for a future fastpath.
  *
  * It may also do fixups on the actual device since this happens
diff -urN linux-2.5.63-bk1/arch/ppc64/kernel/smp.c linux-2.5.63-bk2/arch/ppc64/kernel/smp.c
--- linux-2.5.63-bk1/arch/ppc64/kernel/smp.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/arch/ppc64/kernel/smp.c	Mon Mar 31 12:15:52 2003
@@ -51,7 +51,7 @@
 int smp_threads_ready = 0;
 unsigned long cache_decay_ticks;
 
-/* initialised so it doesnt end up in bss */
+/* initialised so it doesn't end up in bss */
 unsigned long cpu_online_map = 0;
 
 static struct smp_ops_t *smp_ops;
diff -urN linux-2.5.63-bk1/arch/ppc64/kernel/time.c linux-2.5.63-bk2/arch/ppc64/kernel/time.c
--- linux-2.5.63-bk1/arch/ppc64/kernel/time.c	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/arch/ppc64/kernel/time.c	Mon Mar 31 12:15:52 2003
@@ -65,7 +65,7 @@
 
 void smp_local_timer_interrupt(struct pt_regs *);
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 /* keep track of when we need to update the rtc */
 time_t last_rtc_update;
diff -urN linux-2.5.63-bk1/arch/ppc64/xmon/xmon.c linux-2.5.63-bk2/arch/ppc64/xmon/xmon.c
--- linux-2.5.63-bk1/arch/ppc64/xmon/xmon.c	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/arch/ppc64/xmon/xmon.c	Mon Mar 31 12:15:52 2003
@@ -2072,7 +2072,7 @@
 	int instr;
 	int num_parms;
 
-	/* dont look for traceback table in userspace */
+	/* don't look for traceback table in userspace */
 	if (codeaddr < PAGE_OFFSET)
 		return 0;
 
diff -urN linux-2.5.63-bk1/arch/s390/kernel/time.c linux-2.5.63-bk2/arch/s390/kernel/time.c
--- linux-2.5.63-bk1/arch/s390/kernel/time.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/arch/s390/kernel/time.c	Mon Mar 31 12:15:52 2003
@@ -46,7 +46,7 @@
 
 #define TICK_SIZE tick
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 static ext_int_info_t ext_int_info_timer;
 static uint64_t xtime_cc;
diff -urN linux-2.5.63-bk1/arch/s390x/kernel/time.c linux-2.5.63-bk2/arch/s390x/kernel/time.c
--- linux-2.5.63-bk1/arch/s390x/kernel/time.c	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/arch/s390x/kernel/time.c	Mon Mar 31 12:15:52 2003
@@ -45,7 +45,7 @@
 
 #define TICK_SIZE tick
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 static ext_int_info_t ext_int_info_timer;
 static uint64_t xtime_cc;
diff -urN linux-2.5.63-bk1/arch/sh/kernel/fpu.c linux-2.5.63-bk2/arch/sh/kernel/fpu.c
--- linux-2.5.63-bk1/arch/sh/kernel/fpu.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/arch/sh/kernel/fpu.c	Mon Mar 31 12:15:52 2003
@@ -118,7 +118,7 @@
 
 /*
  * Load the FPU with signalling NANS.  This bit pattern we're using
- * has the property that no matter wether considered as single or as
+ * has the property that no matter whether considered as single or as
  * double precission represents signaling NANS.  
  */
 
diff -urN linux-2.5.63-bk1/arch/sh/kernel/irq.c linux-2.5.63-bk2/arch/sh/kernel/irq.c
--- linux-2.5.63-bk1/arch/sh/kernel/irq.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/arch/sh/kernel/irq.c	Mon Mar 31 12:15:52 2003
@@ -61,7 +61,7 @@
 {
 /*
  * 'what should we do if we get a hw irq event on an illegal vector'.
- * each architecture has to answer this themselves, it doesnt deserve
+ * each architecture has to answer this themselves, it doesn't deserve
  * a generic callback i think.
  */
 	printk("unexpected IRQ trap at vector %02x\n", irq);
diff -urN linux-2.5.63-bk1/arch/sh/kernel/time.c linux-2.5.63-bk2/arch/sh/kernel/time.c
--- linux-2.5.63-bk1/arch/sh/kernel/time.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/arch/sh/kernel/time.c	Mon Mar 31 12:15:52 2003
@@ -70,7 +70,7 @@
 #endif /* CONFIG_CPU_SUBTYPE_ST40STB1 */
 #endif /* __sh3__ or __SH4__ */
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 extern unsigned long wall_jiffies;
 #define TICK_SIZE tick
diff -urN linux-2.5.63-bk1/arch/sparc/kernel/init_task.c linux-2.5.63-bk2/arch/sparc/kernel/init_task.c
--- linux-2.5.63-bk1/arch/sparc/kernel/init_task.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/arch/sparc/kernel/init_task.c	Mon Mar 31 12:15:52 2003
@@ -12,7 +12,7 @@
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct task_struct init_task = INIT_TASK(init_task);
 
-/* .text section in head.S is aligned at 8k boundry and this gets linked
+/* .text section in head.S is aligned at 8k boundary and this gets linked
  * right after that so that the init_thread_union is aligned properly as well.
  * If this is not aligned on a 8k boundry, then you should change code
  * in etrap.S which assumes it.
diff -urN linux-2.5.63-bk1/arch/sparc/kernel/ioport.c linux-2.5.63-bk2/arch/sparc/kernel/ioport.c
--- linux-2.5.63-bk1/arch/sparc/kernel/ioport.c	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/arch/sparc/kernel/ioport.c	Mon Mar 31 12:15:52 2003
@@ -599,7 +599,7 @@
  * must match what was provided for in a previous pci_map_single call.  All
  * other usages are undefined.
  *
- * After this call, reads by the cpu to the buffer are guarenteed to see
+ * After this call, reads by the cpu to the buffer are guaranteed to see
  * whatever the device wrote there.
  */
 void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t ba, size_t size,
diff -urN linux-2.5.63-bk1/arch/sparc/kernel/time.c linux-2.5.63-bk2/arch/sparc/kernel/time.c
--- linux-2.5.63-bk1/arch/sparc/kernel/time.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/arch/sparc/kernel/time.c	Mon Mar 31 12:15:52 2003
@@ -45,7 +45,7 @@
 
 extern unsigned long wall_jiffies;
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
 enum sparc_clock_type sp_clock_typ;
diff -urN linux-2.5.63-bk1/arch/sparc/lib/blockops.S linux-2.5.63-bk2/arch/sparc/lib/blockops.S
--- linux-2.5.63-bk1/arch/sparc/lib/blockops.S	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/arch/sparc/lib/blockops.S	Mon Mar 31 12:15:52 2003
@@ -38,7 +38,7 @@
 	 * and (2 * PAGE_SIZE) (for kernel stacks)
 	 * and with a second arg of zero.  We assume in
 	 * all of these cases that the buffer is aligned
-	 * on at least an 8 byte boundry.
+	 * on at least an 8 byte boundary.
 	 *
 	 * Therefore we special case them to make them
 	 * as fast as possible.
diff -urN linux-2.5.63-bk1/arch/sparc/lib/checksum.S linux-2.5.63-bk2/arch/sparc/lib/checksum.S
--- linux-2.5.63-bk1/arch/sparc/lib/checksum.S	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/arch/sparc/lib/checksum.S	Mon Mar 31 12:15:52 2003
@@ -336,7 +336,7 @@
 	bne	cc_dword_align		! yes, we check for short lengths there
 	 andcc	%g1, 0xffffff80, %g0	! can we use unrolled loop?
 3:	be	3f			! nope, less than one loop remains
-	 andcc	%o1, 4, %g0		! dest aligned on 4 or 8 byte boundry?
+	 andcc	%o1, 4, %g0		! dest aligned on 4 or 8 byte boundary?
 	be	ccdbl + 4		! 8 byte aligned, kick ass
 5:	CSUMCOPY_BIGCHUNK(%o0,%o1,%g7,0x00,%o4,%o5,%g2,%g3,%g4,%g5,%o2,%o3)
 	CSUMCOPY_BIGCHUNK(%o0,%o1,%g7,0x20,%o4,%o5,%g2,%g3,%g4,%g5,%o2,%o3)
diff -urN linux-2.5.63-bk1/arch/sparc/mm/srmmu.c linux-2.5.63-bk2/arch/sparc/mm/srmmu.c
--- linux-2.5.63-bk1/arch/sparc/mm/srmmu.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/arch/sparc/mm/srmmu.c	Mon Mar 31 12:15:52 2003
@@ -2120,7 +2120,7 @@
 	srmmu_is_bad();
 }
 
-/* dont laugh, static pagetables */
+/* don't laugh, static pagetables */
 static void srmmu_check_pgt_cache(int low, int high)
 {
 }
diff -urN linux-2.5.63-bk1/arch/sparc/mm/sun4c.c linux-2.5.63-bk2/arch/sparc/mm/sun4c.c
--- linux-2.5.63-bk1/arch/sparc/mm/sun4c.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/arch/sparc/mm/sun4c.c	Mon Mar 31 12:15:52 2003
@@ -533,7 +533,7 @@
 	}
 }
 
-/* Addr is always aligned on a page boundry for us already. */
+/* Addr is always aligned on a page boundary for us already. */
 static void sun4c_map_dma_area(unsigned long va, u32 addr, int len)
 {
 	unsigned long page, end;
@@ -1042,7 +1042,7 @@
 		get_locked_segment(addr);
 
 	/* We are changing the virtual color of the page(s)
-	 * so we must flush the cache to guarentee consistency.
+	 * so we must flush the cache to guarantee consistency.
 	 */
 	sun4c_flush_page(pages);
 #ifndef CONFIG_SUN4	
diff -urN linux-2.5.63-bk1/arch/sparc64/kernel/init_task.c linux-2.5.63-bk2/arch/sparc64/kernel/init_task.c
--- linux-2.5.63-bk1/arch/sparc64/kernel/init_task.c	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/arch/sparc64/kernel/init_task.c	Mon Mar 31 12:15:52 2003
@@ -12,7 +12,7 @@
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 
-/* .text section in head.S is aligned at 2 page boundry and this gets linked
+/* .text section in head.S is aligned at 2 page boundary and this gets linked
  * right after that so that the init_thread_union is aligned properly as well.
  * We really don't need this special alignment like the Intel does, but
  * I do it anyways for completeness.
diff -urN linux-2.5.63-bk1/arch/sparc64/kernel/ioctl32.c linux-2.5.63-bk2/arch/sparc64/kernel/ioctl32.c
--- linux-2.5.63-bk1/arch/sparc64/kernel/ioctl32.c	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/arch/sparc64/kernel/ioctl32.c	Mon Mar 31 12:15:52 2003
@@ -3947,7 +3947,7 @@
  *
  *	But how to keep track of these kernel buffers?  We'd need to either
  *	keep track of them in some table _or_ know about usbdevicefs internals
- *	(ie. the exact layout of it's file private, which is actually defined
+ *	(ie. the exact layout of its file private, which is actually defined
  *	in linux/usbdevice_fs.h, the layout of the async queues are private to
  *	devio.c)
  *
diff -urN linux-2.5.63-bk1/arch/sparc64/kernel/iommu_common.h linux-2.5.63-bk2/arch/sparc64/kernel/iommu_common.h
--- linux-2.5.63-bk1/arch/sparc64/kernel/iommu_common.h	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/arch/sparc64/kernel/iommu_common.h	Mon Mar 31 12:15:52 2003
@@ -40,7 +40,7 @@
 
 /* Two addresses are "virtually contiguous" if and only if:
  * 1) They are equal, or...
- * 2) They are both on a page boundry
+ * 2) They are both on a page boundary
  */
 #define VCONTIG(__X, __Y)	(((__X) == (__Y)) || \
 				 (((__X) | (__Y)) << (64UL - PAGE_SHIFT)) == 0UL)
diff -urN linux-2.5.63-bk1/arch/sparc64/kernel/pci_common.c linux-2.5.63-bk2/arch/sparc64/kernel/pci_common.c
--- linux-2.5.63-bk1/arch/sparc64/kernel/pci_common.c	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/arch/sparc64/kernel/pci_common.c	Mon Mar 31 12:15:52 2003
@@ -583,7 +583,7 @@
 	 * the PBM.
 	 *
 	 * However if that parent bridge has interrupt map/mask
-	 * properties of it's own we use the PROM register property
+	 * properties of its own we use the PROM register property
 	 * of the next child device on the path to PDEV.
 	 *
 	 * In detail the two cases are (note that the 'X' below is the
diff -urN linux-2.5.63-bk1/arch/sparc64/kernel/sbus.c linux-2.5.63-bk2/arch/sparc64/kernel/sbus.c
--- linux-2.5.63-bk1/arch/sparc64/kernel/sbus.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/arch/sparc64/kernel/sbus.c	Mon Mar 31 12:15:52 2003
@@ -24,7 +24,7 @@
 #include "iommu_common.h"
 
 /* These should be allocated on an SMP_CACHE_BYTES
- * aligned boundry for optimal performance.
+ * aligned boundary for optimal performance.
  *
  * On SYSIO, using an 8K page size we have 1GB of SBUS
  * DMA space mapped.  We divide this space into equally
diff -urN linux-2.5.63-bk1/arch/sparc64/kernel/time.c linux-2.5.63-bk2/arch/sparc64/kernel/time.c
--- linux-2.5.63-bk1/arch/sparc64/kernel/time.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/arch/sparc64/kernel/time.c	Mon Mar 31 12:15:52 2003
@@ -47,7 +47,7 @@
 
 extern unsigned long wall_jiffies;
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 static unsigned long mstk48t08_regs = 0UL;
 static unsigned long mstk48t59_regs = 0UL;
diff -urN linux-2.5.63-bk1/arch/sparc64/kernel/traps.c linux-2.5.63-bk2/arch/sparc64/kernel/traps.c
--- linux-2.5.63-bk1/arch/sparc64/kernel/traps.c	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/arch/sparc64/kernel/traps.c	Mon Mar 31 12:15:52 2003
@@ -571,7 +571,7 @@
 	unsigned long flush_linesize = ecache_flush_linesize;
 	unsigned long flush_size = ecache_flush_size;
 
-	/* Run through the whole cache to guarentee the timed loop
+	/* Run through the whole cache to guarantee the timed loop
 	 * is really displacing cache lines.
 	 */
 	__asm__ __volatile__("1: subcc	%0, %4, %0\n\t"
diff -urN linux-2.5.63-bk1/arch/sparc64/lib/U3copy_from_user.S linux-2.5.63-bk2/arch/sparc64/lib/U3copy_from_user.S
--- linux-2.5.63-bk1/arch/sparc64/lib/U3copy_from_user.S	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/arch/sparc64/lib/U3copy_from_user.S	Mon Mar 31 12:15:52 2003
@@ -416,7 +416,7 @@
 
 2:	VISEntryHalf					! MS+MS
 
-	/* Compute (len - (len % 8)) into %g2.  This is guarenteed
+	/* Compute (len - (len % 8)) into %g2.  This is guaranteed
 	 * to be nonzero.
 	 */
 	andn		%o2, 0x7, %g2			! A0	Group
@@ -425,7 +425,7 @@
 	 * one 8-byte longword past the end of src.  It actually
 	 * does not, as %g2 is subtracted as loads are done from
 	 * src, so we always stop before running off the end.
-	 * Also, we are guarenteed to have at least 0x10 bytes
+	 * Also, we are guaranteed to have at least 0x10 bytes
 	 * to move here.
 	 */
 	sub		%g2, 0x8, %g2			! A0	Group (reg-dep)
diff -urN linux-2.5.63-bk1/arch/sparc64/lib/U3copy_in_user.S linux-2.5.63-bk2/arch/sparc64/lib/U3copy_in_user.S
--- linux-2.5.63-bk1/arch/sparc64/lib/U3copy_in_user.S	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/arch/sparc64/lib/U3copy_in_user.S	Mon Mar 31 12:15:52 2003
@@ -447,7 +447,7 @@
 
 2:	VISEntryHalf					! MS+MS
 
-	/* Compute (len - (len % 8)) into %g2.  This is guarenteed
+	/* Compute (len - (len % 8)) into %g2.  This is guaranteed
 	 * to be nonzero.
 	 */
 	andn		%o2, 0x7, %g2			! A0	Group
@@ -456,7 +456,7 @@
 	 * one 8-byte longword past the end of src.  It actually
 	 * does not, as %g2 is subtracted as loads are done from
 	 * src, so we always stop before running off the end.
-	 * Also, we are guarenteed to have at least 0x10 bytes
+	 * Also, we are guaranteed to have at least 0x10 bytes
 	 * to move here.
 	 */
 	sub		%g2, 0x8, %g2			! A0	Group (reg-dep)
diff -urN linux-2.5.63-bk1/arch/sparc64/lib/U3copy_to_user.S linux-2.5.63-bk2/arch/sparc64/lib/U3copy_to_user.S
--- linux-2.5.63-bk1/arch/sparc64/lib/U3copy_to_user.S	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/arch/sparc64/lib/U3copy_to_user.S	Mon Mar 31 12:15:52 2003
@@ -463,7 +463,7 @@
 
 2:	VISEntryHalf					! MS+MS
 
-	/* Compute (len - (len % 8)) into %g2.  This is guarenteed
+	/* Compute (len - (len % 8)) into %g2.  This is guaranteed
 	 * to be nonzero.
 	 */
 	andn		%o2, 0x7, %g2			! A0	Group
@@ -472,7 +472,7 @@
 	 * one 8-byte longword past the end of src.  It actually
 	 * does not, as %g2 is subtracted as loads are done from
 	 * src, so we always stop before running off the end.
-	 * Also, we are guarenteed to have at least 0x10 bytes
+	 * Also, we are guaranteed to have at least 0x10 bytes
 	 * to move here.
 	 */
 	sub		%g2, 0x8, %g2			! A0	Group (reg-dep)
diff -urN linux-2.5.63-bk1/arch/sparc64/lib/U3memcpy.S linux-2.5.63-bk2/arch/sparc64/lib/U3memcpy.S
--- linux-2.5.63-bk1/arch/sparc64/lib/U3memcpy.S	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/arch/sparc64/lib/U3memcpy.S	Mon Mar 31 12:15:52 2003
@@ -344,7 +344,7 @@
 
 2:	VISEntryHalf					! MS+MS
 
-	/* Compute (len - (len % 8)) into %g2.  This is guarenteed
+	/* Compute (len - (len % 8)) into %g2.  This is guaranteed
 	 * to be nonzero.
 	 */
 	andn		%o2, 0x7, %g2			! A0	Group
@@ -353,7 +353,7 @@
 	 * one 8-byte longword past the end of src.  It actually
 	 * does not, as %g2 is subtracted as loads are done from
 	 * src, so we always stop before running off the end.
-	 * Also, we are guarenteed to have at least 0x10 bytes
+	 * Also, we are guaranteed to have at least 0x10 bytes
 	 * to move here.
 	 */
 	sub		%g2, 0x8, %g2			! A0	Group (reg-dep)
diff -urN linux-2.5.63-bk1/arch/sparc64/mm/hugetlbpage.c linux-2.5.63-bk2/arch/sparc64/mm/hugetlbpage.c
--- linux-2.5.63-bk1/arch/sparc64/mm/hugetlbpage.c	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/arch/sparc64/mm/hugetlbpage.c	Mon Mar 31 12:15:52 2003
@@ -25,6 +25,7 @@
 extern long htlbpagemem;
 
 static void zap_hugetlb_resources(struct vm_area_struct *);
+void free_huge_page(struct page *page);
 
 #define MAX_ID 	32
 struct htlbpagekey {
@@ -64,6 +65,7 @@
 	spin_unlock(&htlbpage_lock);
 
 	set_page_count(page, 1);
+	page->lru.prev = (void *)free_huge_page;
 	memset(page_address(page), 0, HPAGE_SIZE);
 
 	return page;
diff -urN linux-2.5.63-bk1/arch/sparc64/prom/misc.c linux-2.5.63-bk2/arch/sparc64/prom/misc.c
--- linux-2.5.63-bk1/arch/sparc64/prom/misc.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/arch/sparc64/prom/misc.c	Mon Mar 31 12:15:52 2003
@@ -142,7 +142,7 @@
 	return prom_prev;
 }
 
-/* Install Linux trap table so PROM uses that instead of it's own. */
+/* Install Linux trap table so PROM uses that instead of its own. */
 void prom_set_trap_table(unsigned long tba)
 {
 	p1275_cmd("SUNW,set-trap-table", P1275_INOUT(1, 0), tba);
diff -urN linux-2.5.63-bk1/arch/um/kernel/irq.c linux-2.5.63-bk2/arch/um/kernel/irq.c
--- linux-2.5.63-bk1/arch/um/kernel/irq.c	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/arch/um/kernel/irq.c	Mon Mar 31 12:15:52 2003
@@ -45,7 +45,7 @@
 {
 /*
  * 'what should we do if we get a hw irq event on an illegal vector'.
- * each architecture has to answer this themselves, it doesnt deserve
+ * each architecture has to answer this themselves, it doesn't deserve
  * a generic callback i think.
  */
 #if CONFIG_X86
diff -urN linux-2.5.63-bk1/arch/v850/kernel/irq.c linux-2.5.63-bk2/arch/v850/kernel/irq.c
--- linux-2.5.63-bk1/arch/v850/kernel/irq.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/arch/v850/kernel/irq.c	Mon Mar 31 12:15:52 2003
@@ -48,7 +48,7 @@
 {
 	/*
 	 * 'what should we do if we get a hw irq event on an illegal vector'.
-	 * each architecture has to answer this themselves, it doesnt deserve
+	 * each architecture has to answer this themselves, it doesn't deserve
 	 * a generic callback i think.
 	 */
 	printk("received IRQ %d with unknown interrupt type\n", irq);
diff -urN linux-2.5.63-bk1/arch/v850/kernel/rte_cb_multi.c linux-2.5.63-bk2/arch/v850/kernel/rte_cb_multi.c
--- linux-2.5.63-bk1/arch/v850/kernel/rte_cb_multi.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/arch/v850/kernel/rte_cb_multi.c	Mon Mar 31 12:15:52 2003
@@ -67,7 +67,7 @@
 
 			if ((word & 0xFC0) == 0x780) {
 				/* A `jr' insn, fix up its offset (and yes, the
-				   wierd half-word swapping is intentional). */
+				   weird half-word swapping is intentional). */
 				unsigned short hi = word & 0xFFFF;
 				unsigned short lo = word >> 16;
 				unsigned long udisp22
diff -urN linux-2.5.63-bk1/arch/v850/kernel/time.c linux-2.5.63-bk2/arch/v850/kernel/time.c
--- linux-2.5.63-bk1/arch/v850/kernel/time.c	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/arch/v850/kernel/time.c	Mon Mar 31 12:15:52 2003
@@ -25,7 +25,7 @@
 
 #include "mach.h"
 
-u64 jiffies_64;
+u64 jiffies_64 = INITIAL_JIFFIES;
 
 #define TICK_SIZE	(tick_nsec / 1000)
 
diff -urN linux-2.5.63-bk1/arch/x86_64/ia32/ia32_ioctl.c linux-2.5.63-bk2/arch/x86_64/ia32/ia32_ioctl.c
--- linux-2.5.63-bk1/arch/x86_64/ia32/ia32_ioctl.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/arch/x86_64/ia32/ia32_ioctl.c	Mon Mar 31 12:15:52 2003
@@ -3196,7 +3196,7 @@
  *
  *	But how to keep track of these kernel buffers?  We'd need to either
  *	keep track of them in some table _or_ know about usbdevicefs internals
- *	(ie. the exact layout of it's file private, which is actually defined
+ *	(ie. the exact layout of its file private, which is actually defined
  *	in linux/usbdevice_fs.h, the layout of the async queues are private to
  *	devio.c)
  *
diff -urN linux-2.5.63-bk1/arch/x86_64/kernel/apic.c linux-2.5.63-bk2/arch/x86_64/kernel/apic.c
--- linux-2.5.63-bk1/arch/x86_64/kernel/apic.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/arch/x86_64/kernel/apic.c	Mon Mar 31 12:15:52 2003
@@ -292,7 +292,7 @@
 		__error_in_apic_c();
 
 	/*
-	 * Double-check wether this APIC is really registered.
+	 * Double-check whether this APIC is really registered.
 	 * This is meaningless in clustered apic mode, so we skip it.
 	 */
 	if (!clustered_apic_mode && 
@@ -948,7 +948,7 @@
 /*
  * Local APIC timer interrupt. This is the most natural way for doing
  * local interrupts, but local timer interrupts can be emulated by
- * broadcast interrupts too. [in case the hw doesnt support APIC timers]
+ * broadcast interrupts too. [in case the hw doesn't support APIC timers]
  *
  * [ if a single-CPU system runs an SMP kernel then we call the local
  *   interrupt as well. Thus we cannot inline the local irq ... ]
diff -urN linux-2.5.63-bk1/arch/x86_64/kernel/e820.c linux-2.5.63-bk2/arch/x86_64/kernel/e820.c
--- linux-2.5.63-bk1/arch/x86_64/kernel/e820.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/arch/x86_64/kernel/e820.c	Mon Mar 31 12:15:52 2003
@@ -204,7 +204,7 @@
 		request_resource(&iomem_resource, res);
 		if (e820.map[i].type == E820_RAM) {
 			/*
-			 *  We dont't know which RAM region contains kernel data,
+			 *  We don't know which RAM region contains kernel data,
 			 *  so we try it repeatedly and let the resource manager
 			 *  test it.
 			 */
diff -urN linux-2.5.63-bk1/arch/x86_64/kernel/io_apic.c linux-2.5.63-bk2/arch/x86_64/kernel/io_apic.c
--- linux-2.5.63-bk1/arch/x86_64/kernel/io_apic.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/arch/x86_64/kernel/io_apic.c	Mon Mar 31 12:15:52 2003
@@ -685,7 +685,7 @@
 	entry.vector = vector;
 
 	/*
-	 * The timer IRQ doesnt have to know that behind the
+	 * The timer IRQ doesn't have to know that behind the
 	 * scene we have a 8259A-master in AEOI mode ...
 	 */
 	irq_desc[0].handler = &ioapic_edge_irq_type;
@@ -1539,7 +1539,7 @@
 	printk(" failed.\n");
 
 	if (nmi_watchdog) {
-		printk(KERN_WARNING "timer doesnt work through the IO-APIC - disabling NMI Watchdog!\n");
+		printk(KERN_WARNING "timer doesn't work through the IO-APIC - disabling NMI Watchdog!\n");
 		nmi_watchdog = 0;
 	}
 
diff -urN linux-2.5.63-bk1/arch/x86_64/kernel/irq.c linux-2.5.63-bk2/arch/x86_64/kernel/irq.c
--- linux-2.5.63-bk1/arch/x86_64/kernel/irq.c	Mon Feb 24 11:05:29 2003
+++ linux-2.5.63-bk2/arch/x86_64/kernel/irq.c	Mon Mar 31 12:15:52 2003
@@ -87,7 +87,7 @@
 {
 /*
  * 'what should we do if we get a hw irq event on an illegal vector'.
- * each architecture has to answer this themselves, it doesnt deserve
+ * each architecture has to answer this themselves, it doesn't deserve
  * a generic callback i think.
  */
 #if CONFIG_X86
diff -urN linux-2.5.63-bk1/arch/x86_64/kernel/nmi.c linux-2.5.63-bk2/arch/x86_64/kernel/nmi.c
--- linux-2.5.63-bk1/arch/x86_64/kernel/nmi.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/arch/x86_64/kernel/nmi.c	Mon Mar 31 12:15:52 2003
@@ -228,7 +228,7 @@
  * as these watchdog NMI IRQs are generated on every CPU, we only
  * have to check the current processor.
  *
- * since NMIs dont listen to _any_ locks, we have to be extremely
+ * since NMIs don't listen to _any_ locks, we have to be extremely
  * careful not to rely on unsafe variables. The printk might lock
  * up though, so we have to break up any console locks first ...
  * [when there will be more tty-related locks, break them up
diff -urN linux-2.5.63-bk1/arch/x86_64/kernel/pci-gart.c linux-2.5.63-bk2/arch/x86_64/kernel/pci-gart.c
--- linux-2.5.63-bk1/arch/x86_64/kernel/pci-gart.c	Mon Feb 24 11:05:29 2003
+++ linux-2.5.63-bk2/arch/x86_64/kernel/pci-gart.c	Mon Mar 31 12:15:52 2003
@@ -437,6 +437,7 @@
 	}
 	flush_gart(); 
 	
+	global_flush_tlb();
 		
 	printk("PCI-DMA: aperture base @ %x size %u KB\n", aper_base, aper_size>>10); 
 	return 0;
diff -urN linux-2.5.63-bk1/arch/x86_64/kernel/smpboot.c linux-2.5.63-bk2/arch/x86_64/kernel/smpboot.c
--- linux-2.5.63-bk1/arch/x86_64/kernel/smpboot.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/arch/x86_64/kernel/smpboot.c	Mon Mar 31 12:15:52 2003
@@ -104,7 +104,7 @@
 /*
  * TSC synchronization.
  *
- * We first check wether all CPUs have their TSC's synchronized,
+ * We first check whether all CPUs have their TSC's synchronized,
  * then we print a warning if not, and always resync.
  */
 
@@ -774,7 +774,7 @@
 	}
 
 	/*
-	 * If we couldnt find an SMP configuration at boot time,
+	 * If we couldn't find an SMP configuration at boot time,
 	 * get out of here now!
 	 */
 	if (!smp_found_config) {
diff -urN linux-2.5.63-bk1/arch/x86_64/kernel/time.c linux-2.5.63-bk2/arch/x86_64/kernel/time.c
--- linux-2.5.63-bk1/arch/x86_64/kernel/time.c	Mon Feb 24 11:05:37 2003
+++ linux-2.5.63-bk2/arch/x86_64/kernel/time.c	Mon Mar 31 12:15:52 2003
@@ -30,7 +30,7 @@
 #include <asm/apic.h>
 #endif
 
-u64 jiffies_64; 
+u64 jiffies_64;
 
 extern int using_apic_timer;
 
diff -urN linux-2.5.63-bk1/arch/x86_64/mm/ioremap.c linux-2.5.63-bk2/arch/x86_64/mm/ioremap.c
--- linux-2.5.63-bk1/arch/x86_64/mm/ioremap.c	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/arch/x86_64/mm/ioremap.c	Mon Mar 31 12:15:52 2003
@@ -205,6 +205,7 @@
 			iounmap(p); 
 			p = NULL;
 		}
+		global_flush_tlb();
 	} 
 
 	return p;					
@@ -226,6 +227,7 @@
 		change_page_attr(virt_to_page(__va(p->phys_addr)),
 				 p->size >> PAGE_SHIFT,
 				 PAGE_KERNEL); 				 
+		global_flush_tlb();
 	} 
 	kfree(p); 
 }
diff -urN linux-2.5.63-bk1/drivers/acorn/block/fd1772.c linux-2.5.63-bk2/drivers/acorn/block/fd1772.c
--- linux-2.5.63-bk1/drivers/acorn/block/fd1772.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/drivers/acorn/block/fd1772.c	Mon Mar 31 12:15:52 2003
@@ -1081,7 +1081,7 @@
 		MotorOn = 1;
 		START_TIMEOUT();
 		/* we must wait for the IRQ here, because the ST-DMA is
-		 * released immediatly afterwards and the interrupt may be
+		 * released immediately afterwards and the interrupt may be
 		 * delivered to the wrong driver.
 		 */
 	}
diff -urN linux-2.5.63-bk1/drivers/acorn/block/mfmhd.c linux-2.5.63-bk2/drivers/acorn/block/mfmhd.c
--- linux-2.5.63-bk1/drivers/acorn/block/mfmhd.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/drivers/acorn/block/mfmhd.c	Mon Mar 31 12:15:52 2003
@@ -406,7 +406,7 @@
 
 	outw(command, MFM_COMMAND);
 	status = inw(MFM_STATUS);
-	DBG("issue_command: status immediatly after command issue: %02X:\n ", status >> 8);
+	DBG("issue_command: status immediately after command issue: %02X:\n ", status >> 8);
 }
 
 static void wait_for_completion(void)
@@ -451,7 +451,7 @@
 		return;
 	};
 
-	/* OK so what ever happend its not an error, now I reckon we are left between
+	/* OK so what ever happened it's not an error, now I reckon we are left between
 	   a choice of command end or some data which is ready to be collected */
 	/* I think we have to transfer data while the interrupt line is on and its
 	   not any other type of interrupt */
diff -urN linux-2.5.63-bk1/drivers/acorn/net/ether3.c linux-2.5.63-bk2/drivers/acorn/net/ether3.c
--- linux-2.5.63-bk1/drivers/acorn/net/ether3.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/acorn/net/ether3.c	Mon Mar 31 12:15:52 2003
@@ -101,7 +101,7 @@
 
 /*
  * ether3 read/write.  Slow things down a bit...
- * The SEEQ8005 doesn't like us writing to it's registers
+ * The SEEQ8005 doesn't like us writing to its registers
  * too quickly.
  */
 static inline void ether3_outb(int v, const int r)
diff -urN linux-2.5.63-bk1/drivers/acpi/dispatcher/dsobject.c linux-2.5.63-bk2/drivers/acpi/dispatcher/dsobject.c
--- linux-2.5.63-bk1/drivers/acpi/dispatcher/dsobject.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/drivers/acpi/dispatcher/dsobject.c	Mon Mar 31 12:15:52 2003
@@ -396,7 +396,7 @@
 		return_ACPI_STATUS (status);
 	}
 
-	/* Re-type the object according to it's argument */
+	/* Re-type the object according to its argument */
 
 	node->type = ACPI_GET_OBJECT_TYPE (obj_desc);
 
diff -urN linux-2.5.63-bk1/drivers/acpi/hardware/hwtimer.c linux-2.5.63-bk2/drivers/acpi/hardware/hwtimer.c
--- linux-2.5.63-bk1/drivers/acpi/hardware/hwtimer.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/drivers/acpi/hardware/hwtimer.c	Mon Mar 31 12:15:52 2003
@@ -133,7 +133,7 @@
  *              transitions (unlike many CPU timestamp counters) -- making it
  *              a versatile and accurate timer.
  *
- *              Note that this function accomodates only a single timer
+ *              Note that this function accommodates only a single timer
  *              rollover.  Thus for 24-bit timers, this function should only
  *              be used for calculating durations less than ~4.6 seconds
  *              (~20 minutes for 32-bit timers) -- calculations below
diff -urN linux-2.5.63-bk1/drivers/acpi/resources/rsmemory.c linux-2.5.63-bk2/drivers/acpi/resources/rsmemory.c
--- linux-2.5.63-bk1/drivers/acpi/resources/rsmemory.c	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/drivers/acpi/resources/rsmemory.c	Mon Mar 31 12:15:52 2003
@@ -278,7 +278,7 @@
 	/*
 	 *  Point to the place in the output buffer where the data portion will
 	 *  begin.
-	 *  1. Set the RESOURCE_DATA * Data to point to it's own address, then
+	 *  1. Set the RESOURCE_DATA * Data to point to its own address, then
 	 *  2. Set the pointer to the next address.
 	 *
 	 *  NOTE: output_struct->Data is cast to u8, otherwise, this addition adds
diff -urN linux-2.5.63-bk1/drivers/atm/firestream.c linux-2.5.63-bk2/drivers/atm/firestream.c
--- linux-2.5.63-bk1/drivers/atm/firestream.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/drivers/atm/firestream.c	Mon Mar 31 12:15:52 2003
@@ -105,7 +105,7 @@
    The FS50 CAM (VP/VC match registers) always take the lowest channel
    number that matches. This is not a problem.
 
-   However, they also ignore wether the channel is enabled or
+   However, they also ignore whether the channel is enabled or
    not. This means that if you allocate channel 0 to 1.2 and then
    channel 1 to 0.0, then disabeling channel 0 and writing 0 to the
    match channel for channel 0 will "steal" the traffic from channel
diff -urN linux-2.5.63-bk1/drivers/atm/horizon.c linux-2.5.63-bk2/drivers/atm/horizon.c
--- linux-2.5.63-bk1/drivers/atm/horizon.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/drivers/atm/horizon.c	Mon Mar 31 12:15:52 2003
@@ -2874,11 +2874,7 @@
 	// writes to adapter memory (handles IRQ and SMP)
 	spin_lock_init (&dev->mem_lock);
 	
-#if LINUX_VERSION_CODE >= 0x20303
 	init_waitqueue_head (&dev->tx_queue);
-#else
-	dev->tx_queue = 0;
-#endif
 	
 	// vpi in 0..4, vci in 6..10
 	dev->atm_dev->ci_range.vpi_bits = vpi_bits;
diff -urN linux-2.5.63-bk1/drivers/atm/horizon.h linux-2.5.63-bk2/drivers/atm/horizon.h
--- linux-2.5.63-bk1/drivers/atm/horizon.h	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/drivers/atm/horizon.h	Mon Mar 31 12:15:52 2003
@@ -422,11 +422,7 @@
   unsigned int        tx_regions; // number of remaining regions
 
   spinlock_t          mem_lock;
-#if LINUX_VERSION_CODE >= 0x20303
   wait_queue_head_t   tx_queue;
-#else
-  struct wait_queue * tx_queue;
-#endif
 
   u8                  irq;
   long		      flags;
diff -urN linux-2.5.63-bk1/drivers/atm/iphase.c linux-2.5.63-bk2/drivers/atm/iphase.c
--- linux-2.5.63-bk1/drivers/atm/iphase.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/atm/iphase.c	Mon Mar 31 12:15:52 2003
@@ -436,7 +436,7 @@
        if (crm == 0) crm = 1;
        f_abr_vc->f_crm = crm & 0xff;
        f_abr_vc->f_pcr = cellrate_to_float(srv_p->pcr);
-       icr = MIN( srv_p->icr, (srv_p->tbe > srv_p->frtt) ?
+       icr = min( srv_p->icr, (srv_p->tbe > srv_p->frtt) ?
 				((srv_p->tbe/srv_p->frtt)*1000000) :
 				(1000000/(srv_p->frtt/srv_p->tbe)));
        f_abr_vc->f_icr = cellrate_to_float(icr);
diff -urN linux-2.5.63-bk1/drivers/atm/iphase.h linux-2.5.63-bk2/drivers/atm/iphase.h
--- linux-2.5.63-bk1/drivers/atm/iphase.h	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/drivers/atm/iphase.h	Mon Mar 31 12:15:52 2003
@@ -808,7 +808,6 @@
 } r_vc_abr_entry;   
 
 #define MRM 3
-#define MIN(x,y)	((x) < (y)) ? (x) : (y)
 
 typedef struct srv_cls_param {
         u32 class_type;         /* CBR/VBR/ABR/UBR; use the enum above */
@@ -1017,13 +1016,8 @@
         spinlock_t            tx_lock;
         IARTN_Q               tx_return_q;
         u32                   close_pending;
-#if LINUX_VERSION_CODE >= 0x20303
         wait_queue_head_t    close_wait;
         wait_queue_head_t    timeout_wait;
-#else
-        struct wait_queue     *close_wait;
-        struct wait_queue     *timeout_wait;
-#endif
 	struct cpcs_trailer_desc *tx_buf;
         u16 num_tx_desc, tx_buf_sz, rate_limit;
         u32 tx_cell_cnt, tx_pkt_cnt;
diff -urN linux-2.5.63-bk1/drivers/atm/lanai.c linux-2.5.63-bk2/drivers/atm/lanai.c
--- linux-2.5.63-bk1/drivers/atm/lanai.c	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/drivers/atm/lanai.c	Mon Mar 31 12:15:52 2003
@@ -1300,7 +1300,7 @@
 #define DESCRIPTOR_AAL5_STREAM	(0x00004000)
 #define DESCRIPTOR_CLP		(0x00002000)
 
-/* Add 32-bit descriptor with it's padding */
+/* Add 32-bit descriptor with its padding */
 static inline void vcc_tx_add_aal5_descriptor(struct lanai_vcc *lvcc,
 	u32 flags, int len)
 {
diff -urN linux-2.5.63-bk1/drivers/base/bus.c linux-2.5.63-bk2/drivers/base/bus.c
--- linux-2.5.63-bk1/drivers/base/bus.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/drivers/base/bus.c	Mon Mar 31 12:15:52 2003
@@ -459,7 +459,7 @@
  *	@drv:	driver.
  *
  *	Detach the driver from the devices it controls, and remove
- *	it from it's bus's list of drivers. Finally, we drop the reference
+ *	it from its bus's list of drivers. Finally, we drop the reference
  *	to the bus we took in bus_add_driver().
  */
 
diff -urN linux-2.5.63-bk1/drivers/block/cciss.c linux-2.5.63-bk2/drivers/block/cciss.c
--- linux-2.5.63-bk1/drivers/block/cciss.c	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/drivers/block/cciss.c	Mon Mar 31 12:15:52 2003
@@ -351,7 +351,7 @@
 	if (ctlr >= MAX_CTLR || hba[ctlr] == NULL)
 		return -ENXIO;
 	/*
-	 * Root is allowed to open raw volume zero even if its not configured
+	 * Root is allowed to open raw volume zero even if it's not configured
 	 * so array config can still work.  I don't think I really like this,
 	 * but I'm already using way to many device nodes to claim another one
 	 * for "raw controller".
diff -urN linux-2.5.63-bk1/drivers/block/cciss_scsi.c linux-2.5.63-bk2/drivers/block/cciss_scsi.c
--- linux-2.5.63-bk1/drivers/block/cciss_scsi.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/drivers/block/cciss_scsi.c	Mon Mar 31 12:15:52 2003
@@ -210,7 +210,7 @@
 	stk = &sa->cmd_stack; 
 	size = sizeof(struct cciss_scsi_cmd_stack_elem_t) * CMD_STACK_SIZE;
 
-	// pci_alloc_consistent guarentees 32-bit DMA address will
+	// pci_alloc_consistent guarantees 32-bit DMA address will
 	// be used
 
 	stk->pool = (struct cciss_scsi_cmd_stack_elem_t *)
diff -urN linux-2.5.63-bk1/drivers/block/cpqarray.c linux-2.5.63-bk2/drivers/block/cpqarray.c
--- linux-2.5.63-bk1/drivers/block/cpqarray.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/drivers/block/cpqarray.c	Mon Mar 31 12:15:52 2003
@@ -715,7 +715,7 @@
 		return -ENXIO;
 
 	/*
-	 * Root is allowed to open raw volume zero even if its not configured
+	 * Root is allowed to open raw volume zero even if it's not configured
 	 * so array config can still work.  I don't think I really like this,
 	 * but I'm already using way to many device nodes to claim another one
 	 * for "raw controller".
diff -urN linux-2.5.63-bk1/drivers/block/genhd.c linux-2.5.63-bk2/drivers/block/genhd.c
--- linux-2.5.63-bk1/drivers/block/genhd.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/drivers/block/genhd.c	Mon Mar 31 12:15:52 2003
@@ -1,17 +1,5 @@
 /*
- *  Code extracted from
- *  linux/kernel/hd.c
- *
- *  Copyright (C) 1991-1998  Linus Torvalds
- *
- *  devfs support - jj, rgooch, 980122
- *
- *  Moved partition checking code to fs/partitions* - Russell King
- *  (linux@arm.uk.linux.org)
- */
-
-/*
- * TODO:  rip out the remaining init crap from this file  --hch
+ *  gendisk handling
  */
 
 #include <linux/config.h>
@@ -29,8 +17,9 @@
 
 static struct subsystem block_subsys;
 
+#define MAX_PROBE_HASH 23	/* random */
 
-struct blk_probe {
+static struct blk_probe {
 	struct blk_probe *next;
 	dev_t dev;
 	unsigned long range;
@@ -38,21 +27,27 @@
 	struct gendisk *(*get)(dev_t dev, int *part, void *data);
 	int (*lock)(dev_t, void *);
 	void *data;
-} *probes[MAX_BLKDEV];
+} *probes[MAX_PROBE_HASH];
 
-/* index in the above */
+/* index in the above - for now: assume no multimajor ranges */
 static inline int dev_to_index(dev_t dev)
 {
-	return MAJOR(dev);
+	return MAJOR(dev) % MAX_PROBE_HASH;
 }
 
+/*
+ * Register device numbers dev..(dev+range-1)
+ * range must be nonzero
+ * The hash chain is sorted on range, so that subranges can override.
+ */
 void blk_register_region(dev_t dev, unsigned long range, struct module *module,
-		    struct gendisk *(*probe)(dev_t, int *, void *),
-		    int (*lock)(dev_t, void *), void *data)
+			 struct gendisk *(*probe)(dev_t, int *, void *),
+			 int (*lock)(dev_t, void *), void *data)
 {
 	int index = dev_to_index(dev);
 	struct blk_probe *p = kmalloc(sizeof(struct blk_probe), GFP_KERNEL);
 	struct blk_probe **s;
+
 	p->owner = module;
 	p->get = probe;
 	p->lock = lock;
@@ -71,6 +66,7 @@
 {
 	int index = dev_to_index(dev);
 	struct blk_probe **s;
+
 	down_write(&block_subsys.rwsem);
 	for (s = &probes[index]; *s; s = &(*s)->next) {
 		struct blk_probe *p = *s;
@@ -94,6 +90,7 @@
 static int exact_lock(dev_t dev, void *data)
 {
 	struct gendisk *p = data;
+
 	if (!get_disk(p))
 		return -1;
 	return 0;
@@ -109,14 +106,14 @@
 void add_disk(struct gendisk *disk)
 {
 	disk->flags |= GENHD_FL_UP;
-	blk_register_region(MKDEV(disk->major, disk->first_minor), disk->minors,
-			NULL, exact_match, exact_lock, disk);
+	blk_register_region(MKDEV(disk->major, disk->first_minor),
+			    disk->minors, NULL, exact_match, exact_lock, disk);
 	register_disk(disk);
 	elv_register_queue(disk);
 }
 
 EXPORT_SYMBOL(add_disk);
-EXPORT_SYMBOL(del_gendisk);
+EXPORT_SYMBOL(del_gendisk);	/* in partitions/check.c */
 
 void unlink_gendisk(struct gendisk *disk)
 {
@@ -146,18 +143,17 @@
 		struct gendisk *(*probe)(dev_t, int *, void *);
 		struct module *owner;
 		void *data;
-		if (p->dev > dev || p->dev + p->range <= dev)
+
+		if (p->dev > dev || p->dev + p->range - 1 < dev)
 			continue;
-		if (p->range >= best) {
-			up_read(&block_subsys.rwsem);
-			return NULL;
-		}
+		if (p->range - 1 >= best)
+			break;
 		if (!try_module_get(p->owner))
 			continue;
 		owner = p->owner;
 		data = p->data;
 		probe = p->get;
-		best = p->range;
+		best = p->range - 1;
 		*part = dev - p->dev;
 		if (p->lock && p->lock(dev, data) < 0) {
 			module_put(owner);
@@ -169,7 +165,7 @@
 		module_put(owner);
 		if (disk)
 			return disk;
-		goto retry;
+		goto retry;		/* this terminates: best decreases */
 	}
 	up_read(&block_subsys.rwsem);
 	return NULL;
@@ -245,7 +241,7 @@
 
 static struct gendisk *base_probe(dev_t dev, int *part, void *data)
 {
-	char name[20];
+	char name[30];
 	sprintf(name, "block-major-%d", MAJOR(dev));
 	request_module(name);
 	return NULL;
@@ -256,11 +252,11 @@
 	struct blk_probe *base = kmalloc(sizeof(struct blk_probe), GFP_KERNEL);
 	int i;
 	memset(base, 0, sizeof(struct blk_probe));
-	base->dev = MKDEV(1,0);
-	base->range = MKDEV(MAX_BLKDEV-1, 255) - base->dev + 1;
+	base->dev = 1;
+	base->range = ~0;		/* range 1 .. ~0 */
 	base->get = base_probe;
-	for (i = 1; i < MAX_BLKDEV; i++)
-		probes[i] = base;
+	for (i = 0; i < MAX_PROBE_HASH; i++)
+		probes[i] = base;	/* must remain last in chain */
 	blk_dev_init();
 	subsystem_register(&block_subsys);
 	return 0;
@@ -281,12 +277,14 @@
 	ssize_t (*show)(struct gendisk *, char *);
 };
 
-static ssize_t disk_attr_show(struct kobject * kobj, struct attribute * attr,
-			      char * page)
+static ssize_t disk_attr_show(struct kobject *kobj, struct attribute *attr,
+			      char *page)
 {
-	struct gendisk * disk = to_disk(kobj);
-	struct disk_attribute * disk_attr = container_of(attr,struct disk_attribute,attr);
+	struct gendisk *disk = to_disk(kobj);
+	struct disk_attribute *disk_attr =
+		container_of(attr,struct disk_attribute,attr);
 	ssize_t ret = 0;
+
 	if (disk_attr->show)
 		ret = disk_attr->show(disk,page);
 	return ret;
@@ -303,11 +301,11 @@
 }
 static ssize_t disk_range_read(struct gendisk * disk, char *page)
 {
-	return sprintf(page, "%d\n",disk->minors);
+	return sprintf(page, "%d\n", disk->minors);
 }
 static ssize_t disk_size_read(struct gendisk * disk, char *page)
 {
-	return sprintf(page, "%llu\n",(unsigned long long)get_capacity(disk));
+	return sprintf(page, "%llu\n", (unsigned long long)get_capacity(disk));
 }
 
 static inline unsigned jiffies_to_msec(unsigned jif)
diff -urN linux-2.5.63-bk1/drivers/block/ll_rw_blk.c linux-2.5.63-bk2/drivers/block/ll_rw_blk.c
--- linux-2.5.63-bk1/drivers/block/ll_rw_blk.c	Mon Feb 24 11:05:07 2003
+++ linux-2.5.63-bk2/drivers/block/ll_rw_blk.c	Mon Mar 31 12:15:52 2003
@@ -1461,6 +1461,7 @@
 	if (blk_rq_tagged(rq))
 		blk_queue_end_tag(q, rq);
 
+	drive_stat_acct(rq, rq->nr_sectors, 1);
 	__elv_add_request(q, rq, !at_head, 0);
 	q->request_fn(q);
 	spin_unlock_irqrestore(q->queue_lock, flags);
@@ -1892,7 +1893,7 @@
 }
 
 /**
- * generic_make_request: hand a buffer to it's device driver for I/O
+ * generic_make_request: hand a buffer to its device driver for I/O
  * @bio:  The bio describing the location in memory and on the device.
  *
  * generic_make_request() is used to make I/O requests of block
diff -urN linux-2.5.63-bk1/drivers/block/scsi_ioctl.c linux-2.5.63-bk2/drivers/block/scsi_ioctl.c
--- linux-2.5.63-bk1/drivers/block/scsi_ioctl.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/drivers/block/scsi_ioctl.c	Mon Mar 31 12:15:52 2003
@@ -60,6 +60,7 @@
 
 	rq->flags |= REQ_NOMERGE;
 	rq->waiting = &wait;
+        drive_stat_acct(rq, rq->nr_sectors, 1);
 	elv_add_request(q, rq, 1, 1);
 	generic_unplug_device(q);
 	wait_for_completion(&wait);
diff -urN linux-2.5.63-bk1/drivers/char/drm/drm_vm.h linux-2.5.63-bk2/drivers/char/drm/drm_vm.h
--- linux-2.5.63-bk1/drivers/char/drm/drm_vm.h	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/drivers/char/drm/drm_vm.h	Mon Mar 31 12:15:52 2003
@@ -147,7 +147,7 @@
 }
 
 /* Special close routine which deletes map information if we are the last
- * person to close a mapping and its not in the global maplist.
+ * person to close a mapping and it's not in the global maplist.
  */
 
 void DRM(vm_shm_close)(struct vm_area_struct *vma)
diff -urN linux-2.5.63-bk1/drivers/char/epca.c linux-2.5.63-bk2/drivers/char/epca.c
--- linux-2.5.63-bk1/drivers/char/epca.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/char/epca.c	Mon Mar 31 12:15:52 2003
@@ -1865,7 +1865,7 @@
 			case PCXI:
 				board_id = inb((int)bd->port);
 				if ((board_id & 0x1) == 0x1) 
-				{ /* Begin its an XI card */ 
+				{ /* Begin it's an XI card */ 
 
 					/* Is it a 64K board */
 					if ((board_id & 0x30) == 0) 
diff -urN linux-2.5.63-bk1/drivers/char/ftape/lowlevel/ftape-calibr.c linux-2.5.63-bk2/drivers/char/ftape/lowlevel/ftape-calibr.c
--- linux-2.5.63-bk1/drivers/char/ftape/lowlevel/ftape-calibr.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/drivers/char/ftape/lowlevel/ftape-calibr.c	Mon Mar 31 12:15:52 2003
@@ -56,7 +56,7 @@
  * used directly to implement fine-grained timeouts.  However, on
  * Alpha PCs, the 8254 is *not* used to implement the clock tick
  * (which is 1024 Hz, normally) and the 8254 timer runs at some
- * "random" frequency (it seems to run at 18Hz, but its not safe to
+ * "random" frequency (it seems to run at 18Hz, but it's not safe to
  * rely on this value).  Instead, we use the Alpha's "rpcc"
  * instruction to read cycle counts.  As this is a 32 bit counter,
  * it will overflow only once per 30 seconds (on a 200MHz machine),
diff -urN linux-2.5.63-bk1/drivers/char/ftape/lowlevel/ftape_syms.c linux-2.5.63-bk2/drivers/char/ftape/lowlevel/ftape_syms.c
--- linux-2.5.63-bk1/drivers/char/ftape/lowlevel/ftape_syms.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/drivers/char/ftape/lowlevel/ftape_syms.c	Mon Mar 31 12:15:52 2003
@@ -22,7 +22,7 @@
  *
  *      This file contains the symbols that the ftape low level
  *      part of the QIC-40/80/3010/3020 floppy-tape driver "ftape"
- *      exports to it's high level clients
+ *      exports to its high level clients
  */
 
 #include <linux/config.h>
diff -urN linux-2.5.63-bk1/drivers/char/mwave/tp3780i.h linux-2.5.63-bk2/drivers/char/mwave/tp3780i.h
--- linux-2.5.63-bk1/drivers/char/mwave/tp3780i.h	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/drivers/char/mwave/tp3780i.h	Mon Mar 31 12:15:52 2003
@@ -72,7 +72,7 @@
 #define TP_CFG_DisableLBusTimeout 0	/* Enable LBus timeout */
 #define TP_CFG_N_Divisor       32	/* Clock = 39.1608 Mhz */
 #define TP_CFG_M_Multiplier    37	/* " */
-#define TP_CFG_PllBypass        0	/* dont bypass */
+#define TP_CFG_PllBypass        0	/* don't bypass */
 #define TP_CFG_ChipletEnable 0xFFFF	/* Enable all chiplets */
 
 typedef struct {
diff -urN linux-2.5.63-bk1/drivers/char/n_hdlc.c linux-2.5.63-bk2/drivers/char/n_hdlc.c
--- linux-2.5.63-bk1/drivers/char/n_hdlc.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/drivers/char/n_hdlc.c	Mon Mar 31 12:15:52 2003
@@ -833,7 +833,7 @@
 		poll_wait(filp, &tty->read_wait, wait);
 		poll_wait(filp, &tty->write_wait, wait);
 
-		/* set bits for operations that wont block */
+		/* set bits for operations that won't block */
 		if(n_hdlc->rx_buf_list.head)
 			mask |= POLLIN | POLLRDNORM;	/* readable */
 		if (test_bit(TTY_OTHER_CLOSED, &tty->flags))
diff -urN linux-2.5.63-bk1/drivers/char/nvram.c linux-2.5.63-bk2/drivers/char/nvram.c
--- linux-2.5.63-bk1/drivers/char/nvram.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/drivers/char/nvram.c	Mon Mar 31 12:15:52 2003
@@ -606,7 +606,7 @@
 
 #if MACH == COBALT
 
-/* the cobalt CMOS has a wider range of it's checksum */
+/* the cobalt CMOS has a wider range of its checksum */
 static int cobalt_check_checksum(void)
 {
 	int i;
diff -urN linux-2.5.63-bk1/drivers/char/nwflash.c linux-2.5.63-bk2/drivers/char/nwflash.c
--- linux-2.5.63-bk1/drivers/char/nwflash.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/drivers/char/nwflash.c	Mon Mar 31 12:15:52 2003
@@ -215,7 +215,7 @@
 	temp = ((int) (p + count) >> 16) - nBlock + 1;
 
 	/*
-	 * write ends at exactly 64k boundry?
+	 * write ends at exactly 64k boundary?
 	 */
 	if (((int) (p + count) & 0xFFFF) == 0)
 		temp -= 1;
diff -urN linux-2.5.63-bk1/drivers/char/pcmcia/synclink_cs.c linux-2.5.63-bk2/drivers/char/pcmcia/synclink_cs.c
--- linux-2.5.63-bk1/drivers/char/pcmcia/synclink_cs.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/drivers/char/pcmcia/synclink_cs.c	Mon Mar 31 12:15:52 2003
@@ -4505,7 +4505,7 @@
 	if (debug_level >= DEBUG_LEVEL_INFO)
 		printk("mgslpc_sppp_rx_done(%s)\n",info->netname);	
 	if (skb == NULL) {
-		printk(KERN_NOTICE "%s: cant alloc skb, dropping packet\n",
+		printk(KERN_NOTICE "%s: can't alloc skb, dropping packet\n",
 			info->netname);
 		info->netstats.rx_dropped++;
 		return;
diff -urN linux-2.5.63-bk1/drivers/char/rio/parmmap.h linux-2.5.63-bk2/drivers/char/rio/parmmap.h
--- linux-2.5.63-bk1/drivers/char/rio/parmmap.h	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/drivers/char/rio/parmmap.h	Mon Mar 31 12:15:52 2003
@@ -31,7 +31,7 @@
  ----------------------------------------------------------------------------
   Date     By                Description
  ----------------------------------------------------------------------------
-6/4/1991   jonb		     Made changes to accomodate Mips R3230 bus
+6/4/1991   jonb		     Made changes to accommodate Mips R3230 bus
  ***************************************************************************/
 
 #ifndef _parmap_h
diff -urN linux-2.5.63-bk1/drivers/char/rio/rio_linux.c linux-2.5.63-bk2/drivers/char/rio/rio_linux.c
--- linux-2.5.63-bk1/drivers/char/rio/rio_linux.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/drivers/char/rio/rio_linux.c	Mon Mar 31 12:15:52 2003
@@ -464,7 +464,7 @@
        recursive calls will hang the machine in the interrupt routine. 
 
      - hardware twiddling goes before "recursive". Otherwise when we
-       poll the card, and a recursive interrupt happens, we wont
+       poll the card, and a recursive interrupt happens, we won't
        ack the card, so it might keep on interrupting us. (especially
        level sensitive interrupt systems like PCI).
 
diff -urN linux-2.5.63-bk1/drivers/char/rio/rioinit.c linux-2.5.63-bk2/drivers/char/rio/rioinit.c
--- linux-2.5.63-bk1/drivers/char/rio/rioinit.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/drivers/char/rio/rioinit.c	Mon Mar 31 12:15:52 2003
@@ -145,7 +145,7 @@
 	p->RIOHosts[p->RIONumHosts].PaddrP	= info->location;
 
 	/*
-	** Check that we are able to accomodate another host
+	** Check that we are able to accommodate another host
 	*/
 	if ( p->RIONumHosts >= RIO_HOSTS )
 	{
diff -urN linux-2.5.63-bk1/drivers/char/rio/rioroute.c linux-2.5.63-bk2/drivers/char/rio/rioroute.c
--- linux-2.5.63-bk1/drivers/char/rio/rioroute.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/char/rio/rioroute.c	Mon Mar 31 12:15:52 2003
@@ -976,7 +976,7 @@
     /*
     ** We loop for all entries even after finding an entry and
     ** zeroing it because we may have two entries to delete if
-    ** its a 16 port RTA.
+    ** it's a 16 port RTA.
     */
     for (entry = 0; entry < TOTAL_MAP_ENTRIES; entry++)
     {
diff -urN linux-2.5.63-bk1/drivers/char/rio/riotable.c linux-2.5.63-bk2/drivers/char/rio/riotable.c
--- linux-2.5.63-bk1/drivers/char/rio/riotable.c	Mon Feb 24 11:05:45 2003
+++ linux-2.5.63-bk2/drivers/char/rio/riotable.c	Mon Mar 31 12:15:52 2003
@@ -309,7 +309,7 @@
 	}
 
 	/*
-	** wow! if we get here then its a goody!
+	** wow! if we get here then it's a goody!
 	*/
 
 	/*
diff -urN linux-2.5.63-bk1/drivers/char/rio/riotty.c linux-2.5.63-bk2/drivers/char/rio/riotty.c
--- linux-2.5.63-bk1/drivers/char/rio/riotty.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/drivers/char/rio/riotty.c	Mon Mar 31 12:15:52 2003
@@ -737,10 +737,10 @@
 RIOCookMode(struct ttystatics *tp)
 {
 	/*
-	** We cant handle tm.c_mstate != 0 on SCO
-	** We cant handle mapping
-	** We cant handle non-ttwrite line disc.
-	** We cant handle lflag XCASE
+	** We can't handle tm.c_mstate != 0 on SCO
+	** We can't handle mapping
+	** We can't handle non-ttwrite line disc.
+	** We can't handle lflag XCASE
 	** We can handle oflag OPOST & (OCRNL, ONLCR, TAB3)
 	*/
 
diff -urN linux-2.5.63-bk1/drivers/char/rocket_int.h linux-2.5.63-bk2/drivers/char/rocket_int.h
--- linux-2.5.63-bk1/drivers/char/rocket_int.h	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/drivers/char/rocket_int.h	Mon Mar 31 12:15:52 2003
@@ -834,7 +834,7 @@
 
 /***************************************************************************
 Function: sInitChanDefaults
-Purpose:  Initialize a channel structure to it's default state.
+Purpose:  Initialize a channel structure to its default state.
 Call:     sInitChanDefaults(ChP)
           CHANNEL_T *ChP; Ptr to the channel structure
 Comments: This function must be called once for every channel structure
diff -urN linux-2.5.63-bk1/drivers/char/scc.h linux-2.5.63-bk2/drivers/char/scc.h
--- linux-2.5.63-bk1/drivers/char/scc.h	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/drivers/char/scc.h	Mon Mar 31 12:15:52 2003
@@ -428,7 +428,7 @@
  * for that purpose. They assume that a local variable 'port' is
  * declared and pointing to the port's scc_struct entry. The
  * variants with "_NB" appended should be used if no other SCC
- * accesses follow immediatly (within 0.5 usecs). They just skip the
+ * accesses follow immediately (within 0.5 usecs). They just skip the
  * final delay nops.
  * 
  * Please note that accesses to SCC registers should only take place
diff -urN linux-2.5.63-bk1/drivers/char/sx.c linux-2.5.63-bk2/drivers/char/sx.c
--- linux-2.5.63-bk1/drivers/char/sx.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/drivers/char/sx.c	Mon Mar 31 12:15:52 2003
@@ -1216,7 +1216,7 @@
 	     recursive calls will hang the machine in the interrupt routine. 
 
 	   - hardware twiddling goes before "recursive". Otherwise when we
-	     poll the card, and a recursive interrupt happens, we wont
+	     poll the card, and a recursive interrupt happens, we won't
 	     ack the card, so it might keep on interrupting us. (especially
 	     level sensitive interrupt systems like PCI).
 
diff -urN linux-2.5.63-bk1/drivers/char/synclink.c linux-2.5.63-bk2/drivers/char/synclink.c
--- linux-2.5.63-bk1/drivers/char/synclink.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/char/synclink.c	Mon Mar 31 12:15:52 2003
@@ -4260,7 +4260,7 @@
 
 	if ( info->tx_holding_count ) {
 		/* determine if we have enough tx dma buffers
-		 * to accomodate the next tx frame
+		 * to accommodate the next tx frame
 		 */
 		struct tx_holding_buffer *ptx =
 			&info->tx_holding_buffers[info->get_tx_holding_index];
@@ -8103,7 +8103,7 @@
 	if (debug_level >= DEBUG_LEVEL_INFO)
 		printk("mgsl_sppp_rx_done(%s)\n",info->netname);	
 	if (skb == NULL) {
-		printk(KERN_NOTICE "%s: cant alloc skb, dropping packet\n",
+		printk(KERN_NOTICE "%s: can't alloc skb, dropping packet\n",
 			info->netname);
 		info->netstats.rx_dropped++;
 		return;
diff -urN linux-2.5.63-bk1/drivers/char/synclinkmp.c linux-2.5.63-bk2/drivers/char/synclinkmp.c
--- linux-2.5.63-bk1/drivers/char/synclinkmp.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/drivers/char/synclinkmp.c	Mon Mar 31 12:15:52 2003
@@ -1829,7 +1829,7 @@
 	if (debug_level >= DEBUG_LEVEL_INFO)
 		printk("sppp_rx_done(%s)\n",info->netname);
 	if (skb == NULL) {
-		printk(KERN_NOTICE "%s: cant alloc skb, dropping packet\n",
+		printk(KERN_NOTICE "%s: can't alloc skb, dropping packet\n",
 			info->netname);
 		info->netstats.rx_dropped++;
 		return;
diff -urN linux-2.5.63-bk1/drivers/char/vt.c linux-2.5.63-bk2/drivers/char/vt.c
--- linux-2.5.63-bk1/drivers/char/vt.c	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/drivers/char/vt.c	Mon Mar 31 12:15:52 2003
@@ -1882,7 +1882,7 @@
 		buf = con_buf;
 	}
 
-	/* At this point 'buf' is guarenteed to be a kernel buffer
+	/* At this point 'buf' is guaranteed to be a kernel buffer
 	 * and therefore no access to userspace (and therefore sleeping)
 	 * will be needed.  The con_buf_sem serializes all tty based
 	 * console rendering and vcs write/read operations.  We hold
@@ -2872,7 +2872,7 @@
  *  this is done in order to maintain compatibility with the EGA/VGA fonts. It 
  *  is upto the actual low-level console-driver convert data into its favorite
  *  format (maybe we should add a `fontoffset' field to the `display'
- *  structure so we wont have to convert the fontdata all the time.
+ *  structure so we won't have to convert the fontdata all the time.
  *  /Jes
  */
 
diff -urN linux-2.5.63-bk1/drivers/char/watchdog/i810-tco.c linux-2.5.63-bk2/drivers/char/watchdog/i810-tco.c
--- linux-2.5.63-bk1/drivers/char/watchdog/i810-tco.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/drivers/char/watchdog/i810-tco.c	Mon Mar 31 12:15:52 2003
@@ -161,7 +161,7 @@
 }
 
 /*
- * Reload (trigger) the timer. Lock is needed so we dont reload it during
+ * Reload (trigger) the timer. Lock is needed so we don't reload it during
  * a reprogramming event
  */
  
@@ -218,7 +218,7 @@
 
 		tco_expect_close = 0;
 
-		/* scan to see wether or not we got the magic character */
+		/* scan to see whether or not we got the magic character */
 		for (i = 0; i != len; i++) {
 			u8 c;
 			if(get_user(c, data+i))
diff -urN linux-2.5.63-bk1/drivers/i2c/busses/i2c-amd8111.c linux-2.5.63-bk2/drivers/i2c/busses/i2c-amd8111.c
--- linux-2.5.63-bk1/drivers/i2c/busses/i2c-amd8111.c	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/drivers/i2c/busses/i2c-amd8111.c	Mon Mar 31 12:15:52 2003
@@ -8,10 +8,8 @@
  * the Free Software Foundation version 2.
  */
 
-#include <linux/version.h>
 #include <linux/module.h>
 #include <linux/pci.h>
-#include <asm/io.h>
 #include <linux/kernel.h>
 #include <linux/stddef.h>
 #include <linux/sched.h>
@@ -19,6 +17,7 @@
 #include <linux/init.h>
 #include <linux/i2c.h>
 #include <linux/delay.h>
+#include <asm/io.h>
 
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR ("Vojtech Pavlik <vojtech@suse.cz>");
@@ -204,8 +203,6 @@
 			protocol |= AMD_SMB_PRTCL_BYTE_DATA;
 			break;
 
-		case I2C_SMBUS_WORD_DATA_PEC:
-			protocol |= AMD_SMB_PRTCL_PEC;
 		case I2C_SMBUS_WORD_DATA:
 			amd_ec_write(smbus, AMD_SMB_CMD, command);
 			if (read_write == I2C_SMBUS_WRITE) {
@@ -215,8 +212,6 @@
 			protocol |= AMD_SMB_PRTCL_WORD_DATA | pec;
 			break;
 
-		case I2C_SMBUS_BLOCK_DATA_PEC:
-			protocol |= AMD_SMB_PRTCL_PEC;
 		case I2C_SMBUS_BLOCK_DATA:
 			amd_ec_write(smbus, AMD_SMB_CMD, command);
 			if (read_write == I2C_SMBUS_WRITE) {
@@ -238,8 +233,6 @@
 			protocol |= AMD_SMB_PRTCL_I2C_BLOCK_DATA;
 			break;
 
-		case I2C_SMBUS_PROC_CALL_PEC:
-			protocol |= AMD_SMB_PRTCL_PEC;
 		case I2C_SMBUS_PROC_CALL:
 			amd_ec_write(smbus, AMD_SMB_CMD, command);
 			amd_ec_write(smbus, AMD_SMB_DATA, data->word);
@@ -248,8 +241,6 @@
 			read_write = I2C_SMBUS_READ;
 			break;
 
-		case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
-			protocol |= AMD_SMB_PRTCL_PEC;
 		case I2C_SMBUS_BLOCK_PROC_CALL:
 			protocol |= pec;
 			len = min_t(u8, data->block[0], 31);
@@ -261,6 +252,13 @@
 			read_write = I2C_SMBUS_READ;
 			break;
 
+		case I2C_SMBUS_WORD_DATA_PEC:
+		case I2C_SMBUS_BLOCK_DATA_PEC:
+		case I2C_SMBUS_PROC_CALL_PEC:
+		case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
+			printk(KERN_WARNING "i2c-amd8111.c: Unexpected software PEC transaction %d\n.", size);
+			return -1;
+
 		default:
 			printk(KERN_WARNING "i2c-amd8111.c: Unsupported transaction %d\n", size);
 			return -1;
@@ -296,18 +294,14 @@
 			break;
 
 		case I2C_SMBUS_WORD_DATA:
-		case I2C_SMBUS_WORD_DATA_PEC:
 		case I2C_SMBUS_PROC_CALL:
-		case I2C_SMBUS_PROC_CALL_PEC:
 			amd_ec_read(smbus, AMD_SMB_DATA, temp + 0);
 			amd_ec_read(smbus, AMD_SMB_DATA + 1, temp + 1);
 			data->word = (temp[1] << 8) | temp[0];
 			break;
 
 		case I2C_SMBUS_BLOCK_DATA:
-		case I2C_SMBUS_BLOCK_DATA_PEC:
 		case I2C_SMBUS_BLOCK_PROC_CALL:
-		case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
 			amd_ec_read(smbus, AMD_SMB_BCNT, &len);
 			len = min_t(u8, len, 32);
 		case I2C_SMBUS_I2C_BLOCK_DATA:
@@ -320,13 +314,12 @@
 	return 0;
 }
 
+
 u32 amd8111_func(struct i2c_adapter *adapter)
 {
 	return	I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE | I2C_FUNC_SMBUS_BYTE_DATA |
-		I2C_FUNC_SMBUS_WORD_DATA | I2C_FUNC_SMBUS_WORD_DATA_PEC |
-		I2C_FUNC_SMBUS_BLOCK_DATA | I2C_FUNC_SMBUS_BLOCK_DATA_PEC |
-		I2C_FUNC_SMBUS_PROC_CALL | I2C_FUNC_SMBUS_PROC_CALL_PEC |
-		I2C_FUNC_SMBUS_BLOCK_PROC_CALL | I2C_FUNC_SMBUS_BLOCK_PROC_CALL_PEC |
+		I2C_FUNC_SMBUS_WORD_DATA | I2C_FUNC_SMBUS_BLOCK_DATA |
+		I2C_FUNC_SMBUS_PROC_CALL | I2C_FUNC_SMBUS_BLOCK_PROC_CALL |
 		I2C_FUNC_SMBUS_I2C_BLOCK | I2C_FUNC_SMBUS_HWPEC_CALC;
 }
 
@@ -337,78 +330,81 @@
 	.functionality = amd8111_func,
 };
 
+
+static struct pci_device_id amd8111_ids[] __devinitdata = {
+	{ 0x1022, 0x746a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
+	{ 0, }
+};
+
 static int __devinit amd8111_probe(struct pci_dev *dev, const struct pci_device_id *id)
 {
 	struct amd_smbus *smbus;
+	int error = -ENODEV;
 
 	if (~pci_resource_flags(dev, 0) & IORESOURCE_IO)
-		return -1;
+		return -ENODEV;
 
-	if (!(smbus = (void*)kmalloc(sizeof(struct amd_smbus), GFP_KERNEL)))
-		return -1;
+	smbus = kmalloc(sizeof(struct amd_smbus), GFP_KERNEL);
+	if (!smbus)
+		return -ENOMEM;
 	memset(smbus, 0, sizeof(struct amd_smbus));
 
-	pci_set_drvdata(dev, smbus);
 	smbus->dev = dev;
 	smbus->base = pci_resource_start(dev, 0);
 	smbus->size = pci_resource_len(dev, 0);
 
-	if (!request_region(smbus->base, smbus->size, "amd8111 SMBus 2.0")) {
-		kfree(smbus);
-		return -1;
-	}
+	if (!request_region(smbus->base, smbus->size, "amd8111 SMBus 2.0"))
+		goto out_kfree;
 
 	smbus->adapter.owner = THIS_MODULE;
-	sprintf(smbus->adapter.name, "SMBus2 AMD8111 adapter at %04x", smbus->base);
+	sprintf(smbus->adapter.name,
+			"SMBus2 AMD8111 adapter at %04x", smbus->base);
 	smbus->adapter.id = I2C_ALGO_SMBUS | I2C_HW_SMBUS_AMD8111;
 	smbus->adapter.algo = &smbus_algorithm;
 	smbus->adapter.algo_data = smbus;
 
-	if (i2c_add_adapter(&smbus->adapter)) {
-		printk(KERN_WARNING "i2c-amd8111.c: Failed to register adapter.\n");
-		release_region(smbus->base, smbus->size);
-		kfree(smbus);
-		return -1;
-	}
+	error = i2c_add_adapter(&smbus->adapter);
+	if (error)
+		goto out_release_region;
 
 	pci_write_config_dword(smbus->dev, AMD_PCI_MISC, 0);
-
-	printk(KERN_INFO "i2c-amd8111.c: AMD8111 SMBus 2.0 adapter at %#x\n", smbus->base);
+	pci_set_drvdata(dev, smbus);
 	return 0;
+
+ out_release_region:
+	release_region(smbus->base, smbus->size);
+ out_kfree:
+	kfree(smbus);
+	return -1;
 }
 
+
 static void __devexit amd8111_remove(struct pci_dev *dev)
 {
-	struct amd_smbus *smbus = (void*) pci_get_drvdata(dev);
-	if (i2c_del_adapter(&smbus->adapter)) {
-		printk(KERN_WARNING "i2c-amd8111.c: Failed to unregister adapter.\n");
-		return;
-	}
+	struct amd_smbus *smbus = pci_get_drvdata(dev);
+
+	i2c_del_adapter(&smbus->adapter);
 	release_region(smbus->base, smbus->size);
 	kfree(smbus);
 }
 
-static struct pci_device_id amd8111_id_table[] __devinitdata =
-{{ 0x1022, 0x746a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
- { 0 }};
-
-
 static struct pci_driver amd8111_driver = {
-	.name = "amd8111 smbus 2.0",
-	.id_table = amd8111_id_table,
-	.probe = amd8111_probe,
-	.remove = __devexit_p(amd8111_remove),
+	.name		= "amd8111 smbus 2.0",
+	.id_table	= amd8111_ids,
+	.probe		= amd8111_probe,
+	.remove		= __devexit_p(amd8111_remove),
 };
 
-int __init amd8111_init(void)
+static int __init i2c_amd8111_init(void)
 {
 	return pci_module_init(&amd8111_driver);
 }
 
-void __exit amd8111_exit(void)
+
+static void __exit i2c_amd8111_exit(void)
 {
 	pci_unregister_driver(&amd8111_driver);
 }
 
-module_init(amd8111_init);
-module_exit(amd8111_exit);
+module_init(i2c_amd8111_init);
+module_exit(i2c_amd8111_exit);
diff -urN linux-2.5.63-bk1/drivers/i2c/chips/adm1021.c linux-2.5.63-bk2/drivers/i2c/chips/adm1021.c
--- linux-2.5.63-bk1/drivers/i2c/chips/adm1021.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/drivers/i2c/chips/adm1021.c	Mon Mar 31 12:15:52 2003
@@ -311,18 +311,14 @@
 		goto error3;
 
 	/* Register a new directory entry with module sensors */
-	if ((i = i2c_register_entry(new_client,
-					type_name,
-					data->type ==
-					adm1021 ?
-					adm1021_dir_table_template :
-					adm1021_max_dir_table_template,
-					THIS_MODULE)) < 0) {
-		err = i;
+	err = i2c_register_entry(new_client, type_name,
+			(data->type == adm1021) ?
+				adm1021_dir_table_template :
+				adm1021_max_dir_table_template);
+	if (err < 0)
 		goto error4;
-	}
-	data->sysctl_id = i;
 
+	data->sysctl_id = err;
 	/* Initialize the ADM1021 chip */
 	adm1021_init_client(new_client);
 	return 0;
diff -urN linux-2.5.63-bk1/drivers/i2c/chips/lm75.c linux-2.5.63-bk2/drivers/i2c/chips/lm75.c
--- linux-2.5.63-bk1/drivers/i2c/chips/lm75.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/drivers/i2c/chips/lm75.c	Mon Mar 31 12:15:52 2003
@@ -191,9 +191,8 @@
 		goto error3;
 
 	/* Register a new directory entry with module sensors */
-	if ((i = i2c_register_entry(new_client, type_name,
-					lm75_dir_table_template,
-					THIS_MODULE)) < 0) {
+	i = i2c_register_entry(new_client, type_name, lm75_dir_table_template);
+	if (i < 0) {
 		err = i;
 		goto error4;
 	}
diff -urN linux-2.5.63-bk1/drivers/i2c/i2c-core.c linux-2.5.63-bk2/drivers/i2c/i2c-core.c
--- linux-2.5.63-bk1/drivers/i2c/i2c-core.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/drivers/i2c/i2c-core.c	Mon Mar 31 12:15:52 2003
@@ -61,11 +61,9 @@
 
 /**** adapter list */
 static struct i2c_adapter *adapters[I2C_ADAP_MAX];
-static int adap_count;
 
 /**** drivers list */
 static struct i2c_driver *drivers[I2C_DRIVER_MAX];
-static int driver_count;
 
 /**** debug level */
 static int i2c_debug;
@@ -116,7 +114,6 @@
 	}
 
 	adapters[i] = adap;
-	adap_count++;
 	ADAP_UNLOCK();
 	
 	/* init data types */
@@ -161,7 +158,6 @@
 ERROR1:
 	ADAP_LOCK();
 	adapters[i] = NULL;
-	adap_count--;
 ERROR0:
 	ADAP_UNLOCK();
 	return res;
@@ -227,7 +223,6 @@
 #endif /* def CONFIG_PROC_FS */
 
 	adapters[i] = NULL;
-	adap_count--;
 	
 	ADAP_UNLOCK();	
 	DEB(printk(KERN_DEBUG "i2c-core.o: adapter unregistered: %s\n",adap->name));
@@ -265,7 +260,6 @@
 	}
 
 	drivers[i] = driver;
-	driver_count++;
 	
 	DRV_UNLOCK();	/* driver was successfully added */
 	
@@ -361,7 +355,6 @@
 	}
 	ADAP_UNLOCK();
 	drivers[i] = NULL;
-	driver_count--;
 	DRV_UNLOCK();
 	
 	DEB(printk(KERN_DEBUG "i2c-core.o: driver unregistered: %s\n",driver->name));
@@ -465,73 +458,6 @@
 	module_put(client->adapter->owner);
 }
 
-struct i2c_client *i2c_get_client(int driver_id, int adapter_id, 
-					struct i2c_client *prev)
-{
-	int i,j;
-	
-	/* Will iterate through the list of clients in each adapter of adapters-list
-	   in search for a client that matches the search criteria. driver_id or 
-	   adapter_id are ignored if set to 0. If both are ignored this returns 
-	   first client found. */
-	
-	i = j = 0;  
-	
-	/* set starting point */ 
-	if(prev)
-	{
-		if(!(prev->adapter))
-			return (struct i2c_client *) -EINVAL;
-		
-		for(j=0; j < I2C_ADAP_MAX; j++)
-			if(prev->adapter == adapters[j])
-				break;
-		
-		/* invalid starting point? */
-		if (I2C_ADAP_MAX == j) {
-			printk(KERN_WARNING " i2c-core.o: get_client adapter for client:[%s] not found\n",
-				prev->name);
-			return (struct i2c_client *) -ENODEV;
-		}	
-		
-		for(i=0; i < I2C_CLIENT_MAX; i++)
-			if(prev == adapters[j]->clients[i])
-				break;
-		
-		/* invalid starting point? */
-		if (I2C_CLIENT_MAX == i) {
-			printk(KERN_WARNING " i2c-core.o: get_client client:[%s] not found\n",
-				prev->name);
-			return (struct i2c_client *) -ENODEV;
-		}	
-		
-		i++; /* start from one after prev */
-	}
-	
-	for(; j < I2C_ADAP_MAX; j++)
-	{
-		if(!adapters[j])
-			continue;
-			
-		if(adapter_id && (adapters[j]->id != adapter_id))
-			continue;
-		
-		for(; i < I2C_CLIENT_MAX; i++)
-		{
-			if(!adapters[j]->clients[i])
-				continue;
-				
-			if(driver_id && (adapters[j]->clients[i]->driver->id != driver_id))
-				continue;
-			if(adapters[j]->clients[i]->flags & I2C_CLIENT_ALLOW_USE)	
-				return adapters[j]->clients[i];
-		}
-		i = 0;
-	}
-
-	return 0;
-}
-
 int i2c_use_client(struct i2c_client *client)
 {
 	if (!i2c_inc_use_client(client))
@@ -1421,12 +1347,10 @@
 EXPORT_SYMBOL(i2c_del_driver);
 EXPORT_SYMBOL(i2c_attach_client);
 EXPORT_SYMBOL(i2c_detach_client);
-EXPORT_SYMBOL(i2c_get_client);
 EXPORT_SYMBOL(i2c_use_client);
 EXPORT_SYMBOL(i2c_release_client);
 EXPORT_SYMBOL(i2c_check_addr);
 
-
 EXPORT_SYMBOL(i2c_master_send);
 EXPORT_SYMBOL(i2c_master_recv);
 EXPORT_SYMBOL(i2c_control);
diff -urN linux-2.5.63-bk1/drivers/i2c/i2c-dev.c linux-2.5.63-bk2/drivers/i2c/i2c-dev.c
--- linux-2.5.63-bk1/drivers/i2c/i2c-dev.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/drivers/i2c/i2c-dev.c	Mon Mar 31 12:15:52 2003
@@ -77,6 +77,7 @@
 static struct i2c_adapter *i2cdev_adaps[I2CDEV_ADAPS_MAX];
 
 static struct i2c_driver i2cdev_driver = {
+	.owner		= THIS_MODULE,
 	.name		= "i2c-dev dummy driver",
 	.id		= I2C_DRIVERID_I2CDEV,
 	.flags		= I2C_DF_DUMMY,
@@ -340,47 +341,42 @@
 	return 0;
 }
 
-int i2cdev_open (struct inode *inode, struct file *file)
+static int i2cdev_open(struct inode *inode, struct file *file)
 {
 	unsigned int minor = minor(inode->i_rdev);
 	struct i2c_client *client;
 
-	if ((minor >= I2CDEV_ADAPS_MAX) || ! (i2cdev_adaps[minor])) {
-#ifdef DEBUG
-		printk(KERN_DEBUG "i2c-dev.o: Trying to open unattached adapter i2c-%d\n",
-		       minor);
-#endif
+	if ((minor >= I2CDEV_ADAPS_MAX) || !(i2cdev_adaps[minor]))
 		return -ENODEV;
-	}
 
-	/* Note that we here allocate a client for later use, but we will *not*
-	   register this client! Yes, this is safe. No, it is not very clean. */
-	if(! (client = kmalloc(sizeof(struct i2c_client),GFP_KERNEL)))
+	client = kmalloc(sizeof(*client), GFP_KERNEL);
+	if (!client)
 		return -ENOMEM;
-	memcpy(client,&i2cdev_client_template,sizeof(struct i2c_client));
+	memcpy(client, &i2cdev_client_template, sizeof(*client));
+
+	/* registered with adapter, passed as client to user */
 	client->adapter = i2cdev_adaps[minor];
 	file->private_data = client;
 
-	if (!try_module_get(i2cdev_adaps[minor]->owner)) {
-		kfree(client);
-		return -ENODEV;
-	}
+	/* use adapter module, i2c-dev handled with fops */
+	if (!try_module_get(client->adapter->owner))
+		goto out_kfree;
 
-#ifdef DEBUG
-	printk(KERN_DEBUG "i2c-dev.o: opened i2c-%d\n",minor);
-#endif
 	return 0;
+
+ out_kfree:
+	kfree(client);
+	return -ENODEV;
 }
 
-static int i2cdev_release (struct inode *inode, struct file *file)
+static int i2cdev_release(struct inode *inode, struct file *file)
 {
-	unsigned int minor = minor(inode->i_rdev);
-	kfree(file->private_data);
-	file->private_data=NULL;
-#ifdef DEBUG
-	printk(KERN_DEBUG "i2c-dev.o: Closed: i2c-%d\n", minor);
-#endif
-	module_put(i2cdev_adaps[minor]->owner);
+	struct i2c_client *client = file->private_data;
+
+	module_put(client->adapter->owner);
+	kfree(client);
+	file->private_data = NULL;
+
 	return 0;
 }
 
diff -urN linux-2.5.63-bk1/drivers/i2c/i2c-proc.c linux-2.5.63-bk2/drivers/i2c/i2c-proc.c
--- linux-2.5.63-bk1/drivers/i2c/i2c-proc.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/drivers/i2c/i2c-proc.c	Mon Mar 31 12:15:52 2003
@@ -125,17 +125,12 @@
    ctl_template should be a template of the newly created directory. It is
    copied in memory. The extra2 field of each file is set to point to client.
    If any driver wants subdirectories within the newly created directory,
-   this function must be updated! 
-   controlling_mod is the controlling module. It should usually be
-   THIS_MODULE when calling. Note that this symbol is not defined in
-   kernels before 2.3.13; define it to NULL in that case. We will not use it
-   for anything older than 2.3.27 anyway. */
+   this function must be updated!  */
 int i2c_register_entry(struct i2c_client *client, const char *prefix,
-			   ctl_table * ctl_template,
-			   struct module *controlling_mod)
+			   ctl_table * ctl_template)
 {
 	int i, res, len, id;
-	ctl_table *new_table;
+	ctl_table *new_table, *client_tbl, *tbl;
 	char *name;
 	struct ctl_table_header *new_header;
 
@@ -150,26 +145,33 @@
 		kfree(name);
 		return -ENOMEM;
 	}
-	id += 256;
 
+	id += 256;
+	
 	len = 0;
 	while (ctl_template[len].procname)
 		len++;
-	len += 7;
-	if (!(new_table = kmalloc(sizeof(ctl_table) * len, GFP_KERNEL))) {
+	if (!(new_table = kmalloc(sizeof(sysctl_table) + sizeof(ctl_table) * (len + 1), 
+				  GFP_KERNEL))) {
 		kfree(name);
 		return -ENOMEM;
 	}
 
-	memcpy(new_table, sysctl_table, 6 * sizeof(ctl_table));
-	new_table[0].child = &new_table[2];
-	new_table[2].child = &new_table[4];
-	new_table[4].child = &new_table[6];
-	new_table[4].procname = name;
-	new_table[4].ctl_name = id;
-	memcpy(new_table + 6, ctl_template, (len - 6) * sizeof(ctl_table));
-	for (i = 6; i < len; i++)
-		new_table[i].extra2 = client;
+	memcpy(new_table, sysctl_table, sizeof(sysctl_table));
+	tbl = new_table; /* sys/ */
+	tbl = tbl->child = tbl + 2; /* dev/ */
+	tbl = tbl->child = tbl + 2; /* sensors/ */	
+       	client_tbl = tbl->child = tbl + 2; /* XX-chip-YY-ZZ/ */
+
+	client_tbl->procname = name;
+	client_tbl->ctl_name = id;
+	client_tbl->child = client_tbl + 2;
+
+	/* Next the client sysctls. --km */
+	tbl = client_tbl->child;
+	memcpy(tbl, ctl_template, sizeof(ctl_table) * (len+1));
+	for (i = 0; i < len; i++)
+		tbl[i].extra2 = client;
 
 	if (!(new_header = register_sysctl_table(new_table, 0))) {
 		printk(KERN_ERR "i2c-proc.o: error: sysctl interface not supported by kernel!\n");
@@ -178,21 +180,21 @@
 		return -EPERM;
 	}
 
-	i2c_entries[id - 256] = new_header;
+ 	i2c_entries[id - 256] = new_header;
 
 	i2c_clients[id - 256] = client;
+
 #ifdef DEBUG
 	if (!new_header || !new_header->ctl_table ||
 	    !new_header->ctl_table->child ||
 	    !new_header->ctl_table->child->child ||
-	    !new_header->ctl_table->child->child->de) {
+	    !new_header->ctl_table->child->child->de ) {
 		printk
 		    (KERN_ERR "i2c-proc.o: NULL pointer when trying to install fill_inode fix!\n");
 		return id;
 	}
 #endif				/* DEBUG */
-	new_header->ctl_table->child->child->de->owner = controlling_mod;
-
+	client_tbl->de->owner = client->driver->owner;
 	return id;
 }
 
@@ -515,7 +517,7 @@
 	return 0;
 }
 
-int i2c_write_reals(int nrels, void *buffer, size_t *bufsize,
+static int i2c_write_reals(int nrels, void *buffer, size_t *bufsize,
 			 long *results, int magnitude)
 {
 #define BUFLEN 20
diff -urN linux-2.5.63-bk1/drivers/ide/ide-cd.c linux-2.5.63-bk2/drivers/ide/ide-cd.c
--- linux-2.5.63-bk1/drivers/ide/ide-cd.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/drivers/ide/ide-cd.c	Mon Mar 31 12:15:52 2003
@@ -19,7 +19,7 @@
  * ftp://fission.dt.wdc.com/pub/standards/SFF_atapi/spec/SFF8020-r2.6/PS/8020r26.ps
  * ftp://ftp.avc-pioneer.com/Mtfuji4/Spec/Fuji4r10.pdf
  *
- * Drives that deviate from these standards will be accomodated as much
+ * Drives that deviate from these standards will be accommodated as much
  * as possible via compile time or command-line options.  Since I only have
  * a few drives, you generally need to send me patches...
  *
diff -urN linux-2.5.63-bk1/drivers/ide/ide-dma.c linux-2.5.63-bk2/drivers/ide/ide-dma.c
--- linux-2.5.63-bk1/drivers/ide/ide-dma.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/ide/ide-dma.c	Mon Mar 31 12:15:52 2003
@@ -454,7 +454,7 @@
  *	An IDE DMA transfer timed out. In the event of an error we ask
  *	the driver to resolve the problem, if a DMA transfer is still
  *	in progress we continue to wait (arguably we need to add a 
- *	secondary 'I dont care what the drive thinks' timeout here)
+ *	secondary 'I don't care what the drive thinks' timeout here)
  *	Finally if we have an interrupt but for some reason got the
  *	timeout first we complete the I/O. This can occur if an 
  *	interrupt is lost or due to bugs.
diff -urN linux-2.5.63-bk1/drivers/ide/pci/pdc202xx_new.c linux-2.5.63-bk2/drivers/ide/pci/pdc202xx_new.c
--- linux-2.5.63-bk1/drivers/ide/pci/pdc202xx_new.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/drivers/ide/pci/pdc202xx_new.c	Mon Mar 31 12:15:52 2003
@@ -327,7 +327,7 @@
 #endif /* PDC202_DEBUG_CABLE */
 			break;
 		default:
-			/* If its not one we know we should never
+			/* If it's not one we know we should never
 			   arrive here.. */
 			BUG();
 	}
diff -urN linux-2.5.63-bk1/drivers/ide/ppc/mpc8xx.c linux-2.5.63-bk2/drivers/ide/ppc/mpc8xx.c
--- linux-2.5.63-bk1/drivers/ide/ppc/mpc8xx.c	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/drivers/ide/ppc/mpc8xx.c	Mon Mar 31 12:15:52 2003
@@ -331,7 +331,7 @@
 					(0x80000000 >> ioport_dsc[data_port].irq);
 
 #ifdef CONFIG_IDE_8xx_PCCARD
-	/* Make sure we dont get garbage irq */
+	/* Make sure we don't get garbage irq */
 	((immap_t *) IMAP_ADDR)->im_pcmcia.pcmc_pscr = 0xFFFF;
 
 	/* Enable falling edge irq */
diff -urN linux-2.5.63-bk1/drivers/ieee1394/amdtp.c linux-2.5.63-bk2/drivers/ieee1394/amdtp.c
--- linux-2.5.63-bk1/drivers/ieee1394/amdtp.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/drivers/ieee1394/amdtp.c	Mon Mar 31 12:15:52 2003
@@ -228,7 +228,7 @@
 	/* The cycle_count and cycle_offset fields are used for the
 	 * synchronization timestamps (syt) in the cip header.  They
 	 * are incremented by at least a cycle every time we put a
-	 * time stamp in a packet.  As we dont time stamp all
+	 * time stamp in a packet.  As we don't time stamp all
 	 * packages, cycle_count isn't updated in every cycle, and
 	 * sometimes it's incremented by 2.  Thus, we have
 	 * cycle_count2, which is simply incremented by one with each
@@ -748,7 +748,7 @@
 
 		/* This next addition should be modulo 8000 (0x1f40),
 		 * but we only use the lower 4 bits of cycle_count, so
-		 * we dont need the modulo. */
+		 * we don't need the modulo. */
 		atomic_add(s->cycle_offset.integer / 3072, &s->cycle_count);
 		s->cycle_offset.integer %= 3072;
 	}
diff -urN linux-2.5.63-bk1/drivers/ieee1394/eth1394.c linux-2.5.63-bk2/drivers/ieee1394/eth1394.c
--- linux-2.5.63-bk1/drivers/ieee1394/eth1394.c	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/drivers/ieee1394/eth1394.c	Mon Mar 31 12:15:52 2003
@@ -663,7 +663,7 @@
 	 * call to schedule our writes.  */
 
 	/* XXX: Right now we accept that we don't exactly follow RFC. When
-	 * we do, we will send ARP requests via GASP format, and so we wont
+	 * we do, we will send ARP requests via GASP format, and so we won't
 	 * need this hack.  */
 
 	spin_lock_irqsave (&priv->lock, flags);
diff -urN linux-2.5.63-bk1/drivers/ieee1394/ohci1394.c linux-2.5.63-bk2/drivers/ieee1394/ohci1394.c
--- linux-2.5.63-bk1/drivers/ieee1394/ohci1394.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/ieee1394/ohci1394.c	Mon Mar 31 12:15:52 2003
@@ -827,7 +827,7 @@
 		return 0;
 	}
 
-	/* Decide wether we have an iso, a request, or a response packet */
+	/* Decide whether we have an iso, a request, or a response packet */
 	if (packet->type == hpsb_raw)
 		d = &ohci->at_req_context;
 	else if (packet->tcode == TCODE_ISO_DATA) {
@@ -2266,7 +2266,7 @@
 	if (event & OHCI1394_cycleInconsistent) {
 		/* We subscribe to the cycleInconsistent event only to
 		 * clear the corresponding event bit... otherwise,
-		 * isochronous cycleMatch DMA wont work. */
+		 * isochronous cycleMatch DMA won't work. */
 		DBGMSG(ohci->id, "OHCI1394_cycleInconsistent");
 		event &= ~OHCI1394_cycleInconsistent;
 	}
@@ -3530,7 +3530,7 @@
 	tasklet_init(&tasklet->tasklet, func, data);
 	tasklet->type = type;
 	/* We init the tasklet->link field, so we can list_del() it
-	 * without worrying wether it was added to the list or not. */
+	 * without worrying whether it was added to the list or not. */
 	INIT_LIST_HEAD(&tasklet->link);
 }
 
diff -urN linux-2.5.63-bk1/drivers/isdn/eicon/eicon_idi.c linux-2.5.63-bk2/drivers/isdn/eicon/eicon_idi.c
--- linux-2.5.63-bk1/drivers/isdn/eicon/eicon_idi.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/drivers/isdn/eicon/eicon_idi.c	Mon Mar 31 12:15:52 2003
@@ -2717,7 +2717,7 @@
 	int twaitpq = 0;
 
 	if (ack->RcId != ((chan->e.ReqCh) ? chan->e.B2Id : chan->e.D3Id)) {
-		/* I dont know why this happens, should not ! */
+		/* I don't know why this happens, should not ! */
 		/* just ignoring this RC */
 		eicon_log(ccard, 16, "idi_ack: Ch%d: RcId %d not equal to last %d\n", chan->No, 
 			ack->RcId, (chan->e.ReqCh) ? chan->e.B2Id : chan->e.D3Id);
diff -urN linux-2.5.63-bk1/drivers/isdn/eicon/idi.c linux-2.5.63-bk2/drivers/isdn/eicon/idi.c
--- linux-2.5.63-bk1/drivers/isdn/eicon/idi.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/drivers/isdn/eicon/idi.c	Mon Mar 31 12:15:52 2003
@@ -435,7 +435,7 @@
     a->ram_out(a, &ReqOut->ReqId, this->Id);
     a->ram_out(a, &ReqOut->ReqCh, this->ReqCh);
 
-        /* if its a specific request (no ASSIGN) ...                */
+        /* if it's a specific request (no ASSIGN) ...                */
 
     if(this->Id &0x1f) {
 
diff -urN linux-2.5.63-bk1/drivers/isdn/hardware/eicon/dadapter.c linux-2.5.63-bk2/drivers/isdn/hardware/eicon/dadapter.c
--- linux-2.5.63-bk1/drivers/isdn/hardware/eicon/dadapter.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/drivers/isdn/hardware/eicon/dadapter.c	Mon Mar 31 12:15:52 2003
@@ -327,7 +327,7 @@
    Adapter array will be written to memory described by 'buffer'
    If the last adapter seen in the returned adapter array is
    IDI_DADAPTER or if last adapter in array does have type '0', then
-   it was enougth space in buffer to accomodate all available
+   it was enougth space in buffer to accommodate all available
    adapter descriptors
   *NOTE 1 (debug interface):
    The IDI adapter of type 'IDI_DIMAINT' does register as 'request'
diff -urN linux-2.5.63-bk1/drivers/isdn/hardware/eicon/di.c linux-2.5.63-bk2/drivers/isdn/hardware/eicon/di.c
--- linux-2.5.63-bk1/drivers/isdn/hardware/eicon/di.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/drivers/isdn/hardware/eicon/di.c	Mon Mar 31 12:15:52 2003
@@ -169,7 +169,7 @@
     a->ram_outw(a, &ReqOut->XBuffer.length, length);
     a->ram_out(a, &ReqOut->ReqId, this->Id);
     a->ram_out(a, &ReqOut->ReqCh, this->ReqCh);
-        /* if its a specific request (no ASSIGN) ...                */
+        /* if it's a specific request (no ASSIGN) ...                */
     if(this->Id &0x1f) {
         /* if buffers are left in the list of data buffers do       */
         /* do chaining (LL_MDATA, N_MDATA)                          */
@@ -405,7 +405,7 @@
   a->ram_outw(a, &RAM->XBuffer.length, length);
   a->ram_out(a, &RAM->ReqId, this->Id);
   a->ram_out(a, &RAM->ReqCh, this->ReqCh);
-        /* if its a specific request (no ASSIGN) ...                */
+        /* if it's a specific request (no ASSIGN) ...                */
   if(this->Id &0x1f) {
         /* if buffers are left in the list of data buffers do       */
         /* chaining (LL_MDATA, N_MDATA)                             */
diff -urN linux-2.5.63-bk1/drivers/isdn/hardware/eicon/i4l_idi.c linux-2.5.63-bk2/drivers/isdn/hardware/eicon/i4l_idi.c
--- linux-2.5.63-bk1/drivers/isdn/hardware/eicon/i4l_idi.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/drivers/isdn/hardware/eicon/i4l_idi.c	Mon Mar 31 12:15:52 2003
@@ -2717,7 +2717,7 @@
   int twaitpq = 0;
 
 	if (ack->RcId != ((chan->e.ReqCh) ? chan->e.B2Id : chan->e.D3Id)) {
-		/* I dont know why this happens, should not ! */
+		/* I don't know why this happens, should not ! */
 		/* just ignoring this RC */
 		eicon_log(ccard, 16, "idi_ack: Ch%d: RcId %d not equal to last %d\n", chan->No, 
 			ack->RcId, (chan->e.ReqCh) ? chan->e.B2Id : chan->e.D3Id);
diff -urN linux-2.5.63-bk1/drivers/isdn/hardware/eicon/istream.c linux-2.5.63-bk2/drivers/isdn/hardware/eicon/istream.c
--- linux-2.5.63-bk1/drivers/isdn/hardware/eicon/istream.c	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/drivers/isdn/hardware/eicon/istream.c	Mon Mar 31 12:15:52 2003
@@ -142,7 +142,7 @@
   return 0  if zero packet was received
   return -1 if stream is empty
     return -2 if read buffer does not profide sufficient space
-              to accomodate entire segment
+              to accommodate entire segment
   max_length should be at least 68 bytes
   ------------------------------------------------------------------- */
 int diva_istream_read (void* context,
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/asuscom.c linux-2.5.63-bk2/drivers/isdn/hisax/asuscom.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/asuscom.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/asuscom.c	Mon Mar 31 12:15:52 2003
@@ -283,7 +283,7 @@
 						printk(KERN_ERR "AsusPnP: attach failed\n");
 						return 0;
 					}
-					if (pnp_activate_dev(pd, NULL) < 0) {
+					if (pnp_activate_dev(pd) < 0) {
 						printk(KERN_ERR "AsusPnP: activate failed\n");
 						pnp_device_detach(pd);
 						return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/avm_pci.c linux-2.5.63-bk2/drivers/isdn/hisax/avm_pci.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/avm_pci.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/avm_pci.c	Mon Mar 31 12:15:52 2003
@@ -632,7 +632,7 @@
 						printk(KERN_ERR "FritzPnP: attach failed\n");
 						return 0;
 					}
-					if (pnp_activate_dev(pnp_avm, NULL) < 0) {
+					if (pnp_activate_dev(pnp_avm) < 0) {
 						printk(KERN_ERR "FritzPnP: activate failed\n");
 						pnp_device_detach(pnp_avm);
 						return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/diva.c linux-2.5.63-bk2/drivers/isdn/hisax/diva.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/diva.c	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/diva.c	Mon Mar 31 12:15:52 2003
@@ -600,7 +600,7 @@
 							printk(KERN_ERR "Diva PnP: attach failed\n");
 							return 0;
 						}
-						if (pnp_activate_dev(pd, NULL) < 0) {
+						if (pnp_activate_dev(pd) < 0) {
 							printk(KERN_ERR "Diva PnP: activate failed\n");
 							pnp_device_detach(pd);
 							return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/elsa.c linux-2.5.63-bk2/drivers/isdn/hisax/elsa.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/elsa.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/elsa.c	Mon Mar 31 12:15:52 2003
@@ -864,7 +864,7 @@
 							printk(KERN_ERR "Elsa PnP: attach failed\n");
 							return 0;
 						}
-						if (pnp_activate_dev(pd, NULL) < 0) {
+						if (pnp_activate_dev(pd) < 0) {
 							pnp_device_detach(pd);
 							printk(KERN_ERR "Elsa PnP: activate failed\n");
 							return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/hfc_sx.c linux-2.5.63-bk2/drivers/isdn/hisax/hfc_sx.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/hfc_sx.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/hfc_sx.c	Mon Mar 31 12:15:52 2003
@@ -97,7 +97,7 @@
 
 /******************************************/
 /* reset the specified fifo to defaults.  */
-/* If its a send fifo init needed markers */
+/* If it's a send fifo init needed markers */
 /******************************************/
 static void
 reset_fifo(struct IsdnCardState *cs, u8 fifo)
@@ -1200,7 +1200,7 @@
 						printk(KERN_ERR "HFC PnP: attach failed\n");
 						return 0;
 					}
-					if (pnp_activate_dev(pd, NULL) < 0) {
+					if (pnp_activate_dev(pd) < 0) {
 						printk(KERN_ERR "HFC PnP: activate failed\n");
 						pnp_device_detach(pd);
 						return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/hfcscard.c linux-2.5.63-bk2/drivers/isdn/hisax/hfcscard.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/hfcscard.c	Mon Feb 24 11:05:45 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/hfcscard.c	Mon Mar 31 12:15:52 2003
@@ -193,7 +193,7 @@
 						printk(KERN_ERR "HFC PnP: attach failed\n");
 						return 0;
 					}
-					if (pnp_activate_dev(pd, NULL) < 0) {
+					if (pnp_activate_dev(pd) < 0) {
 						printk(KERN_ERR "HFC PnP: activate failed\n");
 						pnp_device_detach(pd);
 						return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/isurf.c linux-2.5.63-bk2/drivers/isdn/hisax/isurf.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/isurf.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/isurf.c	Mon Mar 31 12:15:52 2003
@@ -223,7 +223,7 @@
 					printk(KERN_ERR "ISurfPnP: attach failed\n");
 					return 0;
 				}
-				if (pnp_activate_dev(pd, NULL) < 0) {
+				if (pnp_activate_dev(pd) < 0) {
 					printk(KERN_ERR "ISurfPnP: activate failed\n");
 					pnp_device_detach(pd);
 					return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/ix1_micro.c linux-2.5.63-bk2/drivers/isdn/hisax/ix1_micro.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/ix1_micro.c	Mon Feb 24 11:05:46 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/ix1_micro.c	Mon Mar 31 12:15:52 2003
@@ -208,7 +208,7 @@
 						printk(KERN_ERR "ITK PnP: attach failed\n");
 						return 0;
 					}
-					if (pnp_activate_dev(pd, NULL) < 0) {
+					if (pnp_activate_dev(pd) < 0) {
 						printk(KERN_ERR "ITK PnP: activate failed\n");
 						pnp_device_detach(pd);
 						return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/niccy.c linux-2.5.63-bk2/drivers/isdn/hisax/niccy.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/niccy.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/niccy.c	Mon Mar 31 12:15:52 2003
@@ -232,7 +232,7 @@
 				printk(KERN_ERR "NiccyPnP: attach failed\n");
 				return 0;
 			}
-			if (pnp_activate_dev(pd, NULL) < 0) {
+			if (pnp_activate_dev(pd) < 0) {
 				printk(KERN_ERR "NiccyPnP: activate failed\n");
 				pnp_device_detach(pd);
 				return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/sedlbauer.c linux-2.5.63-bk2/drivers/isdn/hisax/sedlbauer.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/sedlbauer.c	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/sedlbauer.c	Mon Mar 31 12:15:52 2003
@@ -524,7 +524,7 @@
 							printk(KERN_ERR "Sedlbauer PnP: attach failed\n");
 							return 0;
 						}
-						if (pnp_activate_dev(pd, NULL) < 0) {
+						if (pnp_activate_dev(pd) < 0) {
 							printk(KERN_ERR "Sedlbauer PnP: activate failed\n");
 							pnp_device_detach(pd);
 							return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hisax/teles3.c linux-2.5.63-bk2/drivers/isdn/hisax/teles3.c
--- linux-2.5.63-bk1/drivers/isdn/hisax/teles3.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/drivers/isdn/hisax/teles3.c	Mon Mar 31 12:15:52 2003
@@ -227,7 +227,7 @@
 						printk(KERN_ERR "Teles PnP: attach failed\n");
 						return 0;
 					}
-					if (pnp_activate_dev(pnp_dev, NULL) < 0) {
+					if (pnp_activate_dev(pnp_dev) < 0) {
 						printk(KERN_ERR "Teles PnP: activate failed\n");
 						pnp_device_detach(pnp_dev);
 						return 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/hysdn/hycapi.c linux-2.5.63-bk2/drivers/isdn/hysdn/hycapi.c
--- linux-2.5.63-bk1/drivers/isdn/hysdn/hycapi.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/isdn/hysdn/hycapi.c	Mon Mar 31 12:15:52 2003
@@ -702,7 +702,7 @@
 /********************************************************************
 hycapi_capi_create(hysdn_card *card)
 
-Attach the card with it's capi-ctrl.
+Attach the card with its capi-ctrl.
 *********************************************************************/
 
 static void hycapi_fill_profile(hysdn_card *card)
diff -urN linux-2.5.63-bk1/drivers/isdn/hysdn/hysdn_boot.c linux-2.5.63-bk2/drivers/isdn/hysdn/hysdn_boot.c
--- linux-2.5.63-bk1/drivers/isdn/hysdn/hysdn_boot.c	Mon Feb 24 11:05:29 2003
+++ linux-2.5.63-bk2/drivers/isdn/hysdn/hysdn_boot.c	Mon Mar 31 12:15:52 2003
@@ -357,7 +357,7 @@
 		hysdn_addlog(card, "SysReady Token Data invalid CRC");
 		return (1);
 	}
-	len--;			/* dont check CRC byte */
+	len--;			/* don't check CRC byte */
 	while (len > 0) {
 
 		if (*cp == SYSR_TOK_END)
diff -urN linux-2.5.63-bk1/drivers/isdn/i4l/isdn_ppp_ccp.c linux-2.5.63-bk2/drivers/isdn/i4l/isdn_ppp_ccp.c
--- linux-2.5.63-bk1/drivers/isdn/i4l/isdn_ppp_ccp.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/drivers/isdn/i4l/isdn_ppp_ccp.c	Mon Mar 31 12:15:52 2003
@@ -197,7 +197,7 @@
 		   and increase ids only when an Ack is received for a
 		   given id */
 		id = ccp->reset->lastid++;
-		/* We always expect an Ack if the decompressor doesnt
+		/* We always expect an Ack if the decompressor doesn't
 		   know	better */
 		rp->expra = 1;
 		rp->dtval = 0;
diff -urN linux-2.5.63-bk1/drivers/isdn/tpam/tpam_commands.c linux-2.5.63-bk2/drivers/isdn/tpam/tpam_commands.c
--- linux-2.5.63-bk1/drivers/isdn/tpam/tpam_commands.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/drivers/isdn/tpam/tpam_commands.c	Mon Mar 31 12:15:52 2003
@@ -880,7 +880,7 @@
 		memcpy(skb_put(result, len), data, len);
 	}
 
-	/* In loop mode, resend the data immediatly */
+	/* In loop mode, resend the data immediately */
 	if (card->loopmode) {
 		struct sk_buff *loopskb;
 
diff -urN linux-2.5.63-bk1/drivers/md/md.c linux-2.5.63-bk2/drivers/md/md.c
--- linux-2.5.63-bk1/drivers/md/md.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/drivers/md/md.c	Mon Mar 31 12:15:53 2003
@@ -119,7 +119,7 @@
 		.procname	= "dev",
 		.maxlen		= 0,
 		.mode		= 0555,
-		.proc_handler	= raid_dir_table,
+		.child		= raid_dir_table,
 	},
 	{ .ctl_name = 0 }
 };
@@ -1427,7 +1427,7 @@
 			/*
 			 * 'default chunksize' in the old md code used to
 			 * be PAGE_SIZE, baaad.
-			 * we abort here to be on the safe side. We dont
+			 * we abort here to be on the safe side. We don't
 			 * want to continue the bad practice.
 			 */
 			printk(BAD_CHUNKSIZE);
@@ -1731,7 +1731,7 @@
 			mddev_unlock(mddev);
 		}
 		/* on success, candidates will be empty, on error
-		 * it wont...
+		 * it won't...
 		 */
 		ITERATE_RDEV_GENERIC(candidates,rdev,tmp)
 			export_rdev(rdev);
@@ -2290,7 +2290,7 @@
 				}
 				err = set_array_info(mddev, &info);
 				if (err) {
-					printk(KERN_WARNING "md: couldnt set array info. %d\n", err);
+					printk(KERN_WARNING "md: couldn't set array info. %d\n", err);
 					goto abort_unlock;
 				}
 			}
diff -urN linux-2.5.63-bk1/drivers/media/radio/miropcm20-radio.c linux-2.5.63-bk2/drivers/media/radio/miropcm20-radio.c
--- linux-2.5.63-bk1/drivers/media/radio/miropcm20-radio.c	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/drivers/media/radio/miropcm20-radio.c	Mon Mar 31 12:15:53 2003
@@ -15,7 +15,7 @@
  */
 
 /* What ever you think about the ACI, version 0x07 is not very well!
- * I cant get frequency, 'tuner status', 'tuner flags' or mute/mono
+ * I can't get frequency, 'tuner status', 'tuner flags' or mute/mono
  * conditions...                Robert 
  */
 
@@ -93,7 +93,7 @@
 	} else {
 		/* stereo */
 		*flags=VIDEO_TUNER_STEREO_ON;
-		/* I cant see stereo, when forced to mono */
+		/* I can't see stereo, when forced to mono */
 		dev->stereo=1;
 	}
 
diff -urN linux-2.5.63-bk1/drivers/media/radio/miropcm20-rds-core.c linux-2.5.63-bk2/drivers/media/radio/miropcm20-rds-core.c
--- linux-2.5.63-bk1/drivers/media/radio/miropcm20-rds-core.c	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/drivers/media/radio/miropcm20-rds-core.c	Mon Mar 31 12:15:53 2003
@@ -91,7 +91,7 @@
 	}
 }
 
-/* dont use any ..._nowait() function if you are not sure what you do... */
+/* don't use any ..._nowait() function if you are not sure what you do... */
 
 static inline void rds_rawwrite_nowait(unsigned char byte)
 {
diff -urN linux-2.5.63-bk1/drivers/media/radio/radio-sf16fmi.c linux-2.5.63-bk2/drivers/media/radio/radio-sf16fmi.c
--- linux-2.5.63-bk1/drivers/media/radio/radio-sf16fmi.c	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/drivers/media/radio/radio-sf16fmi.c	Mon Mar 31 12:15:53 2003
@@ -262,7 +262,7 @@
 		return -ENODEV;
 	if (pnp_device_attach(dev) < 0)
 		return -EAGAIN;
-	if (pnp_activate_dev(dev, NULL) < 0) {
+	if (pnp_activate_dev(dev) < 0) {
 		printk ("radio-sf16fmi: PnP configure failed (out of resources?)\n");
 		pnp_device_detach(dev);
 		return -ENOMEM;
diff -urN linux-2.5.63-bk1/drivers/media/video/saa7110.c linux-2.5.63-bk2/drivers/media/video/saa7110.c
--- linux-2.5.63-bk1/drivers/media/video/saa7110.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/drivers/media/video/saa7110.c	Mon Mar 31 12:15:53 2003
@@ -33,7 +33,7 @@
 #define DEBUG(x...)			/* remove when no long debugging */
 
 #define SAA7110_MAX_INPUT	9	/* 6 CVBS, 3 SVHS */
-#define SAA7110_MAX_OUTPUT	0	/* its a decoder only */
+#define SAA7110_MAX_OUTPUT	0	/* it's a decoder only */
 
 #define	I2C_SAA7110		0x9C	/* or 0x9E */
 
diff -urN linux-2.5.63-bk1/drivers/media/video/zr36067.c linux-2.5.63-bk2/drivers/media/video/zr36067.c
--- linux-2.5.63-bk1/drivers/media/video/zr36067.c	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/drivers/media/video/zr36067.c	Mon Mar 31 12:15:53 2003
@@ -3629,7 +3629,7 @@
 			       ("%s: ioctl VIDIOCCAPTURE: %d\n", zr->name,
 				v));
 
-			/* If there is nothing to do, return immediatly */
+			/* If there is nothing to do, return immediately */
 
 			if ((v && zr->v4l_overlay_active)
 			    || (!v && !zr->v4l_overlay_active))
@@ -4048,7 +4048,7 @@
 
 			zr->params = bp;
 
-			/* Make changes of input and norm go into effect immediatly */
+			/* Make changes of input and norm go into effect immediately */
 
 			/* We switch overlay off and on since a change in the norm
 			   needs different VFE settings */
diff -urN linux-2.5.63-bk1/drivers/media/video/zr36120_i2c.c linux-2.5.63-bk2/drivers/media/video/zr36120_i2c.c
--- linux-2.5.63-bk1/drivers/media/video/zr36120_i2c.c	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/drivers/media/video/zr36120_i2c.c	Mon Mar 31 12:15:53 2003
@@ -86,7 +86,7 @@
 		if (ztv->tuner_type >= 0)
 		{
 			if (i2c_control_device(&ztv->i2c,I2C_DRIVERID_TUNER,TUNER_SET_TYPE,&ztv->tuner_type)<0)
-			DEBUG(printk(CARD_INFO "attach_inform; tuner wont be set to type %d\n",CARD,ztv->tuner_type));
+			DEBUG(printk(CARD_INFO "attach_inform; tuner won't be set to type %d\n",CARD,ztv->tuner_type));
 		}
 		break;
 	 default:
diff -urN linux-2.5.63-bk1/drivers/message/fusion/mptlan.c linux-2.5.63-bk2/drivers/message/fusion/mptlan.c
--- linux-2.5.63-bk1/drivers/message/fusion/mptlan.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/drivers/message/fusion/mptlan.c	Mon Mar 31 12:15:53 2003
@@ -242,7 +242,7 @@
 			//  would Oops because mf has already been set
 			//  to NULL.  So after return from this func,
 			//  mpt_interrupt() will attempt to put (NULL) mf ptr
-			//  item back onto it's adapter FreeQ - Oops!:-(
+			//  item back onto its adapter FreeQ - Oops!:-(
 			//  It's Ok, since mpt_lan_send_turbo() *currently*
 			//  always returns 0, but..., just in case:
 
diff -urN linux-2.5.63-bk1/drivers/message/fusion/mptscsih.c linux-2.5.63-bk2/drivers/message/fusion/mptscsih.c
--- linux-2.5.63-bk1/drivers/message/fusion/mptscsih.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/message/fusion/mptscsih.c	Mon Mar 31 12:15:53 2003
@@ -4207,7 +4207,7 @@
 	/*
 	 * Need to check ASC here; if it is "special," then
 	 * the ASCQ is variable, and indicates failed component number.
-	 * We must treat the ASCQ as a "dont care" while searching the
+	 * We must treat the ASCQ as a "don't care" while searching the
 	 * mptscsih_ASCQ_Table[] by masking it off, and then restoring it later
 	 * on when we actually need to identify the failed component.
 	 */
diff -urN linux-2.5.63-bk1/drivers/message/i2o/i2o_block.c linux-2.5.63-bk2/drivers/message/i2o/i2o_block.c
--- linux-2.5.63-bk1/drivers/message/i2o/i2o_block.c	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/drivers/message/i2o/i2o_block.c	Mon Mar 31 12:15:53 2003
@@ -798,7 +798,7 @@
 
 		/* 
 		 *	Queue depths probably belong with some kind of 
-		 *	generic IOP commit control. Certainly its not right 
+		 *	generic IOP commit control. Certainly it's not right 
 		 *	its global!  
 		 */
 		if(atomic_read(&i2ob_queues[dev->unit]->queue_depth) >= dev->depth)
@@ -1729,7 +1729,7 @@
 	 *	We may get further callbacks for ourself. The i2o_core
 	 *	code handles this case reasonably sanely. The problem here
 	 *	is we shouldn't get them .. but a couple of cards feel 
-	 *	obliged to tell us stuff we dont care about.
+	 *	obliged to tell us stuff we don't care about.
 	 *
 	 *	This isnt ideal at all but will do for now.
 	 */
diff -urN linux-2.5.63-bk1/drivers/message/i2o/i2o_core.c linux-2.5.63-bk2/drivers/message/i2o/i2o_core.c
--- linux-2.5.63-bk1/drivers/message/i2o/i2o_core.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/message/i2o/i2o_core.c	Mon Mar 31 12:15:53 2003
@@ -340,7 +340,7 @@
 
 /*
  *	Each I2O controller has a chain of devices on it.
- * Each device has a pointer to it's LCT entry to be used
+ * Each device has a pointer to its LCT entry to be used
  * for fun purposes.
  */
 
diff -urN linux-2.5.63-bk1/drivers/mtd/devices/blkmtd.c linux-2.5.63-bk2/drivers/mtd/devices/blkmtd.c
--- linux-2.5.63-bk1/drivers/mtd/devices/blkmtd.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/mtd/devices/blkmtd.c	Mon Mar 31 12:15:53 2003
@@ -16,7 +16,7 @@
  *       thread writes pages out to the device in the background. This
  *       ensures that writes are order even if a page is updated twice.
  *       Also, since pages in the page cache are never marked as dirty,
- *       we dont have to worry about writepage() being called on some 
+ *       we don't have to worry about writepage() being called on some 
  *       random page which may not be in the write order.
  * 
  *       Erases are handled like writes, so the callback is called after
@@ -33,7 +33,7 @@
  *       Page cache usage may still be a bit wrong. Check we are doing
  *       everything properly.
  * 
- *       Somehow allow writes to dirty the page cache so we dont use too
+ *       Somehow allow writes to dirty the page cache so we don't use too
  *       much memory making copies of outgoing pages. Need to handle case
  *       where page x is written to, then page y, then page x again before
  *       any of them have been committed to disk.
@@ -217,7 +217,7 @@
   DEBUG(3, "blkmtd: readpage: getting kiovec\n");
   err = alloc_kiovec(1, &iobuf);
   if (err) {
-    printk("blkmtd: cant allocate kiobuf\n");
+    printk("blkmtd: can't allocate kiobuf\n");
     SetPageError(page);
     return err;
   }
@@ -226,7 +226,7 @@
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,4)
   blocks = kmalloc(KIO_MAX_SECTORS * sizeof(*blocks));
   if(blocks == NULL) {
-    printk("blkmtd: cant allocate iobuf blocks\n");
+    printk("blkmtd: can't allocate iobuf blocks\n");
     free_kiovec(1, &iobuf);
     SetPageError(page);
     return -ENOMEM;
@@ -306,7 +306,7 @@
   daemonize("blkmtdd");
 
   if(alloc_kiovec(1, &iobuf)) {
-    printk("blkmtd: write_queue_task cant allocate kiobuf\n");
+    printk("blkmtd: write_queue_task can't allocate kiobuf\n");
     return 0;
   }
 
@@ -314,7 +314,7 @@
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,4)
   blocks = kmalloc(KIO_MAX_SECTORS * sizeof(unsigned long));
   if(blocks == NULL) {
-    printk("blkmtd: write_queue_task cant allocate iobuf blocks\n");
+    printk("blkmtd: write_queue_task can't allocate iobuf blocks\n");
     free_kiovec(1, &iobuf);
     return 0;
   }
@@ -350,7 +350,7 @@
       int max_sectors = KIO_MAX_SECTORS >> (item->rawdevice->sector_bits - 9);
 
       /* If we are writing to the last page on the device and it doesn't end
-       * on a page boundary, subtract the number of sectors that dont exist.
+       * on a page boundary, subtract the number of sectors that don't exist.
        */
       if(item->rawdevice->partial_last_page && 
 	 (item->pagenr + item->pagecnt -1) == item->rawdevice->partial_last_page) {
@@ -794,7 +794,7 @@
       page = grab_cache_page(&rawdevice->as, pagenr);
       DEBUG(3, "blkmtd: write: got page %d from page cache\n", pagenr);
       if(!page) {
-	printk("blkmtd: write: cant grab cache page %d\n", pagenr);
+	printk("blkmtd: write: can't grab cache page %d\n", pagenr);
 	err = -EIO;
 	goto write_err;
       }
@@ -1090,7 +1090,7 @@
 
   file = filp_open(device, mode, 0);
   if(IS_ERR(file)) {
-    printk("blkmtd: error, cant open device %s\n", device);
+    printk("blkmtd: error, can't open device %s\n", device);
     DEBUG(2, "blkmtd: filp_open returned %ld\n", PTR_ERR(file));
     return 1;
   }
@@ -1144,7 +1144,7 @@
   DEBUG(1, "blkmtd: size = %ld\n", (long int)size);
 
   if(size == 0) {
-    printk("blkmtd: cant determine size\n");
+    printk("blkmtd: can't determine size\n");
     blkdev_put(bdev, BDEV_RAW);
     return 1;
   }
diff -urN linux-2.5.63-bk1/drivers/mtd/devices/pmc551.c linux-2.5.63-bk2/drivers/mtd/devices/pmc551.c
--- linux-2.5.63-bk1/drivers/mtd/devices/pmc551.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/drivers/mtd/devices/pmc551.c	Mon Mar 31 12:15:53 2003
@@ -30,7 +30,7 @@
  *	 
  * Notes:
  *	 Due to what I assume is more buggy SROM, the 64M PMC551 I
- *	 have available claims that all 4 of it's DRAM banks have 64M
+ *	 have available claims that all 4 of its DRAM banks have 64M
  *	 of ram configured (making a grand total of 256M onboard).
  *	 This is slightly annoying since the BAR0 size reflects the
  *	 aperture size, not the dram size, and the V370PDC supplies no
diff -urN linux-2.5.63-bk1/drivers/mtd/maps/ceiva.c linux-2.5.63-bk2/drivers/mtd/maps/ceiva.c
--- linux-2.5.63-bk1/drivers/mtd/maps/ceiva.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/drivers/mtd/maps/ceiva.c	Mon Mar 31 12:15:53 2003
@@ -94,7 +94,7 @@
  *
  * Please note:
  *  1. The flash size given should be the largest flash size that can
- *     be accomodated.
+ *     be accommodated.
  *
  *  2. The bus width must defined in clps_setup_flash.
  *
diff -urN linux-2.5.63-bk1/drivers/mtd/maps/cstm_mips_ixx.c linux-2.5.63-bk2/drivers/mtd/maps/cstm_mips_ixx.c
--- linux-2.5.63-bk1/drivers/mtd/maps/cstm_mips_ixx.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/drivers/mtd/maps/cstm_mips_ixx.c	Mon Mar 31 12:15:53 2003
@@ -5,7 +5,7 @@
  * Config with both CFI and JEDEC device support.
  *
  * Basically physmap.c with the addition of partitions and 
- * an array of mapping info to accomodate more than one flash type per board.
+ * an array of mapping info to accommodate more than one flash type per board.
  *
  * Copyright 2000 MontaVista Software Inc.
  *
diff -urN linux-2.5.63-bk1/drivers/mtd/maps/sa1100-flash.c linux-2.5.63-bk2/drivers/mtd/maps/sa1100-flash.c
--- linux-2.5.63-bk1/drivers/mtd/maps/sa1100-flash.c	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/drivers/mtd/maps/sa1100-flash.c	Mon Mar 31 12:15:53 2003
@@ -96,7 +96,7 @@
  *  1. We no longer support static flash mappings via the machine io_desc
  *     structure.
  *  2. The flash size given should be the largest flash size that can
- *     be accomodated.
+ *     be accommodated.
  *
  * The MTD layer will detect flash chip aliasing and reduce the size of
  * the map accordingly.
diff -urN linux-2.5.63-bk1/drivers/net/3c509.c linux-2.5.63-bk2/drivers/net/3c509.c
--- linux-2.5.63-bk1/drivers/net/3c509.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/3c509.c	Mon Mar 31 12:15:53 2003
@@ -385,7 +385,7 @@
 					    idev))) {
 			if (pnp_device_attach(idev) < 0)
 				continue;
-			if (pnp_activate_dev(idev, NULL) < 0) {
+			if (pnp_activate_dev(idev) < 0) {
 			      __again:
 			      	pnp_device_detach(idev);
 			      	continue;
diff -urN linux-2.5.63-bk1/drivers/net/3c515.c linux-2.5.63-bk2/drivers/net/3c515.c
--- linux-2.5.63-bk1/drivers/net/3c515.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/drivers/net/3c515.c	Mon Mar 31 12:15:53 2003
@@ -469,7 +469,7 @@
 
 			if (pnp_device_attach(idev) < 0)
 				continue;
-			if (pnp_activate_dev(idev, NULL) < 0) {
+			if (pnp_activate_dev(idev) < 0) {
 				printk("pnp activate failed (out of resources?)\n");
 				pnp_device_detach(idev);
 				return -ENOMEM;
diff -urN linux-2.5.63-bk1/drivers/net/8390.c linux-2.5.63-bk2/drivers/net/8390.c
--- linux-2.5.63-bk1/drivers/net/8390.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/8390.c	Mon Mar 31 12:15:53 2003
@@ -277,7 +277,7 @@
 	/* Mask interrupts from the ethercard. 
 	   SMP: We have to grab the lock here otherwise the IRQ handler
 	   on another CPU can flip window and race the IRQ mask set. We end
-	   up trashing the mcast filter not disabling irqs if we dont lock */
+	   up trashing the mcast filter not disabling irqs if we don't lock */
 	   
 	spin_lock_irqsave(&ei_local->page_lock, flags);
 	outb_p(0x00, e8390_base + EN0_IMR);
diff -urN linux-2.5.63-bk1/drivers/net/acenic.c linux-2.5.63-bk2/drivers/net/acenic.c
--- linux-2.5.63-bk1/drivers/net/acenic.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/drivers/net/acenic.c	Mon Mar 31 12:15:53 2003
@@ -1378,7 +1378,7 @@
 	 * On this platform, we know what the best dma settings
 	 * are.  We use 64-byte maximum bursts, because if we
 	 * burst larger than the cache line size (or even cross
-	 * a 64byte boundry in a single burst) the UltraSparc
+	 * a 64byte boundary in a single burst) the UltraSparc
 	 * PCI controller will disconnect at 64-byte multiples.
 	 *
 	 * Read-multiple will be properly enabled above, and when
diff -urN linux-2.5.63-bk1/drivers/net/b44.h linux-2.5.63-bk2/drivers/net/b44.h
--- linux-2.5.63-bk1/drivers/net/b44.h	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/drivers/net/b44.h	Mon Mar 31 12:15:53 2003
@@ -424,7 +424,7 @@
 };
 
 /* There are only 12 bits in the DMA engine for descriptor offsetting
- * so the table must be aligned on a boundry of this.
+ * so the table must be aligned on a boundary of this.
  */
 #define DMA_TABLE_BYTES		4096
 
diff -urN linux-2.5.63-bk1/drivers/net/cs89x0.c linux-2.5.63-bk2/drivers/net/cs89x0.c
--- linux-2.5.63-bk1/drivers/net/cs89x0.c	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/drivers/net/cs89x0.c	Mon Mar 31 12:15:53 2003
@@ -1112,7 +1112,7 @@
 	int i;
 	int ret;
 
-#ifndef CONFIG_SH_HICOSH4 /* uses irq#1, so this wont work */
+#ifndef CONFIG_SH_HICOSH4 /* uses irq#1, so this won't work */
 	if (dev->irq < 2) {
 		/* Allow interrupts to be generated by the chip */
 /* Cirrus' release had this: */
diff -urN linux-2.5.63-bk1/drivers/net/declance.c linux-2.5.63-bk2/drivers/net/declance.c
--- linux-2.5.63-bk1/drivers/net/declance.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/drivers/net/declance.c	Mon Mar 31 12:15:53 2003
@@ -887,7 +887,7 @@
 	cp_to_buf((char *) lp->tx_buf_ptr_cpu[entry], skb->data, skblen);
 
 	/* Clear the slack of the packet, do I need this? */
-	/* For a firewall its a good idea - AC */
+	/* For a firewall it's a good idea - AC */
 /*
    if (len != skblen)
    memset ((char *) &ib->tx_buf [entry][skblen], 0, (len - skblen) << 1);
diff -urN linux-2.5.63-bk1/drivers/net/dgrs.c linux-2.5.63-bk2/drivers/net/dgrs.c
--- linux-2.5.63-bk1/drivers/net/dgrs.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/drivers/net/dgrs.c	Mon Mar 31 12:15:53 2003
@@ -274,7 +274,7 @@
 	ulong	x;
 
 	/*
-	 *	If Space.c says not to use DMA, or if its not a PLX based
+	 *	If Space.c says not to use DMA, or if it's not a PLX based
 	 *	PCI board, or if the expansion ROM space is not PCI
 	 *	configured, then return false.
 	 */
@@ -331,10 +331,10 @@
  *	Initiate DMA using PLX part on PCI board.  Spin the
  *	processor until completed.  All addresses are physical!
  *
- *	If pciaddr is NULL, then its a chaining DMA, and lcladdr is
+ *	If pciaddr is NULL, then it's a chaining DMA, and lcladdr is
  *	the address of the first DMA descriptor in the chain.
  *
- *	If pciaddr is not NULL, then its a single DMA.
+ *	If pciaddr is not NULL, then it's a single DMA.
  *
  *	In either case, "lcladdr" must have been fixed up to make
  *	sure the MSB isn't set using the S2DMA macro before passing
@@ -511,7 +511,7 @@
 	if (priv0->use_dma && priv0->dmadesc_h && len > 64)
 	{
 		/*
-		 *	If we can use DMA and its a long frame, copy it using
+		 *	If we can use DMA and it's a long frame, copy it using
 		 *	DMA chaining.
 		 */
 		DMACHAIN	*ddp_h;	/* Host virtual DMA desc. pointer */
@@ -583,7 +583,7 @@
 	else if (priv0->use_dma)
 	{
 		/*
-		 *	If we can use DMA and its a shorter frame, copy it
+		 *	If we can use DMA and it's a shorter frame, copy it
 		 *	using single DMA transfers.
 		 */
 		uchar		*phys_p;
diff -urN linux-2.5.63-bk1/drivers/net/e100/e100_main.c linux-2.5.63-bk2/drivers/net/e100/e100_main.c
--- linux-2.5.63-bk1/drivers/net/e100/e100_main.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/e100/e100_main.c	Mon Mar 31 12:15:53 2003
@@ -2236,7 +2236,7 @@
 	spin_lock_irqsave(&(bdp->bd_lock), lock_flag);
 	switch (bdp->next_cu_cmd) {
 	case RESUME_NO_WAIT:
-		/*last cu command was a CU_RESMUE if this is a 558 or newer we dont need to
+		/*last cu command was a CU_RESMUE if this is a 558 or newer we don't need to
 		 * wait for command word to clear, we reach here only if we are bachlor
 		 */
 		e100_exec_cmd(bdp, SCB_CUC_RESUME);
diff -urN linux-2.5.63-bk1/drivers/net/eth16i.c linux-2.5.63-bk2/drivers/net/eth16i.c
--- linux-2.5.63-bk1/drivers/net/eth16i.c	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/drivers/net/eth16i.c	Mon Mar 31 12:15:53 2003
@@ -1231,7 +1231,7 @@
 	/* Turn off all interrupts from adapter */
 	outw(ETH16I_INTR_OFF, ioaddr + TX_INTR_REG);
 
-	/* eth16i_tx wont be called */
+	/* eth16i_tx won't be called */
 	spin_lock(&lp->lock);
 
 	status = inw(ioaddr + TX_STATUS_REG);      /* Get the status */
diff -urN linux-2.5.63-bk1/drivers/net/fc/iph5526.c linux-2.5.63-bk2/drivers/net/fc/iph5526.c
--- linux-2.5.63-bk1/drivers/net/fc/iph5526.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/drivers/net/fc/iph5526.c	Mon Mar 31 12:15:53 2003
@@ -499,7 +499,7 @@
 		fi->q.ptr_tachyon_header[i] = fi->q.ptr_tachyon_header_base + 16*i;
 	
 	/* Allocate memory for indices.
-	 * Indices should be aligned on 32 byte boundries. 
+	 * Indices should be aligned on 32 byte boundaries. 
 	 */
 	fi->q.host_ocq_cons_indx = kmalloc(2*32, GFP_KERNEL);
 	if (fi->q.host_ocq_cons_indx == NULL){ 
@@ -748,7 +748,7 @@
 	else
 		if (current_IMQ_index < fi->q.imq_cons_indx)
 			no_of_entries = IMQ_LENGTH - (fi->q.imq_cons_indx - current_IMQ_index);
-	/* We dont want to look at the same IMQ entry again. 
+	/* We don't want to look at the same IMQ entry again. 
 	 */
 	temp_imq_cons_indx = fi->q.imq_cons_indx + 1;
 	if (no_of_entries != 0)
@@ -2263,7 +2263,7 @@
 u_int type  = TYPE_ELS | SEQUENCE_INITIATIVE | FIRST_SEQUENCE;
 u_int my_mtu = fi->g.my_mtu;
 	ENTER("tx_logi");
-	/* We dont want interrupted for our own logi. 
+	/* We don't want interrupted for our own logi. 
 	 * It screws up the port discovery process. 
 	 */
 	if (d_id == fi->g.my_id)
@@ -2567,7 +2567,7 @@
 	}
 	/* Perform Port Discovery after timer expires.
 	 * We are giving time for the ADISCed nodes to respond
-	 * so that we dont have to perform PLOGI to those whose
+	 * so that we don't have to perform PLOGI to those whose
 	 * login are _still_ valid.
 	 */
 	fi->explore_timer.function = port_discovery_timer;
@@ -3527,7 +3527,7 @@
 						/* There might be some new nodes to be 
 						 * discovered. But, some of the earlier 
 						 * requests as a result of the RSCN might be 
-						 * in progress. We dont want to duplicate that 
+						 * in progress. We don't want to duplicate that 
 						 * effort. So letz call SCR after a lag.
 						 */
 						fi->explore_timer.function = scr_timer;
diff -urN linux-2.5.63-bk1/drivers/net/fc/tach_structs.h linux-2.5.63-bk2/drivers/net/fc/tach_structs.h
--- linux-2.5.63-bk1/drivers/net/fc/tach_structs.h	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/drivers/net/fc/tach_structs.h	Mon Mar 31 12:15:53 2003
@@ -248,7 +248,7 @@
 	volatile u_char n_port_try;
 	volatile u_char nport_timer_set;
 	volatile u_char lport_timer_set;
-	/* Hmmm... We dont want to Initialize while closing */
+	/* Hmmm... We don't want to Initialize while closing */
 	u_char dont_init; 
 	u_int my_node_name_high;
 	u_int my_node_name_low;
diff -urN linux-2.5.63-bk1/drivers/net/fec.c linux-2.5.63-bk2/drivers/net/fec.c
--- linux-2.5.63-bk1/drivers/net/fec.c	Mon Feb 24 11:05:07 2003
+++ linux-2.5.63-bk2/drivers/net/fec.c	Mon Mar 31 12:15:53 2003
@@ -828,7 +828,7 @@
 /* 
  * I had some nice ideas of running the MDIO faster...
  * The 971 should support 8MHz and I tried it, but things acted really
- * wierd, so 2.5 MHz ought to be enough for anyone...
+ * weird, so 2.5 MHz ought to be enough for anyone...
  */
 
 static void mii_parse_lxt971_sr2(uint mii_reg, struct net_device *dev)
diff -urN linux-2.5.63-bk1/drivers/net/hp100.c linux-2.5.63-bk2/drivers/net/hp100.c
--- linux-2.5.63-bk1/drivers/net/hp100.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/drivers/net/hp100.c	Mon Mar 31 12:15:53 2003
@@ -2811,7 +2811,7 @@
 			printk("hp100: %s: Problem logging into the HUB.\n", dev->name);
 			if (lp->chip == HP100_CHIPID_LASSEN) {
 				/* Check allowed Register to find out why there is a problem. */
-				val = hp100_inw(TRAIN_ALLOW);	/* wont work on non-ETR card */
+				val = hp100_inw(TRAIN_ALLOW);	/* won't work on non-ETR card */
 #ifdef HP100_DEBUG_TRAINING
 				printk("hp100: %s: MAC Configuration requested: 0x%04x, HUB allowed: 0x%04x\n", dev->name, hp100_inw(TRAIN_REQUEST), val);
 #endif
@@ -2868,7 +2868,7 @@
 			hp100_andb(~HP100_PCI_RESET, PCICTRL2);
 			hp100_orb(HP100_PCI_RESET, PCICTRL2);
 			/* Wait for min. 300 ns */
-			/* we cant use jiffies here, because it may be */
+			/* we can't use jiffies here, because it may be */
 			/* that we have disabled the timer... */
 			udelay(400);
 			hp100_andb(~HP100_PCI_RESET, PCICTRL2);
diff -urN linux-2.5.63-bk1/drivers/net/irda/actisys-sir.c linux-2.5.63-bk2/drivers/net/irda/actisys-sir.c
--- linux-2.5.63-bk1/drivers/net/irda/actisys-sir.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/drivers/net/irda/actisys-sir.c	Mon Mar 31 12:15:53 2003
@@ -207,7 +207,7 @@
  *	o second put the dongle in a know state
  *
  *	The dongle is powered of the RTS and DTR lines. In the dongle, there
- * is a big capacitor to accomodate the current spikes. This capacitor
+ * is a big capacitor to accommodate the current spikes. This capacitor
  * takes a least 50 ms to be charged. In theory, the Bios set those lines
  * up, so by the time we arrive here we should be set. It doesn't hurt
  * to be on the conservative side, so we will wait...
diff -urN linux-2.5.63-bk1/drivers/net/irda/actisys.c linux-2.5.63-bk2/drivers/net/irda/actisys.c
--- linux-2.5.63-bk1/drivers/net/irda/actisys.c	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/drivers/net/irda/actisys.c	Mon Mar 31 12:15:53 2003
@@ -217,7 +217,7 @@
  *	o second put the dongle in a know state
  *
  *	The dongle is powered of the RTS and DTR lines. In the dongle, there
- * is a big capacitor to accomodate the current spikes. This capacitor
+ * is a big capacitor to accommodate the current spikes. This capacitor
  * takes a least 50 ms to be charged. In theory, the Bios set those lines
  * up, so by the time we arrive here we should be set. It doesn't hurt
  * to be on the conservative side, so we will wait...
diff -urN linux-2.5.63-bk1/drivers/net/irda/irda-usb.c linux-2.5.63-bk2/drivers/net/irda/irda-usb.c
--- linux-2.5.63-bk1/drivers/net/irda/irda-usb.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/drivers/net/irda/irda-usb.c	Mon Mar 31 12:15:53 2003
@@ -120,7 +120,7 @@
 /************************ TRANSMIT ROUTINES ************************/
 /*
  * Receive packets from the IrDA stack and send them on the USB pipe.
- * Handle speed change, timeout and lot's of uglyness...
+ * Handle speed change, timeout and lot's of ugliness...
  */
 
 /*------------------------------------------------------------------*/
diff -urN linux-2.5.63-bk1/drivers/net/irda/irtty-sir.c linux-2.5.63-bk2/drivers/net/irda/irtty-sir.c
--- linux-2.5.63-bk1/drivers/net/irda/irtty-sir.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/drivers/net/irda/irtty-sir.c	Mon Mar 31 12:15:53 2003
@@ -532,7 +532,7 @@
 		tty->driver.flush_buffer(tty);
 	
 /* from old irtty - but what is it good for?
- * we _are_ the ldisc and we _dont_ implement flush_buffer!
+ * we _are_ the ldisc and we _don't_ implement flush_buffer!
  *
  *	if (tty->ldisc.flush_buffer)
  *		tty->ldisc.flush_buffer(tty);
diff -urN linux-2.5.63-bk1/drivers/net/irda/sir_dev.c linux-2.5.63-bk2/drivers/net/irda/sir_dev.c
--- linux-2.5.63-bk1/drivers/net/irda/sir_dev.c	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/drivers/net/irda/sir_dev.c	Mon Mar 31 12:15:53 2003
@@ -569,7 +569,7 @@
 
 	/* instead of adding tests to protect against drv->do_write==NULL
 	 * at several places we refuse to create a sir_dev instance for
-	 * drivers which dont implement do_write.
+	 * drivers which don't implement do_write.
 	 */
 	if (!drv ||  !drv->do_write)
 		return NULL;
diff -urN linux-2.5.63-bk1/drivers/net/irda/sir_kthread.c linux-2.5.63-bk2/drivers/net/irda/sir_kthread.c
--- linux-2.5.63-bk1/drivers/net/irda/sir_kthread.c	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/drivers/net/irda/sir_kthread.c	Mon Mar 31 12:15:53 2003
@@ -151,7 +151,7 @@
 
 	while (irda_rq_queue.thread != NULL) {
 
-		set_task_state(current, TASK_UNINTERRUPTIBLE);
+		set_task_state(current, TASK_INTERRUPTIBLE);
 		add_wait_queue(&irda_rq_queue.kick, &wait);
 		if (list_empty(&irda_rq_queue.request_list))
 			schedule();
diff -urN linux-2.5.63-bk1/drivers/net/ne.c linux-2.5.63-bk2/drivers/net/ne.c
--- linux-2.5.63-bk1/drivers/net/ne.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/drivers/net/ne.c	Mon Mar 31 12:15:53 2003
@@ -205,7 +205,7 @@
 			/* Avoid already found cards from previous calls */
 			if (pnp_device_attach(idev) < 0)
 				continue;
-			if (pnp_activate_dev(idev, NULL) < 0) {
+			if (pnp_activate_dev(idev) < 0) {
 			      	pnp_device_detach(idev);
 			      	continue;
 			}
diff -urN linux-2.5.63-bk1/drivers/net/pcmcia/axnet_cs.c linux-2.5.63-bk2/drivers/net/pcmcia/axnet_cs.c
--- linux-2.5.63-bk1/drivers/net/pcmcia/axnet_cs.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/pcmcia/axnet_cs.c	Mon Mar 31 12:15:53 2003
@@ -1226,7 +1226,7 @@
 	/* Mask interrupts from the ethercard. 
 	   SMP: We have to grab the lock here otherwise the IRQ handler
 	   on another CPU can flip window and race the IRQ mask set. We end
-	   up trashing the mcast filter not disabling irqs if we dont lock */
+	   up trashing the mcast filter not disabling irqs if we don't lock */
 	   
 	spin_lock_irqsave(&ei_local->page_lock, flags);
 	outb_p(0x00, e8390_base + EN0_IMR);
diff -urN linux-2.5.63-bk1/drivers/net/pppoe.c linux-2.5.63-bk2/drivers/net/pppoe.c
--- linux-2.5.63-bk1/drivers/net/pppoe.c	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/drivers/net/pppoe.c	Mon Mar 31 12:15:53 2003
@@ -292,7 +292,7 @@
 
 				/* Now restart from the beginning of this
 				 * hash chain.  We always NULL out pppoe_dev
-				 * so we are guarenteed to make forward
+				 * so we are guaranteed to make forward
 				 * progress.
 				 */
 				po = item_hash_table[hash];
diff -urN linux-2.5.63-bk1/drivers/net/sb1000.c linux-2.5.63-bk2/drivers/net/sb1000.c
--- linux-2.5.63-bk1/drivers/net/sb1000.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/drivers/net/sb1000.c	Mon Mar 31 12:15:53 2003
@@ -170,7 +170,7 @@
 		 
 		if (pnp_device_attach(idev) < 0)
 			continue;
-		if (pnp_activate_dev(idev, NULL) < 0) {
+		if (pnp_activate_dev(idev) < 0) {
 		      __again:
 			pnp_device_detach(idev);
 			continue;
diff -urN linux-2.5.63-bk1/drivers/net/sis900.c linux-2.5.63-bk2/drivers/net/sis900.c
--- linux-2.5.63-bk1/drivers/net/sis900.c	Mon Feb 24 11:05:29 2003
+++ linux-2.5.63-bk2/drivers/net/sis900.c	Mon Mar 31 12:15:53 2003
@@ -1971,7 +1971,7 @@
 			status = mdio_read(dev, mii_phy->phy_addr, MII_CONTROL);
                 
 			/* enable auto negotiation and reset the negotioation
-			   (I dont really know what the auto negatiotiation reset
+			   (I don't really know what the auto negatiotiation reset
 			   really means, but it sounds for me right to do one here)*/
 			mdio_write(dev, mii_phy->phy_addr,
 				   MII_CONTROL, status | MII_CNTL_AUTO | MII_CNTL_RST_AUTO);
diff -urN linux-2.5.63-bk1/drivers/net/sk98lin/skvpd.c linux-2.5.63-bk2/drivers/net/sk98lin/skvpd.c
--- linux-2.5.63-bk1/drivers/net/sk98lin/skvpd.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/drivers/net/sk98lin/skvpd.c	Mon Mar 31 12:15:53 2003
@@ -563,7 +563,7 @@
 
 /*
  *	find the Keyword 'key' in the VPD buffer and fills the
- *	parameter sturct 'p' with it's values
+ *	parameter sturct 'p' with its values
  *
  * returns	*p	success
  *		0:	parameter was not found or VPD encoding error
diff -urN linux-2.5.63-bk1/drivers/net/skfp/hwt.c linux-2.5.63-bk2/drivers/net/skfp/hwt.c
--- linux-2.5.63-bk1/drivers/net/skfp/hwt.c	Mon Feb 24 11:05:07 2003
+++ linux-2.5.63-bk2/drivers/net/skfp/hwt.c	Mon Mar 31 12:15:53 2003
@@ -264,7 +264,7 @@
  * para	start		start time
  *	duration	time to wait
  *
- * NOTE: The fuction will return immediatly, if the timer is not 
+ * NOTE: The fuction will return immediately, if the timer is not 
  *	 started
  ************************/
 void hwt_wait_time(smc,start,duration)
diff -urN linux-2.5.63-bk1/drivers/net/slhc.c linux-2.5.63-bk2/drivers/net/slhc.c
--- linux-2.5.63-bk1/drivers/net/slhc.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/drivers/net/slhc.c	Mon Mar 31 12:15:53 2003
@@ -265,7 +265,7 @@
 
 	/*  Bail if the TCP packet isn't `compressible' (i.e., ACK isn't set or
 	 *  some other control bit is set). Also uncompressible if
-	 *  its a runt.
+	 *  it's a runt.
 	 */
 	if(hlen > isize || th->syn || th->fin || th->rst ||
 	    ! (th->ack)){
diff -urN linux-2.5.63-bk1/drivers/net/smc-ultra.c linux-2.5.63-bk2/drivers/net/smc-ultra.c
--- linux-2.5.63-bk1/drivers/net/smc-ultra.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/drivers/net/smc-ultra.c	Mon Mar 31 12:15:53 2003
@@ -293,7 +293,7 @@
                         /* Avoid already found cards from previous calls */
                         if (pnp_device_attach(idev) < 0)
                         	continue;
-                        if (pnp_activate_dev(idev, NULL) < 0) {
+                        if (pnp_activate_dev(idev) < 0) {
                               __again:
                         	pnp_device_detach(idev);
                         	continue;
diff -urN linux-2.5.63-bk1/drivers/net/sungem.c linux-2.5.63-bk2/drivers/net/sungem.c
--- linux-2.5.63-bk1/drivers/net/sungem.c	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/drivers/net/sungem.c	Mon Mar 31 12:15:53 2003
@@ -2991,7 +2991,7 @@
 	gem_begin_auto_negotiation(gp, NULL);
 	spin_unlock_irq(&gp->lock);
 
-	/* It is guarenteed that the returned buffer will be at least
+	/* It is guaranteed that the returned buffer will be at least
 	 * PAGE_SIZE aligned.
 	 */
 	gp->init_block = (struct gem_init_block *)
diff -urN linux-2.5.63-bk1/drivers/net/sungem.h linux-2.5.63-bk2/drivers/net/sungem.h
--- linux-2.5.63-bk1/drivers/net/sungem.h	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/sungem.h	Mon Mar 31 12:15:53 2003
@@ -830,7 +830,7 @@
  * RX Kick register) by the driver it must make sure the buffers are
  * truly ready and that the ownership bits are set properly.
  *
- * Even though GEM modifies the RX descriptors, it guarentees that the
+ * Even though GEM modifies the RX descriptors, it guarantees that the
  * buffer DMA address field will stay the same when it performs these
  * updates.  Therefore it can be used to keep track of DMA mappings
  * by the host driver just as in the TX descriptor case above.
diff -urN linux-2.5.63-bk1/drivers/net/sunhme.c linux-2.5.63-bk2/drivers/net/sunhme.c
--- linux-2.5.63-bk1/drivers/net/sunhme.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/drivers/net/sunhme.c	Mon Mar 31 12:15:53 2003
@@ -1198,7 +1198,7 @@
  * (ETH_FRAME_LEN + 64 + 2) = (1514 + 64 + 2) = 1580 bytes.
  *
  * First our alloc_skb() routine aligns the data base to a 64 byte
- * boundry.  We now have 0xf001b040 as our skb data address.  We
+ * boundary.  We now have 0xf001b040 as our skb data address.  We
  * plug this into the receive descriptor address.
  *
  * Next, we skb_reserve() 2 bytes to account for the Happy Meal offset.
@@ -1651,7 +1651,7 @@
 		    hme_read32(hp, etxregs + ETX_CFG) | ETX_CFG_DMAENABLE);
 
 	/* This chip really rots, for the receiver sometimes when you
-	 * write to it's control registers not all the bits get there
+	 * write to its control registers not all the bits get there
 	 * properly.  I cannot think of a sane way to provide complete
 	 * coverage for this hardware bug yet.
 	 */
diff -urN linux-2.5.63-bk1/drivers/net/sunhme.h linux-2.5.63-bk2/drivers/net/sunhme.h
--- linux-2.5.63-bk1/drivers/net/sunhme.h	Mon Feb 24 11:05:30 2003
+++ linux-2.5.63-bk2/drivers/net/sunhme.h	Mon Mar 31 12:15:53 2003
@@ -298,7 +298,7 @@
 #define CSCONFIG_NDISABLE       0x8000  /* Disable NRZI                */
 
 /* Happy Meal descriptor rings and such.
- * All descriptor rings must be aligned on a 2K boundry.
+ * All descriptor rings must be aligned on a 2K boundary.
  * All receive buffers must be 64 byte aligned.
  * Always write the address first before setting the ownership
  * bits to avoid races with the hardware scanning the ring.
diff -urN linux-2.5.63-bk1/drivers/net/sunlance.c linux-2.5.63-bk2/drivers/net/sunlance.c
--- linux-2.5.63-bk1/drivers/net/sunlance.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/drivers/net/sunlance.c	Mon Mar 31 12:15:53 2003
@@ -647,7 +647,7 @@
 	u8 *p8;
 	unsigned long pbuf = (unsigned long) piobuf;
 
-	/* We know here that both src and dest are on a 16bit boundry. */
+	/* We know here that both src and dest are on a 16bit boundary. */
 	*p16++ = sbus_readw(pbuf);
 	p32 = (u32 *) p16;
 	pbuf += 2;
diff -urN linux-2.5.63-bk1/drivers/net/tg3.c linux-2.5.63-bk2/drivers/net/tg3.c
--- linux-2.5.63-bk1/drivers/net/tg3.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/drivers/net/tg3.c	Mon Mar 31 12:15:53 2003
@@ -2194,7 +2194,7 @@
 	int i;
 
 #if !PCI_DMA_BUS_IS_PHYS
-	/* IOMMU, just map the guilty area again which is guarenteed to
+	/* IOMMU, just map the guilty area again which is guaranteed to
 	 * use different addresses.
 	 */
 
@@ -2229,7 +2229,7 @@
 		return -1;
 	}
 
-	/* New SKB is guarenteed to be linear. */
+	/* New SKB is guaranteed to be linear. */
 	entry = *start;
 	new_addr = pci_map_single(tp->pdev, new_skb->data, new_skb->len,
 				  PCI_DMA_TODEVICE);
@@ -3303,7 +3303,7 @@
 	0x00000000
 };
 
-#if 0 /* All zeros, dont eat up space with it. */
+#if 0 /* All zeros, don't eat up space with it. */
 u32 tg3FwData[(TG3_FW_DATA_LEN / sizeof(u32)) + 1] = {
 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 	0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -3736,7 +3736,7 @@
 	0x00000000
 };
 
-#if 0 /* All zeros, dont eat up space with it. */
+#if 0 /* All zeros, don't eat up space with it. */
 u32 tg3TsoFwData[] = {
 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 	0x00000000, 0x00000000, 0x00000000
@@ -5941,7 +5941,7 @@
 
 	/* Force memory write invalidate off.  If we leave it on,
 	 * then on 5700_BX chips we have to enable a workaround.
-	 * The workaround is to set the TG3PCI_DMA_RW_CTRL boundry
+	 * The workaround is to set the TG3PCI_DMA_RW_CTRL boundary
 	 * to match the cacheline size.  The Broadcom driver have this
 	 * workaround but turns MWI off all the times so never uses
 	 * it.  This seems to suggest that the workaround is insufficient.
diff -urN linux-2.5.63-bk1/drivers/net/tokenring/madgemc.c linux-2.5.63-bk2/drivers/net/tokenring/madgemc.c
--- linux-2.5.63-bk1/drivers/net/tokenring/madgemc.c	Mon Feb 24 11:05:45 2003
+++ linux-2.5.63-bk2/drivers/net/tokenring/madgemc.c	Mon Mar 31 12:15:53 2003
@@ -80,7 +80,7 @@
 static void madgemc_interrupt(int irq, void *dev_id, struct pt_regs *regs);
 
 /*
- * These work around paging, however they dont guarentee you're on the
+ * These work around paging, however they don't guarentee you're on the
  * right page.
  */
 #define SIFREADB(reg) (inb(dev->base_addr + ((reg<0x8)?reg:reg-0x8)))
diff -urN linux-2.5.63-bk1/drivers/net/tokenring/smctr.c linux-2.5.63-bk2/drivers/net/tokenring/smctr.c
--- linux-2.5.63-bk1/drivers/net/tokenring/smctr.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/drivers/net/tokenring/smctr.c	Mon Mar 31 12:15:53 2003
@@ -417,7 +417,7 @@
         tp->tx_buff_end[BUG_QUEUE] = (__u16 *)smctr_malloc(dev, 0);
 
         /* Allocate MAC receive data buffers.
-         * MAC Rx buffer doesn't have to be on a 256 byte boundry.
+         * MAC Rx buffer doesn't have to be on a 256 byte boundary.
          */
         tp->rx_buff_head[MAC_QUEUE] = (__u16 *)smctr_malloc(dev,
                 RX_DATA_BUFFER_SIZE * tp->num_rx_bdbs[MAC_QUEUE]);
@@ -438,7 +438,7 @@
          * To guarantee a minimum of 256 contigous memory to
          * UM_Receive_Packet's lookahead pointer, before a page
          * change or ring end is encountered, place each rx buffer on
-         * a 256 byte boundry.
+         * a 256 byte boundary.
          */
         smctr_malloc(dev, TO_256_BYTE_BOUNDRY(tp->sh_mem_used));
         tp->rx_buff_head[NON_MAC_QUEUE] = (__u16 *)smctr_malloc(dev,
@@ -1331,7 +1331,7 @@
         mem_used += tp->tx_buff_size[BUG_QUEUE];
 
         /* Allocate MAC receive data buffers.
-         * MAC receive buffers don't have to be on a 256 byte boundry.
+         * MAC receive buffers don't have to be on a 256 byte boundary.
          */
         mem_used += RX_DATA_BUFFER_SIZE * tp->num_rx_bdbs[MAC_QUEUE];
 
@@ -1348,7 +1348,7 @@
          *
          * Make sure the mem_used offset at this point is the
          * same as in allocate_shared memory or the following
-         * boundry adjustment will be incorrect (i.e. not allocating
+         * boundary adjustment will be incorrect (i.e. not allocating
          * the non-mac receive buffers above cannot change the 256
          * byte offset).
          *
@@ -3930,7 +3930,7 @@
         return (err);
 }
 
-/* Adapter RAM test. Incremental word ODD boundry data test. */
+/* Adapter RAM test. Incremental word ODD boundary data test. */
 static int smctr_ram_memory_test(struct net_device *dev)
 {
         struct net_local *tp = (struct net_local *)dev->priv;
@@ -3947,7 +3947,7 @@
         pages_of_ram    = tp->ram_size / tp->ram_usable;
         pword           = tp->ram_access;
 
-        /* Incremental word ODD boundry test. */
+        /* Incremental word ODD boundary test. */
         for(page = 0; (page < pages_of_ram) && (~err);
                 page++, start_pattern += 0x8000)
         {
@@ -5598,7 +5598,7 @@
                 /* if all transmit buffer are cleared
                  * need to set the tx_buff_curr[] to tx_buff_head[]
                  * otherwise, tx buffer will be segregate and cannot
-                 * accomodate and buffer greater than (curr - head) and
+                 * accommodate and buffer greater than (curr - head) and
                  * (end - curr) since we do not allow wrap around allocation.
                  */
                 if(tp->tx_buff_used[queue] == 0)
diff -urN linux-2.5.63-bk1/drivers/net/tulip/tulip_core.c linux-2.5.63-bk2/drivers/net/tulip/tulip_core.c
--- linux-2.5.63-bk1/drivers/net/tulip/tulip_core.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/drivers/net/tulip/tulip_core.c	Mon Mar 31 12:15:53 2003
@@ -1306,7 +1306,7 @@
 
 	/* Intel Saturn. Switch to 8 long words burst, 8 long word cache aligned
 	   Aries might need this too. The Saturn errata are not pretty reading but
-	   thankfully its an old 486 chipset.
+	   thankfully it's an old 486 chipset.
 	*/
 
 	if (pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82424, NULL)) {
diff -urN linux-2.5.63-bk1/drivers/net/wan/comx-hw-munich.c linux-2.5.63-bk2/drivers/net/wan/comx-hw-munich.c
--- linux-2.5.63-bk1/drivers/net/wan/comx-hw-munich.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/drivers/net/wan/comx-hw-munich.c	Mon Mar 31 12:15:53 2003
@@ -1304,7 +1304,7 @@
 		ch = (struct comx_channel *)dev->priv;
 		hw = (struct slicecom_privdata *)ch->HW_privdata;
 
-		/* We dont trust the "Tx available" info from the TIQ, but check        */
+		/* We don't trust the "Tx available" info from the TIQ, but check        */
 		/* every ring if there is some free room                                        */
 
 		if (ch->init_status && netif_running(dev))
diff -urN linux-2.5.63-bk1/drivers/net/wan/hostess_sv11.c linux-2.5.63-bk2/drivers/net/wan/hostess_sv11.c
--- linux-2.5.63-bk1/drivers/net/wan/hostess_sv11.c	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/drivers/net/wan/hostess_sv11.c	Mon Mar 31 12:15:53 2003
@@ -55,13 +55,13 @@
  
 static void hostess_input(struct z8530_channel *c, struct sk_buff *skb)
 {
-	/* Drop the CRC - its not a good idea to try and negotiate it ;) */
+	/* Drop the CRC - it's not a good idea to try and negotiate it ;) */
 	skb_trim(skb, skb->len-2);
 	skb->protocol=__constant_htons(ETH_P_WAN_PPP);
 	skb->mac.raw=skb->data;
 	skb->dev=c->netdevice;
 	/*
-	 *	Send it to the PPP layer. We dont have time to process
+	 *	Send it to the PPP layer. We don't have time to process
 	 *	it right now.
 	 */
 	netif_rx(skb);
diff -urN linux-2.5.63-bk1/drivers/net/wan/lmc/lmc_main.c linux-2.5.63-bk2/drivers/net/wan/lmc/lmc_main.c
--- linux-2.5.63-bk1/drivers/net/wan/lmc/lmc_main.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/wan/lmc/lmc_main.c	Mon Mar 31 12:15:53 2003
@@ -1024,7 +1024,7 @@
 }
 
 
-/* This is the entry point.  This is what is called immediatly. */
+/* This is the entry point.  This is what is called immediately. */
 /* This goes out and finds the card */
 
 int lmc_probe_fake(struct net_device *dev) /*fold00*/
diff -urN linux-2.5.63-bk1/drivers/net/wan/sdla_chdlc.c linux-2.5.63-bk2/drivers/net/wan/sdla_chdlc.c
--- linux-2.5.63-bk1/drivers/net/wan/sdla_chdlc.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/drivers/net/wan/sdla_chdlc.c	Mon Mar 31 12:15:53 2003
@@ -3529,7 +3529,7 @@
 					card->devname);
 		}else{ 
 			/* IP addresses are the same and the link is up, 
-                         * we dont have to do anything here. Therefore, exit */
+                         * we don't have to do anything here. Therefore, exit */
 			return 0;
 		}
 	}
diff -urN linux-2.5.63-bk1/drivers/net/wan/sdla_fr.c linux-2.5.63-bk2/drivers/net/wan/sdla_fr.c
--- linux-2.5.63-bk1/drivers/net/wan/sdla_fr.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/wan/sdla_fr.c	Mon Mar 31 12:15:53 2003
@@ -2747,7 +2747,7 @@
 		return 1;
 	}
 
-	/* If we get here, its an IPX-data packet so it'll get passed up the 
+	/* If we get here, it's an IPX-data packet so it'll get passed up the 
 	 * stack.
 	 * switch the network numbers 
 	 */
diff -urN linux-2.5.63-bk1/drivers/net/wan/sdla_ppp.c linux-2.5.63-bk2/drivers/net/wan/sdla_ppp.c
--- linux-2.5.63-bk1/drivers/net/wan/sdla_ppp.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/wan/sdla_ppp.c	Mon Mar 31 12:15:53 2003
@@ -2221,7 +2221,7 @@
 
 		return 1;
 	} else {
-		//If we get here's its an IPX-data packet, so it'll get passed up the stack.
+		//If we get here it's an IPX-data packet, so it'll get passed up the stack.
 
 		//switch the network numbers
 		switch_net_numbers(sendpacket, network_number, 1);	
@@ -3418,7 +3418,7 @@
 					card->devname);
 		}else{ 
 			/* IP addresses are the same and the link is up, 
-                         * we dont have to do anything here. Therefore, exit */
+                         * we don't have to do anything here. Therefore, exit */
 			return 0;
 		}
 	}
diff -urN linux-2.5.63-bk1/drivers/net/wan/sdla_x25.c linux-2.5.63-bk2/drivers/net/wan/sdla_x25.c
--- linux-2.5.63-bk1/drivers/net/wan/sdla_x25.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/wan/sdla_x25.c	Mon Mar 31 12:15:53 2003
@@ -4088,7 +4088,7 @@
 
 		return 1;
 	} else {
-		/*If we get here its an IPX-data packet, so it'll get passed up the stack.
+		/*If we get here it's an IPX-data packet, so it'll get passed up the stack.
 		 */
 		/* switch the network numbers */
 		switch_net_numbers(sendpacket, network_number, 1);	
diff -urN linux-2.5.63-bk1/drivers/net/wan/sdlamain.c linux-2.5.63-bk2/drivers/net/wan/sdlamain.c
--- linux-2.5.63-bk1/drivers/net/wan/sdlamain.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/wan/sdlamain.c	Mon Mar 31 12:15:53 2003
@@ -434,7 +434,7 @@
 	}
 
 	/* If the current card has already been configured
-         * or its a piggyback card, do not try to allocate
+         * or it's a piggyback card, do not try to allocate
          * resources.
 	 */
 	if (!card->wandev.piggyback && !card->configured){
diff -urN linux-2.5.63-bk1/drivers/net/wan/sealevel.c linux-2.5.63-bk2/drivers/net/wan/sealevel.c
--- linux-2.5.63-bk1/drivers/net/wan/sealevel.c	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/drivers/net/wan/sealevel.c	Mon Mar 31 12:15:53 2003
@@ -56,13 +56,13 @@
  
 static void sealevel_input(struct z8530_channel *c, struct sk_buff *skb)
 {
-	/* Drop the CRC - its not a good idea to try and negotiate it ;) */
+	/* Drop the CRC - it's not a good idea to try and negotiate it ;) */
 	skb_trim(skb, skb->len-2);
 	skb->protocol=htons(ETH_P_WAN_PPP);
 	skb->mac.raw=skb->data;
 	skb->dev=c->netdevice;
 	/*
-	 *	Send it to the PPP layer. We dont have time to process
+	 *	Send it to the PPP layer. We don't have time to process
 	 *	it right now.
 	 */
 	netif_rx(skb);
diff -urN linux-2.5.63-bk1/drivers/net/wan/z85230.c linux-2.5.63-bk2/drivers/net/wan/z85230.c
--- linux-2.5.63-bk1/drivers/net/wan/z85230.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/drivers/net/wan/z85230.c	Mon Mar 31 12:15:53 2003
@@ -1634,7 +1634,7 @@
 			write_zsreg(c, R0, RES_Rx_CRC);
 		}
 		else
-			/* Can't occur as we dont reenable the DMA irq until
+			/* Can't occur as we don't reenable the DMA irq until
 			   after the flip is done */
 			printk(KERN_WARNING "%s: DMA flip overrun!\n", c->netdevice->name);
 			
diff -urN linux-2.5.63-bk1/drivers/net/wireless/airo.c linux-2.5.63-bk2/drivers/net/wireless/airo.c
--- linux-2.5.63-bk1/drivers/net/wireless/airo.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/net/wireless/airo.c	Mon Mar 31 12:15:53 2003
@@ -970,7 +970,7 @@
 	int open;
 	struct net_device             *dev;
 	/* Note, we can have MAX_FIDS outstanding.  FIDs are 16-bits, so we
-	   use the high bit to mark wether it is in use. */
+	   use the high bit to mark whether it is in use. */
 #define MAX_FIDS 6
 	int                           fids[MAX_FIDS];
 	int registered;
@@ -2213,7 +2213,7 @@
 	/* Enable the interrupts */
 	OUT4500( ai, EVINTEN, STATUS_INTS );
 	/* Note there is a race condition between the last two lines that
-	   I dont know how to get rid of right now... */
+	   I don't know how to get rid of right now... */
 }
 
 static void disable_interrupts( struct airo_info *ai ) {
diff -urN linux-2.5.63-bk1/drivers/net/wireless/arlan.c linux-2.5.63-bk2/drivers/net/wireless/arlan.c
--- linux-2.5.63-bk1/drivers/net/wireless/arlan.c	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/drivers/net/wireless/arlan.c	Mon Mar 31 12:15:53 2003
@@ -567,7 +567,7 @@
 				break;
 			times++;
 		}
-		/* if long command, we wont repeat trying */ ;
+		/* if long command, we won't repeat trying */ ;
 		if (priv->card_polling_interval > 1)
 			break;
 		times++;
diff -urN linux-2.5.63-bk1/drivers/net/wireless/wavelan_cs.h linux-2.5.63-bk2/drivers/net/wireless/wavelan_cs.h
--- linux-2.5.63-bk1/drivers/net/wireless/wavelan_cs.h	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/drivers/net/wireless/wavelan_cs.h	Mon Mar 31 12:15:53 2003
@@ -60,7 +60,7 @@
 /* The detection of the wavelan card is made by reading the MAC address
  * from the card and checking it. If you have a non AT&T product (OEM,
  * like DEC RoamAbout, or Digital Ocean, Epson, ...), you must modify this
- * part to accomodate your hardware...
+ * part to accommodate your hardware...
  */
 const unsigned char	MAC_ADDRESSES[][3] =
 {
diff -urN linux-2.5.63-bk1/drivers/parisc/ccio-dma.c linux-2.5.63-bk2/drivers/parisc/ccio-dma.c
--- linux-2.5.63-bk1/drivers/parisc/ccio-dma.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/drivers/parisc/ccio-dma.c	Mon Mar 31 12:15:53 2003
@@ -924,7 +924,7 @@
 			** can't change. And we need the offset from the first
 			** chunk - not the last one. Ergo Successive chunks
 			** must start on page boundaries and dove tail
-			** with it's predecessor.
+			** with its predecessor.
 			*/
 			sg_dma_len(vcontig_sg) = vcontig_len;
 
diff -urN linux-2.5.63-bk1/drivers/parisc/dino.c linux-2.5.63-bk2/drivers/parisc/dino.c
--- linux-2.5.63-bk1/drivers/parisc/dino.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/drivers/parisc/dino.c	Mon Mar 31 12:15:53 2003
@@ -755,7 +755,7 @@
 
 	/*
 	** This enables DINO to generate interrupts when it sees
-	** any of it's inputs *change*. Just asserting an IRQ
+	** any of its inputs *change*. Just asserting an IRQ
 	** before it's enabled (ie unmasked) isn't good enough.
 	*/
 	gsc_writel(eim, dino_dev->hba.base_addr+DINO_IAR0);
diff -urN linux-2.5.63-bk1/drivers/parisc/sba_iommu.c linux-2.5.63-bk2/drivers/parisc/sba_iommu.c
--- linux-2.5.63-bk1/drivers/parisc/sba_iommu.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/drivers/parisc/sba_iommu.c	Mon Mar 31 12:15:53 2003
@@ -1114,7 +1114,7 @@
 
 /*
 ** Two address ranges are DMA contiguous *iff* "end of prev" and
-** "start of next" are both on a page boundry.
+** "start of next" are both on a page boundary.
 **
 ** (shift left is a quick trick to mask off upper bits)
 */
@@ -1219,7 +1219,7 @@
 			** can't change. And we need the offset from the first
 			** chunk - not the last one. Ergo Successive chunks
 			** must start on page boundaries and dove tail
-			** with it's predecessor.
+			** with its predecessor.
 			*/
 			sg_dma_len(vcontig_sg) = vcontig_len;
 
diff -urN linux-2.5.63-bk1/drivers/parport/parport_pc.c linux-2.5.63-bk2/drivers/parport/parport_pc.c
--- linux-2.5.63-bk1/drivers/parport/parport_pc.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/parport/parport_pc.c	Mon Mar 31 12:15:53 2003
@@ -35,7 +35,7 @@
  * All registers are 8 bits wide and read/write.  If your hardware differs
  * only in register addresses (eg because your registers are on 32-bit
  * word boundaries) then you can alter the constants in parport_pc.h to
- * accomodate this.
+ * accommodate this.
  *
  * Note that the ECP registers may not start at offset 0x400 for PCI cards,
  * but rather will start at port->base_hi.
diff -urN linux-2.5.63-bk1/drivers/pcmcia/i82365.c linux-2.5.63-bk2/drivers/pcmcia/i82365.c
--- linux-2.5.63-bk1/drivers/pcmcia/i82365.c	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/drivers/pcmcia/i82365.c	Mon Mar 31 12:15:53 2003
@@ -846,7 +846,7 @@
 	
 	    printk("PNP ");
 	    
-	    if (pnp_activate_dev(dev, NULL) < 0) {
+	    if (pnp_activate_dev(dev) < 0) {
 		printk("activate failed\n");
 		pnp_device_detach(dev);
 		break;
diff -urN linux-2.5.63-bk1/drivers/s390/block/dasd_diag.c linux-2.5.63-bk2/drivers/s390/block/dasd_diag.c
--- linux-2.5.63-bk1/drivers/s390/block/dasd_diag.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/drivers/s390/block/dasd_diag.c	Mon Mar 31 12:15:53 2003
@@ -467,7 +467,7 @@
  * the diag_bio_t for each block has 16 bytes. 
  * That makes:
  * (8192 - 96 - 8) / 16 = 505.5 blocks at maximum.
- * We want to fit two into the available memory so that we can immediatly
+ * We want to fit two into the available memory so that we can immediately
  * start the next request if one finishes off. That makes 252.75 blocks
  * for one request. Give a little safety and the result is 240.
  */
diff -urN linux-2.5.63-bk1/drivers/s390/block/dasd_eckd.c linux-2.5.63-bk2/drivers/s390/block/dasd_eckd.c
--- linux-2.5.63-bk1/drivers/s390/block/dasd_eckd.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/drivers/s390/block/dasd_eckd.c	Mon Mar 31 12:15:53 2003
@@ -1427,7 +1427,7 @@
  * addition we have one define extent ccw + 16 bytes of data and one
  * locate record ccw + 16 bytes of data. That makes:
  * (8192 - 24 - 136 - 8 - 16 - 8 - 16) / 16 = 499 blocks at maximum.
- * We want to fit two into the available memory so that we can immediatly
+ * We want to fit two into the available memory so that we can immediately
  * start the next request if one finishes off. That makes 249.5 blocks
  * for one request. Give a little safety and the result is 240.
  */
diff -urN linux-2.5.63-bk1/drivers/s390/block/dasd_fba.c linux-2.5.63-bk2/drivers/s390/block/dasd_fba.c
--- linux-2.5.63-bk1/drivers/s390/block/dasd_fba.c	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/drivers/s390/block/dasd_fba.c	Mon Mar 31 12:15:53 2003
@@ -389,7 +389,7 @@
  * locate record ccw for each block (stupid devices!) + 16 bytes of data.
  * That makes:
  * (8192 - 24 - 136 - 8 - 16) / 40 = 200.2 blocks at maximum.
- * We want to fit two into the available memory so that we can immediatly
+ * We want to fit two into the available memory so that we can immediately
  * start the next request if one finishes off. That makes 100.1 blocks
  * for one request. Give a little safety and the result is 96.
  */
diff -urN linux-2.5.63-bk1/drivers/s390/char/con3215.c linux-2.5.63-bk2/drivers/s390/char/con3215.c
--- linux-2.5.63-bk1/drivers/s390/char/con3215.c	Mon Feb 24 11:05:37 2003
+++ linux-2.5.63-bk2/drivers/s390/char/con3215.c	Mon Mar 31 12:15:53 2003
@@ -312,10 +312,10 @@
 }
 
 /*
- * Function to conditionally start an IO. A read is started immediatly,
- * a write is only started immediatly if the flush flag is on or the
+ * Function to conditionally start an IO. A read is started immediately,
+ * a write is only started immediately if the flush flag is on or the
  * amount of data is bigger than RAW3215_MIN_WRITE. If a write is not
- * done immediatly a timer is started with a delay of RAW3215_TIMEOUT.
+ * done immediately a timer is started with a delay of RAW3215_TIMEOUT.
  */
 static inline void
 raw3215_try_io(struct raw3215_info *raw)
diff -urN linux-2.5.63-bk1/drivers/s390/char/sclp.c linux-2.5.63-bk2/drivers/s390/char/sclp.c
--- linux-2.5.63-bk1/drivers/s390/char/sclp.c	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/drivers/s390/char/sclp.c	Mon Mar 31 12:15:53 2003
@@ -26,7 +26,7 @@
 #define SCLP_CORE_PRINT_HEADER "sclp low level driver: "
 
 /*
- * decides wether we make use of the macro MACHINE_IS_VM to
+ * decides whether we make use of the macro MACHINE_IS_VM to
  * configure the driver for VM at run time (a little bit
  * different behaviour); otherwise we use the default
  * settings in sclp_data.init_ioctls
diff -urN linux-2.5.63-bk1/drivers/s390/char/sclp_rw.c linux-2.5.63-bk2/drivers/s390/char/sclp_rw.c
--- linux-2.5.63-bk1/drivers/s390/char/sclp_rw.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/drivers/s390/char/sclp_rw.c	Mon Mar 31 12:15:53 2003
@@ -192,7 +192,7 @@
 	 * under VM (Why does VM interpret \n but the native machine doesn't ?)
 	 *
 	 * Depending on i/o-control setting the message is always written
-	 * immediatly or we wait for a final new line maybe coming with the
+	 * immediately or we wait for a final new line maybe coming with the
 	 * next message. Besides we avoid a buffer overrun by writing its
 	 * content.
 	 *
diff -urN linux-2.5.63-bk1/drivers/s390/cio/device_fsm.c linux-2.5.63-bk2/drivers/s390/cio/device_fsm.c
--- linux-2.5.63-bk1/drivers/s390/cio/device_fsm.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/drivers/s390/cio/device_fsm.c	Mon Mar 31 12:15:53 2003
@@ -288,7 +288,7 @@
 	}
 	/* Is Set Path Group supported? */
 	if (!cdev->private->flags.pgid_supp) {
-		/* No, set state online immediatly. */
+		/* No, set state online immediately. */
 		ccw_device_done(cdev, DEV_STATE_ONLINE);
 		return 0;
 	}
@@ -333,7 +333,7 @@
 		return -EBUSY;
 	/* Is Set Path Group supported? */
 	if (!cdev->private->flags.pgid_supp) {
-		/* No, set state offline immediatly. */
+		/* No, set state offline immediately. */
 		ccw_device_done(cdev, DEV_STATE_OFFLINE);
 		return 0;
 	}
diff -urN linux-2.5.63-bk1/drivers/s390/cio/qdio.h linux-2.5.63-bk2/drivers/s390/cio/qdio.h
--- linux-2.5.63-bk1/drivers/s390/cio/qdio.h	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/drivers/s390/cio/qdio.h	Mon Mar 31 12:15:53 2003
@@ -27,7 +27,7 @@
 #define IQDIO_DELAY_TARGET 0
 #define QDIO_BUSY_BIT_PATIENCE 2000 /* in microsecs */
 #define IQDIO_GLOBAL_LAPS 2 /* GLOBAL_LAPS are not used as we */
-#define IQDIO_GLOBAL_LAPS_INT 1 /* dont global summary */
+#define IQDIO_GLOBAL_LAPS_INT 1 /* don't global summary */
 #define IQDIO_LOCAL_LAPS 4
 #define IQDIO_LOCAL_LAPS_INT 1
 #define IQDIO_GLOBAL_SUMMARY_CC_MASK 2
diff -urN linux-2.5.63-bk1/drivers/s390/net/lcs.c linux-2.5.63-bk2/drivers/s390/net/lcs.c
--- linux-2.5.63-bk1/drivers/s390/net/lcs.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/drivers/s390/net/lcs.c	Mon Mar 31 12:15:53 2003
@@ -1206,7 +1206,7 @@
 	card->stats.tx_packets++;
 	dev_kfree_skb(skb);
 	if (card->tx_emitted <= 0)
-		/* If this is the first tx buffer emit it immediatly. */
+		/* If this is the first tx buffer emit it immediately. */
 		__lcs_emit_txbuffer(card);
 	return 0;
 }
diff -urN linux-2.5.63-bk1/drivers/sbus/char/envctrl.c linux-2.5.63-bk2/drivers/sbus/char/envctrl.c
--- linux-2.5.63-bk1/drivers/sbus/char/envctrl.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/drivers/sbus/char/envctrl.c	Mon Mar 31 12:15:53 2003
@@ -810,7 +810,7 @@
 		pchild->fan_mask |= chnls_mask[(pchild->chnl_array[i]).chnl_no];
 
 	/* We only need to know if this child has fan status monitored.
-	 * We dont care which channels since we have the mask already.
+	 * We don't care which channels since we have the mask already.
 	 */
 	pchild->mon_type[0] = ENVCTRL_FANSTAT_MON;
 }
@@ -842,7 +842,7 @@
 	}
 
 	/* We only need to know if this child has global addressing 
-	 * line monitored.  We dont care which channels since we know 
+	 * line monitored.  We don't care which channels since we know 
 	 * the mask already (ENVCTRL_GLOBALADDR_ADDR_MASK).
 	 */
 	pchild->mon_type[0] = ENVCTRL_GLOBALADDR_MON;
@@ -858,7 +858,7 @@
 		pchild->voltage_mask |= chnls_mask[(pchild->chnl_array[i]).chnl_no];
 
 	/* We only need to know if this child has voltage status monitored.
-	 * We dont care which channels since we have the mask already.
+	 * We don't care which channels since we have the mask already.
 	 */
 	pchild->mon_type[0] = ENVCTRL_VOLTAGESTAT_MON;
 }
@@ -1115,7 +1115,7 @@
 		       envctrl_dev.minor);
 	}
 
-	/* Note above traversal routine post-incremented 'i' to accomodate 
+	/* Note above traversal routine post-incremented 'i' to accommodate 
 	 * a next child device, so we decrement before reverse-traversal of
 	 * child devices.
 	 */
diff -urN linux-2.5.63-bk1/drivers/scsi/aha152x.c linux-2.5.63-bk2/drivers/scsi/aha152x.c
--- linux-2.5.63-bk1/drivers/scsi/aha152x.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/drivers/scsi/aha152x.c	Mon Mar 31 12:15:53 2003
@@ -1131,7 +1131,7 @@
 	while ( setup_count<ARRAY_SIZE(setup) && (dev=pnp_find_dev(NULL, ISAPNP_VENDOR('A','D','P'), ISAPNP_FUNCTION(0x1505), dev)) ) {
 		if (pnp_device_attach(dev) < 0)
 			continue;
-		if (pnp_activate_dev(dev, NULL) < 0) {
+		if (pnp_activate_dev(dev) < 0) {
 			pnp_device_detach(dev);
 			continue;
 		}
diff -urN linux-2.5.63-bk1/drivers/scsi/aha1542.c linux-2.5.63-bk2/drivers/scsi/aha1542.c
--- linux-2.5.63-bk1/drivers/scsi/aha1542.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/drivers/scsi/aha1542.c	Mon Mar 31 12:15:53 2003
@@ -1161,7 +1161,7 @@
 			if(pnp_device_attach(pdev)<0)
 				continue;
 			
-			if(pnp_activate_dev(pdev, NULL)<0) {
+			if(pnp_activate_dev(pdev)<0) {
 				pnp_device_detach(pdev);
 				continue;
 			}
diff -urN linux-2.5.63-bk1/drivers/scsi/aic7xxx/aic79xx.h linux-2.5.63-bk2/drivers/scsi/aic7xxx/aic79xx.h
--- linux-2.5.63-bk1/drivers/scsi/aic7xxx/aic79xx.h	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/scsi/aic7xxx/aic79xx.h	Mon Mar 31 12:15:53 2003
@@ -180,7 +180,7 @@
 
 /*
  * Define the size of our QIN and QOUT FIFOs.  They must be a power of 2
- * in size and accomodate as many transactions as can be queued concurrently.
+ * in size and accommodate as many transactions as can be queued concurrently.
  */
 #define	AHD_QIN_SIZE	AHD_MAX_QUEUE
 #define	AHD_QOUT_SIZE	AHD_MAX_QUEUE
diff -urN linux-2.5.63-bk1/drivers/scsi/aic7xxx/aic7xxx_osm.c linux-2.5.63-bk2/drivers/scsi/aic7xxx/aic7xxx_osm.c
--- linux-2.5.63-bk1/drivers/scsi/aic7xxx/aic7xxx_osm.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/drivers/scsi/aic7xxx/aic7xxx_osm.c	Mon Mar 31 12:15:53 2003
@@ -108,7 +108,7 @@
  * but are not limited to:
  *
  *  1: Import of the latest FreeBSD sequencer code for this driver
- *  2: Modification of kernel code to accomodate different sequencer semantics
+ *  2: Modification of kernel code to accommodate different sequencer semantics
  *  3: Extensive changes throughout kernel portion of driver to improve
  *     abort/reset processing and error hanndling
  *  4: Other work contributed by various people on the Internet
diff -urN linux-2.5.63-bk1/drivers/scsi/aic7xxx_old.c linux-2.5.63-bk2/drivers/scsi/aic7xxx_old.c
--- linux-2.5.63-bk1/drivers/scsi/aic7xxx_old.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/scsi/aic7xxx_old.c	Mon Mar 31 12:15:53 2003
@@ -111,7 +111,7 @@
  * but are not limited to:
  *
  *  1: Import of the latest FreeBSD sequencer code for this driver
- *  2: Modification of kernel code to accomodate different sequencer semantics
+ *  2: Modification of kernel code to accommodate different sequencer semantics
  *  3: Extensive changes throughout kernel portion of driver to improve
  *     abort/reset processing and error hanndling
  *  4: Other work contributed by various people on the Internet
diff -urN linux-2.5.63-bk1/drivers/scsi/cpqfcTSinit.c linux-2.5.63-bk2/drivers/scsi/cpqfcTSinit.c
--- linux-2.5.63-bk1/drivers/scsi/cpqfcTSinit.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/drivers/scsi/cpqfcTSinit.c	Mon Mar 31 12:15:53 2003
@@ -1514,7 +1514,7 @@
       Exchanges->fcExchange[i].timeOut = 10; // seconds default (changed later)
 
       // Since we need to immediately return the aborted Cmnd to Scsi 
-      // upper layers, we can't make future reference to any of it's 
+      // upper layers, we can't make future reference to any of its 
       // fields (e.g the Nexus).
 
       cpqfcTSPutLinkQue( cpqfcHBAdata, BLS_ABTS, &i);
diff -urN linux-2.5.63-bk1/drivers/scsi/cpqfcTSworker.c linux-2.5.63-bk2/drivers/scsi/cpqfcTSworker.c
--- linux-2.5.63-bk1/drivers/scsi/cpqfcTSworker.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/drivers/scsi/cpqfcTSworker.c	Mon Mar 31 12:15:53 2003
@@ -79,7 +79,7 @@
 // synchronously (i.e. each of the 30k I/O had to be started one at a
 // time by sending a starting frame via Tachyon's outbound que).  
 
-// To accomodate kernel "module" build, this driver limits the exchanges
+// To accommodate kernel "module" build, this driver limits the exchanges
 // to 256, because of the contiguous physical memory limitation of 128M.
 
 // Typical FC Exchanges are opened presuming the FC frames start without errors,
diff -urN linux-2.5.63-bk1/drivers/scsi/g_NCR5380.c linux-2.5.63-bk2/drivers/scsi/g_NCR5380.c
--- linux-2.5.63-bk1/drivers/scsi/g_NCR5380.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/drivers/scsi/g_NCR5380.c	Mon Mar 31 12:15:53 2003
@@ -323,7 +323,7 @@
 				printk(KERN_ERR "dtc436e probe: attach failed\n");
 				continue;
 			}
-			if (pnp_activate_dev(dev, NULL) < 0) {
+			if (pnp_activate_dev(dev) < 0) {
 				printk(KERN_ERR "dtc436e probe: activate failed\n");
 				pnp_device_detach(dev);
 				continue;
diff -urN linux-2.5.63-bk1/drivers/scsi/megaraid.c linux-2.5.63-bk2/drivers/scsi/megaraid.c
--- linux-2.5.63-bk1/drivers/scsi/megaraid.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/drivers/scsi/megaraid.c	Mon Mar 31 12:15:53 2003
@@ -309,7 +309,7 @@
  *	Thu Mar 15 18:38:11 EST 2001 - AM
  *
  *	Firmware version check removed if subsysid==0x1111 and
- *	subsysvid==0x1111, since its not yet initialized.
+ *	subsysvid==0x1111, since it's not yet initialized.
  *
  *	changes made to correctly calculate the base in mega_findCard.
  *
@@ -1714,7 +1714,7 @@
 	unsigned char *data = (unsigned char *) SCpnt->request_buffer;
 	mega_driver_info driver_info;
 
-	/* If this is not our command dont do anything */
+	/* If this is not our command don't do anything */
 	if (SCpnt->cmnd[0] != M_RD_DRIVER_IOCTL_INTERFACE)
 		return 0;
 
@@ -2879,7 +2879,7 @@
 #endif
 		}
 
-		/* Hmmm...Should we not make this more modularized so that in future we dont add
+		/* Hmmm...Should we not make this more modularized so that in future we don't add
 		   for each firmware */
 
 		if (flag & BOARD_QUARTZ) {
@@ -2906,7 +2906,7 @@
 			 * pci_vendor_id not subsysvid - AM
 			 */
 
-			/* If we dont detect this valid subsystem vendor id's 
+			/* If we don't detect this valid subsystem vendor id's 
 			   we refuse to load the driver 
 			   PART of PC200X compliance
 			 */
diff -urN linux-2.5.63-bk1/drivers/scsi/ncr53c8xx.c linux-2.5.63-bk2/drivers/scsi/ncr53c8xx.c
--- linux-2.5.63-bk1/drivers/scsi/ncr53c8xx.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/scsi/ncr53c8xx.c	Mon Mar 31 12:15:53 2003
@@ -3090,7 +3090,7 @@
 		case 0x8:
 			/*
 			**	JUMP / CALL
-			**	dont't relocate if relative :-)
+			**	don't relocate if relative :-)
 			*/
 			if (opcode & 0x00800000)
 				relocs = 0;
@@ -5852,7 +5852,7 @@
 	/*
 	**	Why not to try the immediate lower divisor and to choose 
 	**	the one that allows the fastest output speed ?
-	**	We dont want input speed too much greater than output speed.
+	**	We don't want input speed too much greater than output speed.
 	*/
 	if (div >= 1 && fak < 8) {
 		u_long fak2, per2;
diff -urN linux-2.5.63-bk1/drivers/scsi/qlogicfc.c linux-2.5.63-bk2/drivers/scsi/qlogicfc.c
--- linux-2.5.63-bk1/drivers/scsi/qlogicfc.c	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/drivers/scsi/qlogicfc.c	Mon Mar 31 12:15:53 2003
@@ -1563,7 +1563,7 @@
 				/* 
 				 * if any of the following are true we do not
 				 * call scsi_done.  if the status is CS_ABORTED
-				 * we dont have to call done because the upper
+				 * we don't have to call done because the upper
 				 * level should already know its aborted.
 				 */
 				if (hostdata->handle_serials[le_hand] != Cmnd->serial_number 
diff -urN linux-2.5.63-bk1/drivers/scsi/qlogicpti.c linux-2.5.63-bk2/drivers/scsi/qlogicpti.c
--- linux-2.5.63-bk1/drivers/scsi/qlogicpti.c	Mon Feb 24 11:05:37 2003
+++ linux-2.5.63-bk2/drivers/scsi/qlogicpti.c	Mon Mar 31 12:15:53 2003
@@ -776,7 +776,7 @@
 }
 
 /* The request and response queues must each be aligned
- * on a page boundry.
+ * on a page boundary.
  */
 static int __init qpti_map_queues(struct qlogicpti *qpti)
 {
diff -urN linux-2.5.63-bk1/drivers/scsi/scsi_ioctl.c linux-2.5.63-bk2/drivers/scsi/scsi_ioctl.c
--- linux-2.5.63-bk1/drivers/scsi/scsi_ioctl.c	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/drivers/scsi/scsi_ioctl.c	Mon Mar 31 12:15:53 2003
@@ -194,7 +194,7 @@
  *      of the given command. There is no way to override this.
  *   -  Data transfers are limited to PAGE_SIZE (4K on i386, 8K on alpha).
  *   -  The length (x + y) must be at least OMAX_SB_LEN bytes long to
- *      accomodate the sense buffer when an error occurs.
+ *      accommodate the sense buffer when an error occurs.
  *      The sense buffer is truncated to OMAX_SB_LEN (16) bytes so that
  *      old code will not be surprised.
  *   -  If a Unix error occurs (e.g. ENOMEM) then the user will receive
diff -urN linux-2.5.63-bk1/drivers/scsi/st.c linux-2.5.63-bk2/drivers/scsi/st.c
--- linux-2.5.63-bk1/drivers/scsi/st.c	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/drivers/scsi/st.c	Mon Mar 31 12:15:53 2003
@@ -2963,7 +2963,7 @@
    set the size of partition 1. There is no size field for the default partition.
    Michael Schaefer's Sony SDT-7000 returns two descriptors and the second is
    used to set the size of partition 1 (this is what the SCSI-3 standard specifies).
-   The following algorithm is used to accomodate both drives: if the number of
+   The following algorithm is used to accommodate both drives: if the number of
    partition size fields is greater than the maximum number of additional partitions
    in the mode page, the second field is used. Otherwise the first field is used.
 
diff -urN linux-2.5.63-bk1/drivers/scsi/sym53c416.c linux-2.5.63-bk2/drivers/scsi/sym53c416.c
--- linux-2.5.63-bk1/drivers/scsi/sym53c416.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/drivers/scsi/sym53c416.c	Mon Mar 31 12:15:53 2003
@@ -679,7 +679,7 @@
 				printk(KERN_WARNING "sym53c416: unable to attach PnP device.\n");
 				continue;
 			}
-			if(pnp_activate_dev(idev, NULL)<0)
+			if(pnp_activate_dev(idev)<0)
 			{
 				printk(KERN_WARNING "sym53c416: unable to activate PnP device.\n");
 				pnp_device_detach(idev);
diff -urN linux-2.5.63-bk1/drivers/scsi/sym53c8xx.c linux-2.5.63-bk2/drivers/scsi/sym53c8xx.c
--- linux-2.5.63-bk1/drivers/scsi/sym53c8xx.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/scsi/sym53c8xx.c	Mon Mar 31 12:15:53 2003
@@ -4631,7 +4631,7 @@
 		case 0x8:
 			/*
 			**	JUMP / CALL
-			**	dont't relocate if relative :-)
+			**	don't relocate if relative :-)
 			*/
 			if (opcode & 0x00800000)
 				relocs = 0;
@@ -7953,7 +7953,7 @@
 	/*
 	**	Why not to try the immediate lower divisor and to choose 
 	**	the one that allows the fastest output speed ?
-	**	We dont want input speed too much greater than output speed.
+	**	We don't want input speed too much greater than output speed.
 	*/
 	if (div >= 1 && fak < 8) {
 		u_long fak2, per2;
diff -urN linux-2.5.63-bk1/drivers/scsi/sym53c8xx_2/sym_fw.c linux-2.5.63-bk2/drivers/scsi/sym53c8xx_2/sym_fw.c
--- linux-2.5.63-bk1/drivers/scsi/sym53c8xx_2/sym_fw.c	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/drivers/scsi/sym53c8xx_2/sym_fw.c	Mon Mar 31 12:15:53 2003
@@ -539,7 +539,7 @@
 		case 0x8:
 			/*
 			 *  JUMP / CALL
-			 *  dont't relocate if relative :-)
+			 *  don't relocate if relative :-)
 			 */
 			if (opcode & 0x00800000)
 				relocs = 0;
diff -urN linux-2.5.63-bk1/drivers/serial/21285.c linux-2.5.63-bk2/drivers/serial/21285.c
--- linux-2.5.63-bk1/drivers/serial/21285.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/drivers/serial/21285.c	Mon Mar 31 12:15:53 2003
@@ -237,7 +237,7 @@
 			struct termios *old)
 {
 	unsigned long flags;
-	unsigned int quot, h_lcr;
+	unsigned int baud, quot, h_lcr;
 
 	/*
 	 * We don't support modem control lines.
@@ -253,7 +253,8 @@
 	/*
 	 * Ask the core to calculate the divisor for us.
 	 */
-	quot = uart_get_divisor(port, termios, old);
+	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); 
+	quot = uart_get_divisor(port, baud);
 
 	switch (termios->c_cflag & CSIZE) {
 	case CS5:
@@ -286,7 +287,7 @@
 	/*
 	 * Update the per-port timeout.
 	 */
-	uart_update_timeout(port, termios->c_cflag, quot);
+	uart_update_timeout(port, termios->c_cflag, baud);
 
 	/*
 	 * Which character status flags are we interested in?
diff -urN linux-2.5.63-bk1/drivers/serial/8250.c linux-2.5.63-bk2/drivers/serial/8250.c
--- linux-2.5.63-bk1/drivers/serial/8250.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/serial/8250.c	Mon Mar 31 12:15:53 2003
@@ -159,7 +159,8 @@
 	{ "16C950/954",	128,	UART_CLEAR_FIFO | UART_USE_FIFO },
 	{ "ST16654",	64,	UART_CLEAR_FIFO | UART_USE_FIFO | UART_STARTECH },
 	{ "XR16850",	128,	UART_CLEAR_FIFO | UART_USE_FIFO | UART_STARTECH },
-	{ "RSA",	2048,	UART_CLEAR_FIFO | UART_USE_FIFO }
+	{ "RSA",	2048,	UART_CLEAR_FIFO | UART_USE_FIFO },
+	{ "NS16550A",	16,	UART_CLEAR_FIFO | UART_USE_FIFO | UART_NATSEMI }
 };
 
 static _INLINE_ unsigned int serial_in(struct uart_8250_port *up, int offset)
@@ -482,6 +483,40 @@
 	}
 
 	/*
+	 * Check for a National Semiconductor SuperIO chip.
+	 * Attempt to switch to bank 2, read the value of the LOOP bit
+	 * from EXCR1. Switch back to bank 0, change it in MCR. Then
+	 * switch back to bank 2, read it from EXCR1 again and check
+	 * it's changed. If so, set baud_base in EXCR2 to 921600.
+	 */
+	serial_outp(up, UART_LCR, 0);
+	status1 = serial_in(up, UART_MCR);
+	serial_outp(up, UART_LCR, 0xE0);
+	status2 = serial_in(up, 0x02); /* EXCR1 */
+
+	if (!((status2 ^ status1) & UART_MCR_LOOP)) {
+		serial_outp(up, UART_LCR, 0);
+		serial_outp(up, UART_MCR, status1 ^ UART_MCR_LOOP);
+		serial_outp(up, UART_LCR, 0xE0);
+		status2 = serial_in(up, 0x02); /* EXCR1 */
+		serial_outp(up, UART_LCR, 0);
+		serial_outp(up, UART_MCR, status1);
+
+		if ((status2 ^ status1) & UART_MCR_LOOP) {
+			serial_outp(up, UART_LCR, 0xE0);
+			status1 = serial_in(up, 0x04); /* EXCR1 */
+			status1 &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */
+			status1 |= 0x10;  /* 1.625 divisor for baud_base --> 921600 */
+			serial_outp(up, 0x04, status1);
+			serial_outp(up, UART_LCR, 0);
+
+			up->port.type = PORT_NS16550A;
+			up->port.uartclk = 921600*16;
+			return;
+		}
+	}
+
+	/*
 	 * No EFR.  Try to detect a TI16750, which only sets bit 5 of
 	 * the IIR when 64 byte FIFO mode is enabled when DLAB is set.
 	 * Try setting it with and without DLAB set.  Cheap clones
@@ -1318,6 +1353,26 @@
 		serial_unlink_irq_chain(up);
 }
 
+static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud)
+{
+	unsigned int quot;
+
+	/*
+	 * Handle magic divisors for baud rates above baud_base on
+	 * SMSC SuperIO chips.
+	 */
+	if ((port->flags & UPF_MAGIC_MULTIPLIER) &&
+	    baud == (port->uartclk/4))
+		quot = 0x8001;
+	else if ((port->flags & UPF_MAGIC_MULTIPLIER) &&
+		 baud == (port->uartclk/8))
+		quot = 0x8002;
+	else
+		quot = uart_get_divisor(port, baud);
+
+	return quot;
+}
+
 static void
 serial8250_set_termios(struct uart_port *port, struct termios *termios,
 		       struct termios *old)
@@ -1325,7 +1380,7 @@
 	struct uart_8250_port *up = (struct uart_8250_port *)port;
 	unsigned char cval, fcr = 0;
 	unsigned long flags;
-	unsigned int quot;
+	unsigned int baud, quot;
 
 	switch (termios->c_cflag & CSIZE) {
 	case CS5:
@@ -1357,7 +1412,8 @@
 	/*
 	 * Ask the core to calculate the divisor for us.
 	 */
-	quot = uart_get_divisor(port, termios, old);
+	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); 
+	quot = serial8250_get_divisor(port, baud);
 
 	/*
 	 * Work around a bug in the Oxford Semiconductor 952 rev B
@@ -1369,7 +1425,7 @@
 		quot ++;
 
 	if (uart_config[up->port.type].flags & UART_USE_FIFO) {
-		if ((up->port.uartclk / quot) < (2400 * 16))
+		if (baud < 2400)
 			fcr = UART_FCR_ENABLE_FIFO | UART_FCR_TRIGGER_1;
 #ifdef CONFIG_SERIAL_8250_RSA
 		else if (up->port.type == PORT_RSA)
@@ -1390,7 +1446,7 @@
 	/*
 	 * Update the per-port timeout.
 	 */
-	uart_update_timeout(port, termios->c_cflag, quot);
+	uart_update_timeout(port, termios->c_cflag, baud);
 
 	up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
 	if (termios->c_iflag & INPCK)
@@ -1434,7 +1490,13 @@
 		serial_outp(up, UART_EFR,
 			    termios->c_cflag & CRTSCTS ? UART_EFR_CTS :0);
 	}
-	serial_outp(up, UART_LCR, cval | UART_LCR_DLAB);/* set DLAB */
+
+	if (uart_config[up->port.type].flags & UART_NATSEMI) {
+		/* Switch to bank 2 not bank 1, to avoid resetting EXCR2 */
+		serial_outp(up, UART_LCR, 0xe0);
+	} else {
+		serial_outp(up, UART_LCR, cval | UART_LCR_DLAB);/* set DLAB */
+	}
 	serial_outp(up, UART_DLL, quot & 0xff);		/* LS of divisor */
 	serial_outp(up, UART_DLM, quot >> 8);		/* MS of divisor */
 	if (up->port.type == PORT_16750)
diff -urN linux-2.5.63-bk1/drivers/serial/amba.c linux-2.5.63-bk2/drivers/serial/amba.c
--- linux-2.5.63-bk1/drivers/serial/amba.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/drivers/serial/amba.c	Mon Mar 31 12:15:53 2003
@@ -408,12 +408,13 @@
 {
 	unsigned int lcr_h, old_cr;
 	unsigned long flags;
-	unsigned int quot;
+	unsigned int baud, quot;
 
 	/*
 	 * Ask the core to calculate the divisor for us.
 	 */
-	quot = uart_get_divisor(port, termios, old);
+	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); 
+	quot = uart_get_divisor(port, baud);
 
 	switch (termios->c_cflag & CSIZE) {
 	case CS5:
@@ -444,7 +445,7 @@
 	/*
 	 * Update the per-port timeout.
 	 */
-	uart_update_timeout(port, termios->c_cflag, quot);
+	uart_update_timeout(port, termios->c_cflag, baud);
 
 	port->read_status_mask = AMBA_UARTRSR_OE;
 	if (termios->c_iflag & INPCK)
diff -urN linux-2.5.63-bk1/drivers/serial/anakin.c linux-2.5.63-bk2/drivers/serial/anakin.c
--- linux-2.5.63-bk1/drivers/serial/anakin.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/drivers/serial/anakin.c	Mon Mar 31 12:15:53 2003
@@ -287,7 +287,7 @@
 		   struct termios *old)
 {
 	unsigned long flags;
-	unsigned int quot;
+	unsigned int baud, quot;
 
 	/*
 	 * We don't support parity, stop bits, or anything other
@@ -304,11 +304,12 @@
 	/*
 	 * Ask the core to calculate the divisor for us.
 	 */
-	quot = uart_get_divisor(port, termios, old);
+	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); 
+	quot = uart_get_divisor(port, baud);
 
 	spin_lock_irqsave(&port->lock, flags);
 
-	uart_update_timeout(port, termios->c_cflag, quot);
+	uart_update_timeout(port, termios->c_cflag, baud);
 
 	while (!(anakin_in(port, 0x10) & TXEMPTY))
 		barrier();
diff -urN linux-2.5.63-bk1/drivers/serial/clps711x.c linux-2.5.63-bk2/drivers/serial/clps711x.c
--- linux-2.5.63-bk1/drivers/serial/clps711x.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/drivers/serial/clps711x.c	Mon Mar 31 12:15:53 2003
@@ -320,7 +320,7 @@
 clps711xuart_set_termios(struct uart_port *port, struct termios *termios,
 			 struct termios *old)
 {
-	unsigned int ubrlcr, quot;
+	unsigned int ubrlcr, baud, quot;
 	unsigned long flags;
 
 	/*
@@ -331,7 +331,8 @@
 	/*
 	 * Ask the core to calculate the divisor for us.
 	 */
-	quot = uart_get_divisor(port, termios, old);
+	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); 
+	quot = uart_get_divisor(port, baud);
 
 	switch (termios->c_cflag & CSIZE) {
 	case CS5:
@@ -362,7 +363,7 @@
 	/*
 	 * Update the per-port timeout.
 	 */
-	uart_update_timeout(port, termios->c_cflag, quot);
+	uart_update_timeout(port, termios->c_cflag, baud);
 
 	port->read_status_mask = UARTDR_OVERR;
 	if (termios->c_iflag & INPCK)
diff -urN linux-2.5.63-bk1/drivers/serial/core.c linux-2.5.63-bk2/drivers/serial/core.c
--- linux-2.5.63-bk1/drivers/serial/core.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/drivers/serial/core.c	Mon Mar 31 12:15:53 2003
@@ -271,7 +271,7 @@
  */
 void
 uart_update_timeout(struct uart_port *port, unsigned int cflag,
-		    unsigned int quot)
+		    unsigned int baud)
 {
 	unsigned int bits;
 
@@ -305,7 +305,7 @@
 	 * Figure the timeout to send the above number of bits.
 	 * Add .02 seconds of slop
 	 */
-	port->timeout = (HZ * bits) / (port->uartclk / (16 * quot)) + HZ/50;
+	port->timeout = (HZ * bits) / baud + HZ/50;
 }
 
 EXPORT_SYMBOL(uart_update_timeout);
@@ -321,6 +321,12 @@
  *	Decode the termios structure into a numeric baud rate,
  *	taking account of the magic 38400 baud rate (with spd_*
  *	flags), and mapping the %B0 rate to 9600 baud.
+ *
+ *	If the new baud rate is invalid, try the old termios setting.
+ *	If it's still invalid, we try 9600 baud.
+ *
+ *	Update the @termios structure to reflect the baud rate
+ *	we're actually going to be using.
  */
 unsigned int
 uart_get_baud_rate(struct uart_port *port, struct termios *termios,
@@ -383,26 +389,14 @@
 /**
  *	uart_get_divisor - return uart clock divisor
  *	@port: uart_port structure describing the port.
- *	@termios: desired termios settings
- *	@old_termios: the original port settings, or NULL
- *
- *	Calculate the uart clock divisor for the port.  If the
- *	divisor is invalid, try the old termios setting.  If
- *	the divisor is still invalid, we try 9600 baud.
+ *	@baud: desired baud rate
  *
- *	Update the @termios structure to reflect the baud rate
- *	we're actually going to be using.
- *
- *	If 9600 baud fails, we return a zero divisor.
+ *	Calculate the uart clock divisor for the port.
  */
 unsigned int
-uart_get_divisor(struct uart_port *port, struct termios *termios,
-		 struct termios *old_termios)
+uart_get_divisor(struct uart_port *port, unsigned int baud)
 {
-	unsigned int quot, baud, max = port->uartclk / 16;
-
-	/* Determine divisor based on baud rate */
-	baud = uart_get_baud_rate(port, termios, old_termios, 0, max);
+	unsigned int quot;
 
 	/*
 	 * Old custom speed handling.
@@ -832,8 +826,17 @@
 		goto exit;
 	if (info->flags & UIF_INITIALIZED) {
 		if (((old_flags ^ port->flags) & UPF_SPD_MASK) ||
-		    old_custom_divisor != port->custom_divisor)
+		    old_custom_divisor != port->custom_divisor) {
+			/* If they're setting up a custom divisor or speed,
+			 * instead of clearing it, then bitch about it. No
+			 * need to rate-limit; it's CAP_SYS_ADMIN only. */
+			if (port->flags & UPF_SPD_MASK) {
+				printk(KERN_NOTICE "%s sets custom speed on %s%d. This is deprecated.\n",
+				       current->comm, info->tty->driver.name, 
+				       info->port->line);
+			}
 			uart_change_speed(info, NULL);
+		}
 	} else
 		retval = uart_startup(info, 1);
  exit:
@@ -2024,11 +2027,11 @@
 	switch (rqst) {
 	case PM_SUSPEND:
 	case PM_RESUME:
-		err = uart_pm_set_state(state, (int)data, dev->state);
+		err = uart_pm_set_state(state, (int)(long)data, dev->state);
 		break;
 
 	case PM_SET_WAKEUP:
-		err = uart_pm_set_wakeup(state, (int)data);
+		err = uart_pm_set_wakeup(state, (int)(long)data);
 		break;
 	}
 	return err;
diff -urN linux-2.5.63-bk1/drivers/serial/sa1100.c linux-2.5.63-bk2/drivers/serial/sa1100.c
--- linux-2.5.63-bk1/drivers/serial/sa1100.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/serial/sa1100.c	Mon Mar 31 12:15:53 2003
@@ -441,7 +441,7 @@
 {
 	struct sa1100_port *sport = (struct sa1100_port *)port;
 	unsigned long flags;
-	unsigned int utcr0, old_utcr3, quot;
+	unsigned int utcr0, old_utcr3, baud, quot;
 	unsigned int old_csize = old ? old->c_cflag & CSIZE : CS8;
 
 	/*
@@ -470,7 +470,8 @@
 	/*
 	 * Ask the core to calculate the divisor for us.
 	 */
-	quot = uart_get_divisor(port, termios, old);
+	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); 
+	quot = uart_get_divisor(port, baud);
 
 	spin_lock_irqsave(&sport->port.lock, flags);
 
@@ -507,7 +508,7 @@
 	/*
 	 * Update the per-port timeout.
 	 */
-	uart_update_timeout(port, termios->c_cflag, quot);
+	uart_update_timeout(port, termios->c_cflag, baud);
 
 	/*
 	 * disable interrupts and drain transmitter
diff -urN linux-2.5.63-bk1/drivers/serial/sunsu.c linux-2.5.63-bk2/drivers/serial/sunsu.c
--- linux-2.5.63-bk1/drivers/serial/sunsu.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/drivers/serial/sunsu.c	Mon Mar 31 12:15:53 2003
@@ -852,7 +852,7 @@
 	/*
 	 * Update the per-port timeout.
 	 */
-	uart_update_timeout(port, cflag, quot);
+	uart_update_timeout(port, cflag, (port->uartclk / (16 * quot)));
 
 	up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
 	if (iflag & INPCK)
@@ -919,12 +919,13 @@
 sunsu_set_termios(struct uart_port *port, struct termios *termios,
 		  struct termios *old)
 {
-	unsigned int quot;
+	unsigned int baud, quot;
 
 	/*
 	 * Ask the core to calculate the divisor for us.
 	 */
-	quot = uart_get_divisor(port, termios, old);
+	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); 
+	quot = uart_get_divisor(port, baud);
 
 	sunsu_change_speed(port, termios->c_cflag, termios->c_iflag, quot);
 }
diff -urN linux-2.5.63-bk1/drivers/serial/sunzilog.c linux-2.5.63-bk2/drivers/serial/sunzilog.c
--- linux-2.5.63-bk1/drivers/serial/sunzilog.c	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/drivers/serial/sunzilog.c	Mon Mar 31 12:15:53 2003
@@ -48,7 +48,7 @@
 #include "sunzilog.h"
 
 /* On 32-bit sparcs we need to delay after register accesses
- * to accomodate sun4 systems, but we do not need to flush writes.
+ * to accommodate sun4 systems, but we do not need to flush writes.
  * On 64-bit sparc we only need to flush single writes to ensure
  * completion.
  */
diff -urN linux-2.5.63-bk1/drivers/serial/uart00.c linux-2.5.63-bk2/drivers/serial/uart00.c
--- linux-2.5.63-bk1/drivers/serial/uart00.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/drivers/serial/uart00.c	Mon Mar 31 12:15:53 2003
@@ -317,7 +317,7 @@
 uart00_set_termios(struct uart_port *port, struct termios *termios,
 		   struct termios *old)
 {
-	unsigned int uart_mc, old_ies, quot;
+	unsigned int uart_mc, old_ies, baud, quot;
 	unsigned long flags;
 
 	/*
@@ -328,7 +328,8 @@
 	/*
 	 * Ask the core to calculate the divisor for us.
 	 */
-	quot = uart_get_divisor(port, termios, old);
+	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); 
+	quot = uart_get_divisor(port, baud);
 
 	/* byte size and parity */
 	switch (termios->c_cflag & CSIZE) {
@@ -358,7 +359,7 @@
 	/*
 	 * Update the per-port timeout.
 	 */
-	uart_update_timeout(port, termios->c_cflag, quot);
+	uart_update_timeout(port, termios->c_cflag, baud);
 
 	port->read_status_mask = UART_RDS_OE_MSK;
 	if (termios->c_iflag & INPCK)
diff -urN linux-2.5.63-bk1/drivers/telephony/ixj.c linux-2.5.63-bk2/drivers/telephony/ixj.c
--- linux-2.5.63-bk1/drivers/telephony/ixj.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/drivers/telephony/ixj.c	Mon Mar 31 12:15:53 2003
@@ -7717,7 +7717,7 @@
 				printk("pnp attach failed %d \n", result);
 				break;
 			}
-			if (pnp_activate_dev(dev, NULL) < 0) {
+			if (pnp_activate_dev(dev) < 0) {
 				printk("pnp activate failed (out of resources?)\n");
 				pnp_device_detach(dev);
 				return -ENOMEM;
diff -urN linux-2.5.63-bk1/drivers/usb/class/bluetty.c linux-2.5.63-bk2/drivers/usb/class/bluetty.c
--- linux-2.5.63-bk1/drivers/usb/class/bluetty.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/drivers/usb/class/bluetty.c	Mon Mar 31 12:15:53 2003
@@ -267,7 +267,7 @@
 {
 	if (!bluetooth || 
 	    bluetooth_paranoia_check (bluetooth, function)) { 
-		/* then say that we dont have a valid usb_bluetooth thing, which will
+		/* then say that we don't have a valid usb_bluetooth thing, which will
 		 * end up generating -ENODEV return values */
 		return NULL;
 	}
diff -urN linux-2.5.63-bk1/drivers/usb/host/ehci-sched.c linux-2.5.63-bk2/drivers/usb/host/ehci-sched.c
--- linux-2.5.63-bk1/drivers/usb/host/ehci-sched.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/drivers/usb/host/ehci-sched.c	Mon Mar 31 12:15:53 2003
@@ -417,7 +417,7 @@
 		if (unlikely (ehci->pshadow [frame].ptr != 0)) {
 
 // FIXME -- just link toward the end, before any qh with a shorter period,
-// AND accomodate it already having been linked here (after some other qh)
+// AND accommodate it already having been linked here (after some other qh)
 // AS WELL AS updating the schedule checking logic
 
 			BUG ();
diff -urN linux-2.5.63-bk1/drivers/usb/image/mdc800.c linux-2.5.63-bk2/drivers/usb/image/mdc800.c
--- linux-2.5.63-bk1/drivers/usb/image/mdc800.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/drivers/usb/image/mdc800.c	Mon Mar 31 12:15:53 2003
@@ -213,7 +213,7 @@
 
 
 /*
- * Checks wether the camera responds busy
+ * Checks whether the camera responds busy
  */
 static int mdc800_isBusy (char* ch)
 {
@@ -229,7 +229,7 @@
 
 
 /*
- * Checks wether the Camera is ready
+ * Checks whether the Camera is ready
  */
 static int mdc800_isReady (char *ch)
 {
diff -urN linux-2.5.63-bk1/drivers/usb/media/konicawc.c linux-2.5.63-bk2/drivers/usb/media/konicawc.c
--- linux-2.5.63-bk1/drivers/usb/media/konicawc.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/drivers/usb/media/konicawc.c	Mon Mar 31 12:15:53 2003
@@ -266,7 +266,7 @@
 			sts &= ~0x40;
 		}
 		
-		/* work out the button status, but dont do
+		/* work out the button status, but don't do
 		   anything with it for now */
 
 		if(button != cam->buttonsts) {
@@ -607,7 +607,7 @@
 	}
 
 	if(newsize > MAX_FRAME_SIZE) {
-		DEBUG(1, "couldnt find size %d,%d", x, y);
+		DEBUG(1, "couldn't find size %d,%d", x, y);
 		return -EINVAL;
 	}
 
@@ -806,7 +806,7 @@
 				while(i--) {
 					usb_free_urb(cam->sts_urb[i]);
 				}
-				err("cant allocate urbs");
+				err("can't allocate urbs");
 				return -ENOMEM;
 			}
 		}
diff -urN linux-2.5.63-bk1/drivers/usb/serial/usb-serial.h linux-2.5.63-bk2/drivers/usb/serial/usb-serial.h
--- linux-2.5.63-bk1/drivers/usb/serial/usb-serial.h	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/drivers/usb/serial/usb-serial.h	Mon Mar 31 12:15:53 2003
@@ -342,7 +342,7 @@
 	if (!port || 
 		port_paranoia_check (port, function) ||
 		serial_paranoia_check (port->serial, function)) {
-		/* then say that we dont have a valid usb_serial thing, which will
+		/* then say that we don't have a valid usb_serial thing, which will
 		 * end up genrating -ENODEV return values */ 
 		return NULL;
 	}
diff -urN linux-2.5.63-bk1/drivers/video/macfb.c linux-2.5.63-bk2/drivers/video/macfb.c
--- linux-2.5.63-bk1/drivers/video/macfb.c	Mon Feb 24 11:05:08 2003
+++ linux-2.5.63-bk2/drivers/video/macfb.c	Mon Mar 31 12:15:53 2003
@@ -223,7 +223,7 @@
 	local_irq_save(flags);
 	
 	/* fbdev will set an entire colourmap, but X won't.  Hopefully
-	   this should accomodate both of them */
+	   this should accommodate both of them */
 	if (regno != lastreg+1) {
 		int i;
 		
diff -urN linux-2.5.63-bk1/drivers/video/pvr2fb.c linux-2.5.63-bk2/drivers/video/pvr2fb.c
--- linux-2.5.63-bk1/drivers/video/pvr2fb.c	Mon Feb 24 11:05:07 2003
+++ linux-2.5.63-bk2/drivers/video/pvr2fb.c	Mon Mar 31 12:15:53 2003
@@ -15,7 +15,7 @@
  * an odd scheme for converting hardware values to/from framebuffer values, here are
  * some hacked-up formulas:
  *
- *  The Dreamcast has screen offsets from each side of it's four borders and the start
+ *  The Dreamcast has screen offsets from each side of its four borders and the start
  *  offsets of the display window.  I used these values to calculate 'pseudo' values
  *  (think of them as placeholders) for the fb video mode, so that when it came time
  *  to convert these values back into their hardware values, I could just add mode-
diff -urN linux-2.5.63-bk1/drivers/video/retz3fb.c linux-2.5.63-bk2/drivers/video/retz3fb.c
--- linux-2.5.63-bk1/drivers/video/retz3fb.c	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/drivers/video/retz3fb.c	Mon Mar 31 12:15:53 2003
@@ -1379,7 +1379,7 @@
 		zinfo->base = ioremap(board_addr, board_size);
 		zinfo->regs = zinfo->base;
 		zinfo->fbmem = zinfo->base + VIDEO_MEM_OFFSET;
-		/* Get memory size - for now we asume its a 4MB board */
+		/* Get memory size - for now we asume it's a 4MB board */
 		zinfo->fbsize = 0x00400000; /* 4 MB */
 		zinfo->physregs = board_addr;
 		zinfo->physfbmem = board_addr + VIDEO_MEM_OFFSET;
diff -urN linux-2.5.63-bk1/drivers/video/sa1100fb.c linux-2.5.63-bk2/drivers/video/sa1100fb.c
--- linux-2.5.63-bk1/drivers/video/sa1100fb.c	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/drivers/video/sa1100fb.c	Mon Mar 31 12:15:53 2003
@@ -1370,7 +1370,7 @@
 #ifdef CONFIG_SA1100_HUW_WEBPANEL
 #error Move me into __sa1100fb_lcd_power and/or __sa1100fb_backlight_power
 	if (machine_is_huw_webpanel()) {
-		// dont forget to set the control lines to zero (?)
+		// don't forget to set the control lines to zero (?)
 		DPRINTK("ShutDown HuW LCD controller\n");
 		BCR_clear(BCR_TFT_ENA + BCR_CCFL_POW + BCR_PWM_BACKLIGHT);
 	}
diff -urN linux-2.5.63-bk1/drivers/video/sstfb.c linux-2.5.63-bk2/drivers/video/sstfb.c
--- linux-2.5.63-bk1/drivers/video/sstfb.c	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/drivers/video/sstfb.c	Mon Mar 31 12:15:53 2003
@@ -35,7 +35,7 @@
       wich one should i use ? is there any preferred one ? It seems ARGB is
       the one ...
 -TODO: in  set_var check the validity of timings (hsync vsync)...
--TODO: check and recheck the use of sst_wait_idle : we dont flush the fifo via
+-TODO: check and recheck the use of sst_wait_idle : we don't flush the fifo via
        a nop command. so it's ok as long as the commands we pass don't go
        through the fifo. warning: issuing a nop command seems to need pci_fifo
 -FIXME: in case of failure in the init sequence, be sure we return to a safe
diff -urN linux-2.5.63-bk1/fs/befs/ChangeLog linux-2.5.63-bk2/fs/befs/ChangeLog
--- linux-2.5.63-bk1/fs/befs/ChangeLog	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/fs/befs/ChangeLog	Mon Mar 31 12:15:53 2003
@@ -117,7 +117,7 @@
 * Rewrote datastream positon lookups.
 	(datastream.c) [WD]
 
-* Moved the TODO list to it's own file.
+* Moved the TODO list to its own file.
 
 
 Version 0.50 (2001-11-13)
diff -urN linux-2.5.63-bk1/fs/befs/linuxvfs.c linux-2.5.63-bk2/fs/befs/linuxvfs.c
--- linux-2.5.63-bk1/fs/befs/linuxvfs.c	Mon Feb 24 11:05:29 2003
+++ linux-2.5.63-bk2/fs/befs/linuxvfs.c	Mon Mar 31 12:15:53 2003
@@ -541,7 +541,7 @@
 	wchar_t uni;
 	int unilen, utflen;
 	char *result;
-	int maxlen = in_len; /* The utf8->nls conversion cant make more chars */
+	int maxlen = in_len; /* The utf8->nls conversion can't make more chars */
 
 	befs_debug(sb, "---> utf2nls()");
 
diff -urN linux-2.5.63-bk1/fs/bio.c linux-2.5.63-bk2/fs/bio.c
--- linux-2.5.63-bk1/fs/bio.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/fs/bio.c	Mon Mar 31 12:15:53 2003
@@ -334,7 +334,7 @@
  *	@bdev:  I/O target
  *
  *	Return the approximate number of pages we can send to this target.
- *	There's no guarentee that you will be able to fit this number of pages
+ *	There's no guarantee that you will be able to fit this number of pages
  *	into a bio, it does not account for dynamic restrictions that vary
  *	on offset.
  */
diff -urN linux-2.5.63-bk1/fs/buffer.c linux-2.5.63-bk2/fs/buffer.c
--- linux-2.5.63-bk1/fs/buffer.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/fs/buffer.c	Mon Mar 31 12:15:53 2003
@@ -2495,7 +2495,7 @@
 
 	/*
 	 * The page straddles i_size.  It must be zeroed out on each and every
-	 * writepage invokation because it may be mmapped.  "A file is mapped
+	 * writepage invocation because it may be mmapped.  "A file is mapped
 	 * in multiples of the page size.  For a file that is not a multiple of
 	 * the  page size, the remaining memory is zeroed when mapped, and
 	 * writes to that region are not written out to the file."
@@ -2584,7 +2584,7 @@
  * BH_Lock state bit), any buffer that appears to be clean when doing a
  * write request, and any buffer that appears to be up-to-date when doing
  * read request.  Further it marks as clean buffers that are processed for
- * writing (the buffer cache wont assume that they are actually clean until
+ * writing (the buffer cache won't assume that they are actually clean until
  * the buffer gets unlocked).
  *
  * ll_rw_block sets b_end_io to simple completion handler that marks
diff -urN linux-2.5.63-bk1/fs/cifs/cifspdu.h linux-2.5.63-bk2/fs/cifs/cifspdu.h
--- linux-2.5.63-bk1/fs/cifs/cifspdu.h	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/fs/cifs/cifspdu.h	Mon Mar 31 12:15:53 2003
@@ -1245,7 +1245,7 @@
 	__u8 Reserved3;
 	__u16 SubCommand;	/* one setup word */
 	__u16 ByteCount;
-	__u8 Pad[3];		/* Win2K has sent 0x0F01 (max resp length perhaps?) followed by one byte pad - doesnt seem to matter though */
+	__u8 Pad[3];		/* Win2K has sent 0x0F01 (max resp length perhaps?) followed by one byte pad - doesn't seem to matter though */
 	__u16 MaxReferralLevel;
 	char RequestFileName[1];
 } TRANSACTION2_GET_DFS_REFER_REQ;
diff -urN linux-2.5.63-bk1/fs/dcache.c linux-2.5.63-bk2/fs/dcache.c
--- linux-2.5.63-bk1/fs/dcache.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/fs/dcache.c	Mon Mar 31 12:15:53 2003
@@ -1004,8 +1004,11 @@
 		 */ 
 		if (unlikely(move_count != dentry->d_move_count)) 
 			break;
-		if (!d_unhashed(dentry))
-			found = dget(dentry);
+		if (!d_unhashed(dentry)) {
+			atomic_inc(&dentry->d_count);
+			dentry->d_vfs_flags |= DCACHE_REFERENCED;
+			found = dentry;
+		}
 		spin_unlock(&dentry->d_lock);
 		break;
  	}
diff -urN linux-2.5.63-bk1/fs/devfs/base.c linux-2.5.63-bk2/fs/devfs/base.c
--- linux-2.5.63-bk1/fs/devfs/base.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/fs/devfs/base.c	Mon Mar 31 12:15:53 2003
@@ -1312,7 +1312,7 @@
  *	free_dentry - Free the dentry for a device entry and invalidate inode.
  *	@de: The entry.
  *
- *	This must only be called after the entry has been unhooked from it's
+ *	This must only be called after the entry has been unhooked from its
  *	 parent directory.
  */
 
@@ -1584,7 +1584,7 @@
 
 
 /**
- *	_devfs_unregister - Unregister a device entry from it's parent.
+ *	_devfs_unregister - Unregister a device entry from its parent.
  *	@dir: The parent directory.
  *	@de: The entry to unregister.
  *
@@ -2658,7 +2658,7 @@
     else de->u.dir.no_more_additions = TRUE;
     write_unlock (&de->u.dir.lock);
     if (err) return err;
-    /*  Now unhook the directory from it's parent  */
+    /*  Now unhook the directory from its parent  */
     write_lock (&de->parent->u.dir.lock);
     if ( !_devfs_unhook (de) ) err = -ENOENT;
     write_unlock (&de->parent->u.dir.lock);
diff -urN linux-2.5.63-bk1/fs/direct-io.c linux-2.5.63-bk2/fs/direct-io.c
--- linux-2.5.63-bk1/fs/direct-io.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/fs/direct-io.c	Mon Mar 31 12:15:53 2003
@@ -42,7 +42,7 @@
 /*
  * This code generally works in units of "dio_blocks".  A dio_block is
  * somewhere between the hard sector size and the filesystem block size.  it
- * is determined on a per-invokation basis.   When talking to the filesystem
+ * is determined on a per-invocation basis.   When talking to the filesystem
  * we need to convert dio_blocks to fs_blocks by scaling the dio_block quantity
  * down by dio->blkfactor.  Similarly, fs-blocksize quantities are converted
  * to bio_block quantities by shifting left by blkfactor.
diff -urN linux-2.5.63-bk1/fs/ext2/acl.c linux-2.5.63-bk2/fs/ext2/acl.c
--- linux-2.5.63-bk1/fs/ext2/acl.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/fs/ext2/acl.c	Mon Mar 31 12:15:53 2003
@@ -419,7 +419,7 @@
  */
 static size_t
 ext2_xattr_list_acl_access(char *list, struct inode *inode,
-			   const char *name, int name_len, int flags)
+			   const char *name, int name_len)
 {
 	const size_t size = sizeof(XATTR_NAME_ACL_ACCESS);
 
@@ -432,7 +432,7 @@
 
 static size_t
 ext2_xattr_list_acl_default(char *list, struct inode *inode,
-			    const char *name, int name_len, int flags)
+			    const char *name, int name_len)
 {
 	const size_t size = sizeof(XATTR_NAME_ACL_DEFAULT);
 
@@ -465,7 +465,7 @@
 
 static int
 ext2_xattr_get_acl_access(struct inode *inode, const char *name,
-			  void *buffer, size_t size, int flags)
+			  void *buffer, size_t size)
 {
 	if (strcmp(name, "") != 0)
 		return -EINVAL;
@@ -474,7 +474,7 @@
 
 static int
 ext2_xattr_get_acl_default(struct inode *inode, const char *name,
-			   void *buffer, size_t size, int flags)
+			   void *buffer, size_t size)
 {
 	if (strcmp(name, "") != 0)
 		return -EINVAL;
diff -urN linux-2.5.63-bk1/fs/ext2/xattr.c linux-2.5.63-bk2/fs/ext2/xattr.c
--- linux-2.5.63-bk1/fs/ext2/xattr.c	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/fs/ext2/xattr.c	Mon Mar 31 12:15:53 2003
@@ -199,7 +199,7 @@
  */
 ssize_t
 ext2_getxattr(struct dentry *dentry, const char *name,
-	      void *buffer, size_t size, int flags)
+	      void *buffer, size_t size)
 {
 	struct ext2_xattr_handler *handler;
 	struct inode *inode = dentry->d_inode;
@@ -207,7 +207,7 @@
 	handler = ext2_xattr_resolve_name(&name);
 	if (!handler)
 		return -EOPNOTSUPP;
-	return handler->get(inode, name, buffer, size, flags);
+	return handler->get(inode, name, buffer, size);
 }
 
 /*
@@ -217,9 +217,9 @@
  * BKL held [before 2.5.x]
  */
 ssize_t
-ext2_listxattr(struct dentry *dentry, char *buffer, size_t size, int flags)
+ext2_listxattr(struct dentry *dentry, char *buffer, size_t size)
 {
-	return ext2_xattr_list(dentry->d_inode, buffer, size, flags);
+	return ext2_xattr_list(dentry->d_inode, buffer, size);
 }
 
 /*
@@ -250,7 +250,7 @@
  * BKL held [before 2.5.x]
  */
 int
-ext2_removexattr(struct dentry *dentry, const char *name, int flags)
+ext2_removexattr(struct dentry *dentry, const char *name)
 {
 	struct ext2_xattr_handler *handler;
 	struct inode *inode = dentry->d_inode;
@@ -258,7 +258,7 @@
 	handler = ext2_xattr_resolve_name(&name);
 	if (!handler)
 		return -EOPNOTSUPP;
-	return handler->set(inode, name, NULL, 0, flags | XATTR_REPLACE);
+	return handler->set(inode, name, NULL, 0, XATTR_REPLACE);
 }
 
 /*
@@ -371,8 +371,7 @@
  * used / required on success.
  */
 int
-ext2_xattr_list(struct inode *inode, char *buffer, size_t buffer_size,
-		int flags)
+ext2_xattr_list(struct inode *inode, char *buffer, size_t buffer_size)
 {
 	struct buffer_head *bh = NULL;
 	struct ext2_xattr_entry *entry;
@@ -412,7 +411,7 @@
 		handler = ext2_xattr_handler(entry->e_name_index);
 		if (handler)
 			size += handler->list(NULL, inode, entry->e_name,
-					      entry->e_name_len, flags);
+					      entry->e_name_len);
 	}
 
 	if (ext2_xattr_cache_insert(bh))
@@ -435,7 +434,7 @@
 		handler = ext2_xattr_handler(entry->e_name_index);
 		if (handler)
 			buf += handler->list(buf, inode, entry->e_name,
-					     entry->e_name_len, flags);
+					     entry->e_name_len);
 	}
 	error = size;
 
diff -urN linux-2.5.63-bk1/fs/ext2/xattr.h linux-2.5.63-bk2/fs/ext2/xattr.h
--- linux-2.5.63-bk1/fs/ext2/xattr.h	Mon Feb 24 11:05:08 2003
+++ linux-2.5.63-bk2/fs/ext2/xattr.h	Mon Mar 31 12:15:53 2003
@@ -58,9 +58,9 @@
 struct ext2_xattr_handler {
 	char *prefix;
 	size_t (*list)(char *list, struct inode *inode, const char *name,
-		       int name_len, int flags);
+		       int name_len);
 	int (*get)(struct inode *inode, const char *name, void *buffer,
-		   size_t size, int flags);
+		   size_t size);
 	int (*set)(struct inode *inode, const char *name, const void *buffer,
 		   size_t size, int flags);
 };
@@ -69,12 +69,12 @@
 extern void ext2_xattr_unregister(int, struct ext2_xattr_handler *);
 
 extern int ext2_setxattr(struct dentry *, const char *, const void *, size_t, int);
-extern ssize_t ext2_getxattr(struct dentry *, const char *, void *, size_t, int);
-extern ssize_t ext2_listxattr(struct dentry *, char *, size_t, int);
-extern int ext2_removexattr(struct dentry *, const char *, int);
+extern ssize_t ext2_getxattr(struct dentry *, const char *, void *, size_t);
+extern ssize_t ext2_listxattr(struct dentry *, char *, size_t);
+extern int ext2_removexattr(struct dentry *, const char *);
 
 extern int ext2_xattr_get(struct inode *, int, const char *, void *, size_t);
-extern int ext2_xattr_list(struct inode *, char *, size_t, int flags);
+extern int ext2_xattr_list(struct inode *, char *, size_t);
 extern int ext2_xattr_set(struct inode *, int, const char *, const void *, size_t, int);
 
 extern void ext2_xattr_delete_inode(struct inode *);
diff -urN linux-2.5.63-bk1/fs/ext2/xattr_trusted.c linux-2.5.63-bk2/fs/ext2/xattr_trusted.c
--- linux-2.5.63-bk1/fs/ext2/xattr_trusted.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/fs/ext2/xattr_trusted.c	Mon Mar 31 12:15:53 2003
@@ -16,11 +16,11 @@
 
 static size_t
 ext2_xattr_trusted_list(char *list, struct inode *inode,
-			const char *name, int name_len, int flags)
+			const char *name, int name_len)
 {
 	const int prefix_len = sizeof(XATTR_TRUSTED_PREFIX)-1;
 
-	if (!((flags & XATTR_KERNEL_CONTEXT) || capable(CAP_SYS_ADMIN)))
+	if (!capable(CAP_SYS_ADMIN))
 		return 0;
 
 	if (list) {
@@ -33,11 +33,11 @@
 
 static int
 ext2_xattr_trusted_get(struct inode *inode, const char *name,
-		       void *buffer, size_t size, int flags)
+		       void *buffer, size_t size)
 {
 	if (strcmp(name, "") == 0)
 		return -EINVAL;
-	if (!((flags & XATTR_KERNEL_CONTEXT) || capable(CAP_SYS_ADMIN)))
+	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
 	return ext2_xattr_get(inode, EXT2_XATTR_INDEX_TRUSTED, name,
 			      buffer, size);
@@ -49,7 +49,7 @@
 {
 	if (strcmp(name, "") == 0)
 		return -EINVAL;
-	if (!((flags & XATTR_KERNEL_CONTEXT) || capable(CAP_SYS_ADMIN)))
+	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
 	return ext2_xattr_set(inode, EXT2_XATTR_INDEX_TRUSTED, name,
 			      value, size, flags);
diff -urN linux-2.5.63-bk1/fs/ext2/xattr_user.c linux-2.5.63-bk2/fs/ext2/xattr_user.c
--- linux-2.5.63-bk1/fs/ext2/xattr_user.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/fs/ext2/xattr_user.c	Mon Mar 31 12:15:53 2003
@@ -19,12 +19,11 @@
 
 static size_t
 ext2_xattr_user_list(char *list, struct inode *inode,
-		     const char *name, int name_len, int flags)
+		     const char *name, int name_len)
 {
 	const int prefix_len = sizeof(XATTR_USER_PREFIX)-1;
 
-	if (!(flags & XATTR_KERNEL_CONTEXT) &&
-	    !test_opt(inode->i_sb, XATTR_USER))
+	if (!test_opt(inode->i_sb, XATTR_USER))
 		return 0;
 
 	if (list) {
@@ -37,49 +36,46 @@
 
 static int
 ext2_xattr_user_get(struct inode *inode, const char *name,
-		    void *buffer, size_t size, int flags)
+		    void *buffer, size_t size)
 {
+	int error;
+
 	if (strcmp(name, "") == 0)
 		return -EINVAL;
-	if (!(flags & XATTR_KERNEL_CONTEXT)) {
-		int error;
-
-		if (!test_opt(inode->i_sb, XATTR_USER))
-			return -EOPNOTSUPP;
+	if (!test_opt(inode->i_sb, XATTR_USER))
+		return -EOPNOTSUPP;
 #ifdef CONFIG_EXT2_FS_POSIX_ACL
-		error = ext2_permission_locked(inode, MAY_READ);
+	error = ext2_permission_locked(inode, MAY_READ);
 #else
-		error = permission(inode, MAY_READ);
+	error = permission(inode, MAY_READ);
 #endif
-		if (error)
-			return error;
-	}
-	return ext2_xattr_get(inode, EXT2_XATTR_INDEX_USER, name,
-			      buffer, size);
+	if (error)
+		return error;
+
+	return ext2_xattr_get(inode, EXT2_XATTR_INDEX_USER, name, buffer, size);
 }
 
 static int
 ext2_xattr_user_set(struct inode *inode, const char *name,
 		    const void *value, size_t size, int flags)
 {
+	int error;
+
 	if (strcmp(name, "") == 0)
 		return -EINVAL;
+	if (!test_opt(inode->i_sb, XATTR_USER))
+		return -EOPNOTSUPP;
 	if ( !S_ISREG(inode->i_mode) &&
 	    (!S_ISDIR(inode->i_mode) || inode->i_mode & S_ISVTX))
 		return -EPERM;
-	if (!(flags & XATTR_KERNEL_CONTEXT)) {
-		int error;
-
-		if (!test_opt(inode->i_sb, XATTR_USER))
-			return -EOPNOTSUPP;
 #ifdef CONFIG_EXT2_FS_POSIX_ACL
-		error = ext2_permission_locked(inode, MAY_WRITE);
+	error = ext2_permission_locked(inode, MAY_WRITE);
 #else
-		error = permission(inode, MAY_WRITE);
+	error = permission(inode, MAY_WRITE);
 #endif
-		if (error)
-			return error;
-	}
+	if (error)
+		return error;
+
 	return ext2_xattr_set(inode, EXT2_XATTR_INDEX_USER, name,
 			      value, size, flags);
 }
diff -urN linux-2.5.63-bk1/fs/ext3/acl.c linux-2.5.63-bk2/fs/ext3/acl.c
--- linux-2.5.63-bk1/fs/ext3/acl.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/fs/ext3/acl.c	Mon Mar 31 12:15:53 2003
@@ -431,7 +431,7 @@
  */
 static size_t
 ext3_xattr_list_acl_access(char *list, struct inode *inode,
-			   const char *name, int name_len, int flags)
+			   const char *name, int name_len)
 {
 	const size_t size = sizeof(XATTR_NAME_ACL_ACCESS);
 
@@ -444,7 +444,7 @@
 
 static size_t
 ext3_xattr_list_acl_default(char *list, struct inode *inode,
-			    const char *name, int name_len, int flags)
+			    const char *name, int name_len)
 {
 	const size_t size = sizeof(XATTR_NAME_ACL_DEFAULT);
 
@@ -477,7 +477,7 @@
 
 static int
 ext3_xattr_get_acl_access(struct inode *inode, const char *name,
-			  void *buffer, size_t size, int flags)
+			  void *buffer, size_t size)
 {
 	if (strcmp(name, "") != 0)
 		return -EINVAL;
@@ -486,7 +486,7 @@
 
 static int
 ext3_xattr_get_acl_default(struct inode *inode, const char *name,
-			   void *buffer, size_t size, int flags)
+			   void *buffer, size_t size)
 {
 	if (strcmp(name, "") != 0)
 		return -EINVAL;
diff -urN linux-2.5.63-bk1/fs/ext3/dir.c linux-2.5.63-bk2/fs/ext3/dir.c
--- linux-2.5.63-bk1/fs/ext3/dir.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/fs/ext3/dir.c	Mon Mar 31 12:15:53 2003
@@ -33,12 +33,17 @@
 static int ext3_readdir(struct file *, void *, filldir_t);
 static int ext3_dx_readdir(struct file * filp,
 			   void * dirent, filldir_t filldir);
+static int ext3_release_dir (struct inode * inode,
+				struct file * filp);
 
 struct file_operations ext3_dir_operations = {
 	.read		= generic_read_dir,
 	.readdir	= ext3_readdir,		/* we take BKL. needed?*/
 	.ioctl		= ext3_ioctl,		/* BKL held */
 	.fsync		= ext3_sync_file,		/* BKL held */
+#ifdef CONFIG_EXT3_INDEX
+	.release	= ext3_release_dir,
+#endif
 };
 
 
@@ -275,7 +280,11 @@
 		 */
 		parent = n->rb_parent;
 		fname = rb_entry(n, struct fname, rb_hash);
-		kfree(fname);
+		while (fname) {
+			struct fname * old = fname;
+			fname = fname->next;
+			kfree (old);
+		}
 		if (!parent)
 			root->rb_node = 0;
 		else if (parent->rb_left == n)
@@ -481,4 +490,13 @@
 	UPDATE_ATIME(inode);
 	return 0;
 }
+
+static int ext3_release_dir (struct inode * inode, struct file * filp)
+{
+       if (is_dx(inode) && filp->private_data)
+		ext3_htree_free_dir_info(filp->private_data);
+
+	return 0;
+}
+
 #endif
diff -urN linux-2.5.63-bk1/fs/ext3/file.c linux-2.5.63-bk2/fs/ext3/file.c
--- linux-2.5.63-bk1/fs/ext3/file.c	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/fs/ext3/file.c	Mon Mar 31 12:15:53 2003
@@ -55,29 +55,61 @@
 	return 0;
 }
 
-/*
- * ext3_file_write().
- *
- * Most things are done in ext3_prepare_write() and ext3_commit_write().
- */
-
 static ssize_t
 ext3_file_write(struct kiocb *iocb, const char *buf, size_t count, loff_t pos)
 {
 	struct file *file = iocb->ki_filp;
 	struct inode *inode = file->f_dentry->d_inode;
+	int ret, err;
+
+	ret = generic_file_aio_write(iocb, buf, count, pos);
 
 	/*
-	 * Nasty: if the file is subject to synchronous writes then we need
-	 * to force generic_osync_inode() to call ext3_write_inode().
-	 * We do that by marking the inode dirty.  This adds much more
-	 * computational expense than we need, but we're going to sync
-	 * anyway.
+	 * Skip flushing if there was an error, or if nothing was written.
 	 */
-	if (IS_SYNC(inode) || (file->f_flags & O_SYNC))
-		mark_inode_dirty(inode);
+	if (ret <= 0)
+		return ret;
+	
+	/*
+	 * If the inode is IS_SYNC, or is O_SYNC and we are doing data
+	 * journalling then we need to make sure that we force the transaction
+	 * to disk to keep all metadata uptodate synchronously.
+	 */
+	if (file->f_flags & O_SYNC) {
+		/*
+		 * If we are non-data-journaled, then the dirty data has
+		 * already been flushed to backing store by generic_osync_inode,
+		 * and the inode has been flushed too if there have been any
+		 * modifications other than mere timestamp updates.
+		 *
+		 * Open question --- do we care about flushing timestamps too
+		 * if the inode is IS_SYNC?
+		 */
+		if (!ext3_should_journal_data(inode))
+			return ret;
+
+		goto force_commit;
+	}
 
-	return generic_file_aio_write(iocb, buf, count, pos);
+	/*
+	 * So we know that there has been no forced data flush.  If the inode
+	 * is marked IS_SYNC, we need to force one ourselves.
+	 */
+	if (!IS_SYNC(inode))
+		return ret;
+	
+	/*
+	 * Open question #2 --- should we force data to disk here too?  If we
+	 * don't, the only impact is that data=writeback filesystems won't
+	 * flush data to disk automatically on IS_SYNC, only metadata (but
+	 * historically, that is what ext2 has done.)
+	 */
+	
+force_commit:
+	err = ext3_force_commit(inode->i_sb);
+	if (err) 
+		return err;
+	return ret;
 }
 
 struct file_operations ext3_file_operations = {
diff -urN linux-2.5.63-bk1/fs/ext3/xattr.c linux-2.5.63-bk2/fs/ext3/xattr.c
--- linux-2.5.63-bk1/fs/ext3/xattr.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/fs/ext3/xattr.c	Mon Mar 31 12:15:53 2003
@@ -195,7 +195,7 @@
  */
 ssize_t
 ext3_getxattr(struct dentry *dentry, const char *name,
-	      void *buffer, size_t size, int flags)
+	      void *buffer, size_t size)
 {
 	struct ext3_xattr_handler *handler;
 	struct inode *inode = dentry->d_inode;
@@ -203,7 +203,7 @@
 	handler = ext3_xattr_resolve_name(&name);
 	if (!handler)
 		return -EOPNOTSUPP;
-	return handler->get(inode, name, buffer, size, flags);
+	return handler->get(inode, name, buffer, size);
 }
 
 /*
@@ -212,9 +212,9 @@
  * dentry->d_inode->i_sem down
  */
 ssize_t
-ext3_listxattr(struct dentry *dentry, char *buffer, size_t size, int flags)
+ext3_listxattr(struct dentry *dentry, char *buffer, size_t size)
 {
-	return ext3_xattr_list(dentry->d_inode, buffer, size, flags);
+	return ext3_xattr_list(dentry->d_inode, buffer, size);
 }
 
 /*
@@ -243,7 +243,7 @@
  * dentry->d_inode->i_sem down
  */
 int
-ext3_removexattr(struct dentry *dentry, const char *name, int flags)
+ext3_removexattr(struct dentry *dentry, const char *name)
 {
 	struct ext3_xattr_handler *handler;
 	struct inode *inode = dentry->d_inode;
@@ -251,7 +251,7 @@
 	handler = ext3_xattr_resolve_name(&name);
 	if (!handler)
 		return -EOPNOTSUPP;
-	return handler->set(inode, name, NULL, 0, flags | XATTR_REPLACE);
+	return handler->set(inode, name, NULL, 0, XATTR_REPLACE);
 }
 
 /*
@@ -364,8 +364,7 @@
  * used / required on success.
  */
 int
-ext3_xattr_list(struct inode *inode, char *buffer, size_t buffer_size,
-		int flags)
+ext3_xattr_list(struct inode *inode, char *buffer, size_t buffer_size)
 {
 	struct buffer_head *bh = NULL;
 	struct ext3_xattr_entry *entry;
@@ -405,7 +404,7 @@
 		handler = ext3_xattr_handler(entry->e_name_index);
 		if (handler)
 			size += handler->list(NULL, inode, entry->e_name,
-					      entry->e_name_len, flags);
+					      entry->e_name_len);
 	}
 
 	if (ext3_xattr_cache_insert(bh))
@@ -428,7 +427,7 @@
 		handler = ext3_xattr_handler(entry->e_name_index);
 		if (handler)
 			buf += handler->list(buf, inode, entry->e_name,
-					     entry->e_name_len, flags);
+					     entry->e_name_len);
 	}
 	error = size;
 
diff -urN linux-2.5.63-bk1/fs/ext3/xattr.h linux-2.5.63-bk2/fs/ext3/xattr.h
--- linux-2.5.63-bk1/fs/ext3/xattr.h	Mon Feb 24 11:05:45 2003
+++ linux-2.5.63-bk2/fs/ext3/xattr.h	Mon Mar 31 12:15:53 2003
@@ -57,9 +57,9 @@
 struct ext3_xattr_handler {
 	char *prefix;
 	size_t (*list)(char *list, struct inode *inode, const char *name,
-		       int name_len, int flags);
+		       int name_len);
 	int (*get)(struct inode *inode, const char *name, void *buffer,
-		   size_t size, int flags);
+		   size_t size);
 	int (*set)(struct inode *inode, const char *name, const void *buffer,
 		   size_t size, int flags);
 };
@@ -68,12 +68,12 @@
 extern void ext3_xattr_unregister(int, struct ext3_xattr_handler *);
 
 extern int ext3_setxattr(struct dentry *, const char *, const void *, size_t, int);
-extern ssize_t ext3_getxattr(struct dentry *, const char *, void *, size_t, int);
-extern ssize_t ext3_listxattr(struct dentry *, char *, size_t, int);
-extern int ext3_removexattr(struct dentry *, const char *, int);
+extern ssize_t ext3_getxattr(struct dentry *, const char *, void *, size_t);
+extern ssize_t ext3_listxattr(struct dentry *, char *, size_t);
+extern int ext3_removexattr(struct dentry *, const char *);
 
 extern int ext3_xattr_get(struct inode *, int, const char *, void *, size_t);
-extern int ext3_xattr_list(struct inode *, char *, size_t, int flags);
+extern int ext3_xattr_list(struct inode *, char *, size_t);
 extern int ext3_xattr_set(struct inode *, int, const char *, const void *, size_t, int);
 extern int ext3_xattr_set_handle(handle_t *, struct inode *, int, const char *, const void *, size_t, int);
 
@@ -97,7 +97,7 @@
 }
 
 static inline int
-ext3_xattr_list(struct inode *inode, void *buffer, size_t size, int flags)
+ext3_xattr_list(struct inode *inode, void *buffer, size_t size)
 {
 	return -EOPNOTSUPP;
 }
diff -urN linux-2.5.63-bk1/fs/ext3/xattr_trusted.c linux-2.5.63-bk2/fs/ext3/xattr_trusted.c
--- linux-2.5.63-bk1/fs/ext3/xattr_trusted.c	Mon Feb 24 11:05:37 2003
+++ linux-2.5.63-bk2/fs/ext3/xattr_trusted.c	Mon Mar 31 12:15:53 2003
@@ -17,11 +17,11 @@
 
 static size_t
 ext3_xattr_trusted_list(char *list, struct inode *inode,
-			const char *name, int name_len, int flags)
+			const char *name, int name_len)
 {
 	const int prefix_len = sizeof(XATTR_TRUSTED_PREFIX)-1;
 
-	if (!((flags & XATTR_KERNEL_CONTEXT) || capable(CAP_SYS_ADMIN)))
+	if (!capable(CAP_SYS_ADMIN))
 		return 0;
 
 	if (list) {
@@ -34,11 +34,11 @@
 
 static int
 ext3_xattr_trusted_get(struct inode *inode, const char *name,
-		       void *buffer, size_t size, int flags)
+		       void *buffer, size_t size)
 {
 	if (strcmp(name, "") == 0)
 		return -EINVAL;
-	if (!((flags & XATTR_KERNEL_CONTEXT) || capable(CAP_SYS_ADMIN)))
+	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
 	return ext3_xattr_get(inode, EXT3_XATTR_INDEX_TRUSTED, name,
 			      buffer, size);
@@ -50,7 +50,7 @@
 {
 	if (strcmp(name, "") == 0)
 		return -EINVAL;
-	if (!((flags & XATTR_KERNEL_CONTEXT) || capable(CAP_SYS_ADMIN)))
+	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
 	return ext3_xattr_set(inode, EXT3_XATTR_INDEX_TRUSTED, name,
 			      value, size, flags);
diff -urN linux-2.5.63-bk1/fs/ext3/xattr_user.c linux-2.5.63-bk2/fs/ext3/xattr_user.c
--- linux-2.5.63-bk1/fs/ext3/xattr_user.c	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/fs/ext3/xattr_user.c	Mon Mar 31 12:15:53 2003
@@ -21,12 +21,11 @@
 
 static size_t
 ext3_xattr_user_list(char *list, struct inode *inode,
-		     const char *name, int name_len, int flags)
+		     const char *name, int name_len)
 {
 	const int prefix_len = sizeof(XATTR_USER_PREFIX)-1;
 
-	if (!(flags & XATTR_KERNEL_CONTEXT) &&
-	    !test_opt(inode->i_sb, XATTR_USER))
+	if (!test_opt(inode->i_sb, XATTR_USER))
 		return 0;
 
 	if (list) {
@@ -39,49 +38,46 @@
 
 static int
 ext3_xattr_user_get(struct inode *inode, const char *name,
-		    void *buffer, size_t size, int flags)
+		    void *buffer, size_t size)
 {
+	int error;
+
 	if (strcmp(name, "") == 0)
 		return -EINVAL;
-	if (!(flags & XATTR_KERNEL_CONTEXT)) {
-		int error;
-
-		if (!test_opt(inode->i_sb, XATTR_USER))
-			return -EOPNOTSUPP;
+	if (!test_opt(inode->i_sb, XATTR_USER))
+		return -EOPNOTSUPP;
 #ifdef CONFIG_EXT3_FS_POSIX_ACL
-		error = ext3_permission_locked(inode, MAY_READ);
+	error = ext3_permission_locked(inode, MAY_READ);
 #else
-		error = permission(inode, MAY_READ);
+	error = permission(inode, MAY_READ);
 #endif
-		if (error)
-			return error;
-	}
-	return ext3_xattr_get(inode, EXT3_XATTR_INDEX_USER, name,
-			      buffer, size);
+	if (error)
+		return error;
+
+	return ext3_xattr_get(inode, EXT3_XATTR_INDEX_USER, name, buffer, size);
 }
 
 static int
 ext3_xattr_user_set(struct inode *inode, const char *name,
 		    const void *value, size_t size, int flags)
 {
+	int error;
+
 	if (strcmp(name, "") == 0)
 		return -EINVAL;
+	if (!test_opt(inode->i_sb, XATTR_USER))
+		return -EOPNOTSUPP;
 	if ( !S_ISREG(inode->i_mode) &&
 	    (!S_ISDIR(inode->i_mode) || inode->i_mode & S_ISVTX))
 		return -EPERM;
-	if (!(flags & XATTR_KERNEL_CONTEXT)) {
-		int error;
-
-		if (!test_opt(inode->i_sb, XATTR_USER))
-			return -EOPNOTSUPP;
 #ifdef CONFIG_EXT3_FS_POSIX_ACL
-		error = ext3_permission_locked(inode, MAY_WRITE);
+	error = ext3_permission_locked(inode, MAY_WRITE);
 #else
-		error = permission(inode, MAY_WRITE);
+	error = permission(inode, MAY_WRITE);
 #endif
-		if (error)
-			return error;
-	}
+	if (error)
+		return error;
+
 	return ext3_xattr_set(inode, EXT3_XATTR_INDEX_USER, name,
 			      value, size, flags);
 }
diff -urN linux-2.5.63-bk1/fs/hpfs/dnode.c linux-2.5.63-bk2/fs/hpfs/dnode.c
--- linux-2.5.63-bk1/fs/hpfs/dnode.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/fs/hpfs/dnode.c	Mon Mar 31 12:15:53 2003
@@ -188,7 +188,7 @@
 	return de;
 }
 
-/* Delete dirent and don't care about it's subtree */
+/* Delete dirent and don't care about its subtree */
 
 void hpfs_delete_de(struct super_block *s, struct dnode *d, struct hpfs_dirent *de)
 {
diff -urN linux-2.5.63-bk1/fs/inode.c linux-2.5.63-bk2/fs/inode.c
--- linux-2.5.63-bk1/fs/inode.c	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/fs/inode.c	Mon Mar 31 12:15:53 2003
@@ -81,6 +81,16 @@
 spinlock_t inode_lock = SPIN_LOCK_UNLOCKED;
 
 /*
+ * iprune_sem provides exclusion between the kswapd or try_to_free_pages
+ * icache shrinking path, and the umount path.  Without this exclusion,
+ * by the time prune_icache calls iput for the inode whose pages it has
+ * been invalidating, or by the time it calls clear_inode & destroy_inode
+ * from its final dispose_list, the struct super_block they refer to
+ * (for inode->i_sb->s_op) may already have been freed and reused.
+ */
+static DECLARE_MUTEX(iprune_sem);
+
+/*
  * Statistics gathering..
  */
 struct inodes_stat_t inodes_stat;
@@ -320,6 +330,7 @@
 	int busy;
 	LIST_HEAD(throw_away);
 
+	down(&iprune_sem);
 	spin_lock(&inode_lock);
 	busy = invalidate_list(&inode_in_use, sb, &throw_away);
 	busy |= invalidate_list(&inode_unused, sb, &throw_away);
@@ -328,6 +339,7 @@
 	spin_unlock(&inode_lock);
 
 	dispose_list(&throw_away);
+	up(&iprune_sem);
 
 	return busy;
 }
@@ -395,6 +407,7 @@
 	int nr_scanned;
 	unsigned long reap = 0;
 
+	down(&iprune_sem);
 	spin_lock(&inode_lock);
 	for (nr_scanned = 0; nr_scanned < nr_to_scan; nr_scanned++) {
 		struct inode *inode;
@@ -429,7 +442,10 @@
 	}
 	inodes_stat.nr_unused -= nr_pruned;
 	spin_unlock(&inode_lock);
+
 	dispose_list(&freeable);
+	up(&iprune_sem);
+
 	if (current_is_kswapd)
 		mod_page_state(kswapd_inodesteal, reap);
 	else
diff -urN linux-2.5.63-bk1/fs/jfs/jfs_dmap.c linux-2.5.63-bk2/fs/jfs/jfs_dmap.c
--- linux-2.5.63-bk1/fs/jfs/jfs_dmap.c	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/fs/jfs/jfs_dmap.c	Mon Mar 31 12:15:53 2003
@@ -1112,7 +1112,7 @@
 	 * current allocation in place if the number of additional blocks
 	 * can fit into a dmap, the last block of the current allocation
 	 * is not the last block of the file system, and the start of the
-	 * inplace extension is not on an allocation group boundry.
+	 * inplace extension is not on an allocation group boundary.
 	 */
 	if (addnblocks > BPERDMAP || extblkno >= bmp->db_mapsize ||
 	    (extblkno & (bmp->db_agsize - 1)) == 0) {
diff -urN linux-2.5.63-bk1/fs/jfs/jfs_xattr.h linux-2.5.63-bk2/fs/jfs/jfs_xattr.h
--- linux-2.5.63-bk1/fs/jfs/jfs_xattr.h	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/fs/jfs/jfs_xattr.h	Mon Mar 31 12:15:53 2003
@@ -57,8 +57,8 @@
 extern int jfs_setxattr(struct dentry *, const char *, const void *, size_t,
 			int);
 extern ssize_t __jfs_getxattr(struct inode *, const char *, void *, size_t);
-extern ssize_t jfs_getxattr(struct dentry *, const char *, void *, size_t, int);
-extern ssize_t jfs_listxattr(struct dentry *, char *, size_t, int);
-extern int jfs_removexattr(struct dentry *, const char *, int);
+extern ssize_t jfs_getxattr(struct dentry *, const char *, void *, size_t);
+extern ssize_t jfs_listxattr(struct dentry *, char *, size_t);
+extern int jfs_removexattr(struct dentry *, const char *);
 
 #endif	/* H_JFS_XATTR */
diff -urN linux-2.5.63-bk1/fs/jfs/xattr.c linux-2.5.63-bk2/fs/jfs/xattr.c
--- linux-2.5.63-bk1/fs/jfs/xattr.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/fs/jfs/xattr.c	Mon Mar 31 12:15:53 2003
@@ -962,13 +962,12 @@
 }
 
 ssize_t jfs_getxattr(struct dentry *dentry, const char *name, void *data,
-		     size_t buf_size, int flags)
+		     size_t buf_size)
 {
 	return __jfs_getxattr(dentry->d_inode, name, data, buf_size);
 }
 
-ssize_t jfs_listxattr(struct dentry * dentry, char *data, size_t buf_size,
-		      int flags)
+ssize_t jfs_listxattr(struct dentry * dentry, char *data, size_t buf_size)
 {
 	struct inode *inode = dentry->d_inode;
 	char *buffer;
@@ -1014,7 +1013,7 @@
 	return size;
 }
 
-int jfs_removexattr(struct dentry *dentry, const char *name, int flags)
+int jfs_removexattr(struct dentry *dentry, const char *name)
 {
 	return __jfs_setxattr(dentry->d_inode, name, 0, 0, XATTR_REPLACE);
 }
diff -urN linux-2.5.63-bk1/fs/mpage.c linux-2.5.63-bk2/fs/mpage.c
--- linux-2.5.63-bk1/fs/mpage.c	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/fs/mpage.c	Mon Mar 31 12:15:53 2003
@@ -598,7 +598,7 @@
  * If a page is already under I/O, generic_writepages() skips it, even
  * if it's dirty.  This is desirable behaviour for memory-cleaning writeback,
  * but it is INCORRECT for data-integrity system calls such as fsync().  fsync()
- * and msync() need to guarentee that all the data which was dirty at the time
+ * and msync() need to guarantee that all the data which was dirty at the time
  * the call was made get new I/O started against them.  So if called_for_sync()
  * is true, we must wait for existing IO to complete.
  *
diff -urN linux-2.5.63-bk1/fs/nfsd/export.c linux-2.5.63-bk2/fs/nfsd/export.c
--- linux-2.5.63-bk1/fs/nfsd/export.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/fs/nfsd/export.c	Mon Mar 31 12:15:53 2003
@@ -626,7 +626,7 @@
 
 	exp = exp_get_by_name(clp, nd.mnt, nd.dentry, NULL);
 
-	/* must make sure there wont be an ex_fsid clash */
+	/* must make sure there won't be an ex_fsid clash */
 	if ((nxp->ex_flags & NFSEXP_FSID) &&
 	    (fsid_key = exp_get_fsid_key(clp, nxp->ex_dev)) &&
 	    !IS_ERR(fsid_key) &&
diff -urN linux-2.5.63-bk1/fs/nfsd/nfsctl.c linux-2.5.63-bk2/fs/nfsd/nfsctl.c
--- linux-2.5.63-bk1/fs/nfsd/nfsctl.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/fs/nfsd/nfsctl.c	Mon Mar 31 12:15:53 2003
@@ -77,7 +77,7 @@
 };
 
 /* an argresp is stored in an allocated page and holds the 
- * size of the argument or response, along with it's content
+ * size of the argument or response, along with its content
  */
 struct argresp {
 	ssize_t size;
diff -urN linux-2.5.63-bk1/fs/ntfs/aops.c linux-2.5.63-bk2/fs/ntfs/aops.c
--- linux-2.5.63-bk1/fs/ntfs/aops.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/fs/ntfs/aops.c	Mon Mar 31 12:15:53 2003
@@ -942,7 +942,7 @@
 	 * the below memcpy() already takes care of the mmap-at-end-of-file
 	 * requirements. If the file is converted to a non-resident one, then
 	 * the code path use is switched to the non-resident one where the
-	 * zeroing happens on each ntfs_writepage() invokation.
+	 * zeroing happens on each ntfs_writepage() invocation.
 	 *
 	 * The above also applies nicely when i_size is decreased.
 	 *
@@ -1087,7 +1087,7 @@
 
 		if (block >= ablock) {
 			// TODO: block is above allocated_size, need to
-			// allocate it. Best done in one go to accomodate not
+			// allocate it. Best done in one go to accommodate not
 			// only block but all above blocks up to and including:
 			// ((page->index << PAGE_CACHE_SHIFT) + to + blocksize
 			// - 1) >> blobksize_bits. Obviously will need to round
diff -urN linux-2.5.63-bk1/fs/ntfs/attrib.c linux-2.5.63-bk2/fs/ntfs/attrib.c
--- linux-2.5.63-bk1/fs/ntfs/attrib.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/fs/ntfs/attrib.c	Mon Mar 31 12:15:53 2003
@@ -830,7 +830,7 @@
 				goto io_error;
 			for (deltaxcn = (s8)buf[b--]; b > b2; b--)
 				deltaxcn = (deltaxcn << 8) + buf[b];
-			/* Change the current lcn to it's new value. */
+			/* Change the current lcn to its new value. */
 			lcn += deltaxcn;
 #ifdef DEBUG
 			/*
diff -urN linux-2.5.63-bk1/fs/ntfs/mft.c linux-2.5.63-bk2/fs/ntfs/mft.c
--- linux-2.5.63-bk1/fs/ntfs/mft.c	Mon Feb 24 11:05:37 2003
+++ linux-2.5.63-bk2/fs/ntfs/mft.c	Mon Mar 31 12:15:53 2003
@@ -202,7 +202,7 @@
  * records/inodes present in the page before I/O can proceed. In that case we
  * wouldn't need to bother with PG_locked and PG_uptodate as nobody will be
  * accessing anything without owning the mrec_lock semaphore. But we do need
- * to use them because of the read_cache_page() invokation and the code becomes
+ * to use them because of the read_cache_page() invocation and the code becomes
  * so much simpler this way that it is well worth it.
  *
  * The mft record is now ours and we return a pointer to it. You need to check
diff -urN linux-2.5.63-bk1/fs/proc/array.c linux-2.5.63-bk2/fs/proc/array.c
--- linux-2.5.63-bk1/fs/proc/array.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/fs/proc/array.c	Mon Mar 31 12:15:53 2003
@@ -358,7 +358,8 @@
 		nice,
 		0UL /* removed */,
 		jiffies_to_clock_t(task->it_real_value),
-		(unsigned long long) jiffies_64_to_clock_t(task->start_time),
+		(unsigned long long)
+		    jiffies_64_to_clock_t(task->start_time - INITIAL_JIFFIES),
 		vsize,
 		mm ? mm->rss : 0, /* you might want to shift this left 3 */
 		task->rlim[RLIMIT_RSS].rlim_cur,
diff -urN linux-2.5.63-bk1/fs/proc/proc_misc.c linux-2.5.63-bk2/fs/proc/proc_misc.c
--- linux-2.5.63-bk1/fs/proc/proc_misc.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/fs/proc/proc_misc.c	Mon Mar 31 12:15:53 2003
@@ -104,7 +104,7 @@
 	unsigned long uptime_remainder;
 	int len;
 
-	uptime = get_jiffies_64();
+	uptime = get_jiffies_64() - INITIAL_JIFFIES;
 	uptime_remainder = (unsigned long) do_div(uptime, HZ);
 
 #if HZ!=100
@@ -320,7 +320,7 @@
 {
 	int i, len;
 	extern unsigned long total_forks;
-	u64 jif = get_jiffies_64();
+	u64 jif = get_jiffies_64() - INITIAL_JIFFIES;
 	unsigned int sum = 0, user = 0, nice = 0, system = 0, idle = 0, iowait = 0;
 
 	for (i = 0 ; i < NR_CPUS; i++) {
diff -urN linux-2.5.63-bk1/fs/reiserfs/journal.c linux-2.5.63-bk2/fs/reiserfs/journal.c
--- linux-2.5.63-bk1/fs/reiserfs/journal.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/fs/reiserfs/journal.c	Mon Mar 31 12:15:54 2003
@@ -1913,7 +1913,7 @@
 			result = -ENOMEM;
 		if( result != 0 )
 			printk( "sh-458: journal_init_dev: cannot init journal device\n '%s': %i", 
-				kdevname( to_kdev_t(jdev) ), result );
+				bdevname(journal->j_dev_bd), result );
 
 		else if (jdev != super->s_dev) {
 			set_blocksize(journal->j_dev_bd, super->s_blocksize);
@@ -1946,7 +1946,7 @@
 	if( result != 0 ) {
 		release_journal_dev( super, journal );
 	}
-	printk( "journal_init_dev: journal device: %s", kdevname(to_kdev_t(jdev)) );
+	printk( "journal_init_dev: journal device: %s", bdevname(journal->j_dev_bd));
 	return result;
 }
 
diff -urN linux-2.5.63-bk1/fs/reiserfs/super.c linux-2.5.63-bk2/fs/reiserfs/super.c
--- linux-2.5.63-bk1/fs/reiserfs/super.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/fs/reiserfs/super.c	Mon Mar 31 12:15:54 2003
@@ -1356,7 +1356,7 @@
   buf->f_bavail  = buf->f_bfree;
   buf->f_blocks  = sb_block_count(rs) - sb_bmap_nr(rs) - 1;
   buf->f_bsize   = s->s_blocksize;
-  /* changed to accomodate gcc folks.*/
+  /* changed to accommodate gcc folks.*/
   buf->f_type    =  REISERFS_SUPER_MAGIC;
   return 0;
 }
diff -urN linux-2.5.63-bk1/fs/udf/dir.c linux-2.5.63-bk2/fs/udf/dir.c
--- linux-2.5.63-bk1/fs/udf/dir.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/fs/udf/dir.c	Mon Mar 31 12:15:54 2003
@@ -19,7 +19,7 @@
  *
  * HISTORY
  *
- *  10/05/98 dgb  Split directory operations into it's own file
+ *  10/05/98 dgb  Split directory operations into its own file
  *                Implemented directory reads via do_udf_readdir
  *  10/06/98      Made directory operations work!
  *  11/17/98      Rewrote directory to support ICBTAG_FLAG_AD_LONG
diff -urN linux-2.5.63-bk1/fs/xattr.c linux-2.5.63-bk2/fs/xattr.c
--- linux-2.5.63-bk1/fs/xattr.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/fs/xattr.c	Mon Mar 31 12:15:54 2003
@@ -160,7 +160,7 @@
 		if (error)
 			goto out;
 		down(&d->d_inode->i_sem);
-		error = d->d_inode->i_op->getxattr(d, kname, kvalue, size, 0);
+		error = d->d_inode->i_op->getxattr(d, kname, kvalue, size);
 		up(&d->d_inode->i_sem);
 	}
 
@@ -233,7 +233,7 @@
 		if (error)
 			goto out;
 		down(&d->d_inode->i_sem);
-		error = d->d_inode->i_op->listxattr(d, klist, size, 0);
+		error = d->d_inode->i_op->listxattr(d, klist, size);
 		up(&d->d_inode->i_sem);
 	}
 
@@ -308,7 +308,7 @@
 		if (error)
 			goto out;
 		down(&d->d_inode->i_sem);
-		error = d->d_inode->i_op->removexattr(d, kname, 0);
+		error = d->d_inode->i_op->removexattr(d, kname);
 		up(&d->d_inode->i_sem);
 	}
 out:
diff -urN linux-2.5.63-bk1/fs/xfs/linux/xfs_globals.c linux-2.5.63-bk2/fs/xfs/linux/xfs_globals.c
--- linux-2.5.63-bk1/fs/xfs/linux/xfs_globals.c	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/fs/xfs/linux/xfs_globals.c	Mon Mar 31 12:15:54 2003
@@ -37,9 +37,18 @@
 
 #include <xfs.h>
 
+/*
+ * System memory size - used to scale certain data structures in XFS.
+ */
 unsigned long	xfs_physmem;
 
 /*
+ * Tunable XFS parameters.  xfs_params is required even when CONFIG_SYSCTL=n,
+ * other XFS code uses these values.
+ */
+xfs_param_t xfs_params = { 0, 1, 0, 0, 0 };
+
+/*
  * Used to serialize atomicIncWithWrap.
  */
 spinlock_t Atomic_spin = SPIN_LOCK_UNLOCKED;
diff -urN linux-2.5.63-bk1/fs/xfs/linux/xfs_iops.c linux-2.5.63-bk2/fs/xfs/linux/xfs_iops.c
--- linux-2.5.63-bk1/fs/xfs/linux/xfs_iops.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/fs/xfs/linux/xfs_iops.c	Mon Mar 31 12:15:54 2003
@@ -523,7 +523,7 @@
  */
 
 #define SYSTEM_NAME	"system."	/* VFS shared names/values */
-#define ROOT_NAME	"xfsroot."	/* XFS ondisk names/values */
+#define ROOT_NAME	"trusted."	/* root's own names/values */
 #define USER_NAME	"user."		/* user's own names/values */
 STATIC xattr_namespace_t xfs_namespace_array[] = {
 	{ .name= SYSTEM_NAME,	.namelen= sizeof(SYSTEM_NAME)-1,.exists= NULL },
@@ -590,7 +590,7 @@
 		error = -EINVAL;
 		if (flags & XATTR_CREATE)
 			 return error;
-		error = -ENOATTR;
+		error = -EOPNOTSUPP;
 		p += xfs_namespaces[SYSTEM_NAMES].namelen;
 		if (strcmp(p, POSIXACL_ACCESS) == 0) {
 			error = xfs_acl_vset(vp, (void *) data, size,
@@ -632,7 +632,7 @@
 		VOP_ATTR_SET(vp, p, (void *) data, size, xflags, NULL, error);
 		return -error;
 	}
-	return -ENOATTR;
+	return -EOPNOTSUPP;
 }
 
 STATIC ssize_t
@@ -640,8 +640,7 @@
 	struct dentry	*dentry,
 	const char	*name,
 	void		*data,
-	size_t		size,
-	int		flags)
+	size_t		size)
 {
 	ssize_t		error;
 	int		xflags = 0;
@@ -651,7 +650,7 @@
 
 	if (strncmp(name, xfs_namespaces[SYSTEM_NAMES].name,
 			xfs_namespaces[SYSTEM_NAMES].namelen) == 0) {
-		error = -ENOATTR;
+		error = -EOPNOTSUPP;
 		p += xfs_namespaces[SYSTEM_NAMES].namelen;
 		if (strcmp(p, POSIXACL_ACCESS) == 0) {
 			error = xfs_acl_vget(vp, data, size, _ACL_TYPE_ACCESS);
@@ -690,7 +689,7 @@
 			error = -size;
 		return -error;
 	}
-	return -ENOATTR;
+	return -EOPNOTSUPP;
 }
 
 
@@ -698,8 +697,7 @@
 linvfs_listxattr(
 	struct dentry		*dentry,
 	char			*data,
-	size_t			size,
-	int			flags)
+	size_t			size)
 {
 	ssize_t			error;
 	int			result = 0;
@@ -743,8 +741,7 @@
 STATIC int
 linvfs_removexattr(
 	struct dentry	*dentry,
-	const char	*name,
-	int		flags)
+	const char	*name)
 {
 	int		error;
 	int		xflags = 0;
@@ -754,7 +751,7 @@
 
 	if (strncmp(name, xfs_namespaces[SYSTEM_NAMES].name,
 			xfs_namespaces[SYSTEM_NAMES].namelen) == 0) {
-		error = -ENOATTR;
+		error = -EOPNOTSUPP;
 		p += xfs_namespaces[SYSTEM_NAMES].namelen;
 		if (strcmp(p, POSIXACL_ACCESS) == 0)
 			error = xfs_acl_vremove(vp, _ACL_TYPE_ACCESS);
@@ -782,7 +779,7 @@
 		VOP_ATTR_REMOVE(vp, p, xflags, NULL, error);
 		return -error;
 	}
-	return -ENOATTR;
+	return -EOPNOTSUPP;
 }
 
 
diff -urN linux-2.5.63-bk1/fs/xfs/linux/xfs_sysctl.c linux-2.5.63-bk2/fs/xfs/linux/xfs_sysctl.c
--- linux-2.5.63-bk1/fs/xfs/linux/xfs_sysctl.c	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/fs/xfs/linux/xfs_sysctl.c	Mon Mar 31 12:15:54 2003
@@ -34,17 +34,10 @@
 #include <linux/sysctl.h>
 #include <linux/proc_fs.h>
 
-/*
- * Tunable XFS parameters
- */
-
-extern struct xfsstats xfsstats;
 
 STATIC ulong xfs_min[XFS_PARAM] = { 0, 0, 0, 0, 0 };
 STATIC ulong xfs_max[XFS_PARAM] = { 1, 1, 1, 1, 127 };
 
-xfs_param_t xfs_params = { 0, 1, 0, 0, 0 };
-
 static struct ctl_table_header *xfs_table_header;
 
 
diff -urN linux-2.5.63-bk1/fs/xfs/linux/xfs_sysctl.h linux-2.5.63-bk2/fs/xfs/linux/xfs_sysctl.h
--- linux-2.5.63-bk1/fs/xfs/linux/xfs_sysctl.h	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/fs/xfs/linux/xfs_sysctl.h	Mon Mar 31 12:15:54 2003
@@ -64,8 +64,8 @@
 extern void xfs_sysctl_register(void);
 extern void xfs_sysctl_unregister(void);
 #else
-static __inline void xfs_sysctl_register(void) { };
-static __inline void xfs_sysctl_unregister(void) { };
-#endif
+# define xfs_sysctl_register()		do { } while (0)
+# define xfs_sysctl_unregister()	do { } while (0)
+#endif /* CONFIG_SYSCTL */
 
 #endif /* __XFS_SYSCTL_H__ */
diff -urN linux-2.5.63-bk1/fs/xfs/pagebuf/page_buf.c linux-2.5.63-bk2/fs/xfs/pagebuf/page_buf.c
--- linux-2.5.63-bk1/fs/xfs/pagebuf/page_buf.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/fs/xfs/pagebuf/page_buf.c	Mon Mar 31 12:15:54 2003
@@ -57,6 +57,7 @@
 #include <linux/sysctl.h>
 #include <linux/proc_fs.h>
 #include <linux/workqueue.h>
+#include <linux/suspend.h>
 
 #include <support/debug.h>
 #include <support/kmem.h>
@@ -155,37 +156,35 @@
  * Pagebuf hashing
  */
 
-/* This structure must be a power of 2 long for the hash to work */
+#define NBITS	8
+#define NHASH	(1<<NBITS)
+
 typedef struct {
 	struct list_head	pb_hash;
 	int			pb_count;
 	spinlock_t		pb_hash_lock;
 } pb_hash_t;
 
-static pb_hash_t	*pbhash;
-static unsigned int	pb_hash_mask;
-static unsigned int	pb_hash_shift;
-static unsigned int	pb_order;
+STATIC pb_hash_t	pbhash[NHASH];
 #define pb_hash(pb)	&pbhash[pb->pb_hash_index]
 
-/*
- * This hash is the same one as used on the Linux buffer cache,
- * see fs/buffer.c
- */
-
-#define _hashfn(dev,block)      \
-        ((((dev)<<(pb_hash_shift - 6)) ^ ((dev)<<(pb_hash_shift - 9))) ^ \
-         (((block)<<(pb_hash_shift - 6)) ^ ((block) >> 13) ^ \
-          ((block) << (pb_hash_shift - 12))))
-
-static inline int
+STATIC int
 _bhash(
 	dev_t		dev,
 	loff_t		base)
 {
+	int		bit, hval;
+
 	base >>= 9;
-	
-	return (_hashfn(dev, base) & pb_hash_mask);
+	/*
+	 * dev_t is 16 bits, loff_t is always 64 bits
+	 */
+	base ^= dev;
+	for (bit = hval = 0; base != 0 && bit < sizeof(base) * 8; bit += NBITS) {
+		hval ^= (int)base & (NHASH-1);
+		base >>= NBITS;
+	}
+	return hval;
 }
 
 /*
@@ -703,8 +702,7 @@
  *	are in memory.	The buffer may have unallocated holes, if
  *	some, but not all, of the blocks are in memory.	 Even where
  *	pages are present in the buffer, not all of every page may be
- *	valid.	The file system may use pagebuf_segment to visit the
- *	various segments of the buffer.
+ *	valid.
  */
 page_buf_t *
 pagebuf_find(				/* find buffer for block	*/
@@ -721,11 +719,10 @@
  *	pagebuf_get
  *
  *	pagebuf_get assembles a buffer covering the specified range.
- *	Some or all of the blocks in the range may be valid.  The file
- *	system may use pagebuf_segment to visit the various segments
- *	of the buffer.	Storage in memory for all portions of the
- *	buffer will be allocated, although backing storage may not be.
- *	If PBF_READ is set in flags, pagebuf_read
+ *	Some or all of the blocks in the range may be valid.  Storage
+ *	in memory for all portions of the buffer will be allocated,
+ *	although backing storage may not be.  If PBF_READ is set in
+ *	flags, pagebuf_iostart is called also.
  */
 page_buf_t *
 pagebuf_get(				/* allocate a buffer		*/
@@ -1200,8 +1197,10 @@
 		return status;
 	}
 
-	pb->pb_flags &= ~(PBF_READ|PBF_WRITE|PBF_ASYNC|PBF_DELWRI|PBF_READ_AHEAD);
-	pb->pb_flags |= flags & (PBF_READ|PBF_WRITE|PBF_ASYNC|PBF_SYNC|PBF_READ_AHEAD);
+	pb->pb_flags &=
+		~(PBF_READ|PBF_WRITE|PBF_ASYNC|PBF_DELWRI|PBF_READ_AHEAD);
+	pb->pb_flags |= flags &
+		(PBF_READ|PBF_WRITE|PBF_ASYNC|PBF_SYNC|PBF_READ_AHEAD);
 
 	BUG_ON(pb->pb_bn == PAGE_BUF_DADDR_NULL);
 
@@ -1298,7 +1297,6 @@
 pagebuf_iorequest(			/* start real I/O		*/
 	page_buf_t		*pb)	/* buffer to convey to device	*/
 {
-	int			status = 0;
 	int			i, map_i, total_nr_pages, nr_pages;
 	struct bio		*bio;
 	int			offset = pb->pb_offset;
@@ -1313,7 +1311,7 @@
 
 	if (pb->pb_flags & PBF_DELWRI) {
 		pagebuf_delwri_queue(pb, 1);
-		return status;
+		return 0;
 	}
 
 	/* Set the count to 1 initially, this will stop an I/O
@@ -1413,10 +1411,11 @@
 io_submitted:
 
 	if (atomic_dec_and_test(&pb->pb_io_remaining) == 1) {
+		pb->pb_locked = 0;
 		pagebuf_iodone(pb, 0);
 	}
 
-	return status < 0 ? status : 0;
+	return 0;
 }
 
 /*
@@ -1459,7 +1458,7 @@
 caddr_t
 pagebuf_offset(
 	page_buf_t		*pb,
-	off_t			offset)
+	size_t			offset)
 {
 	struct page		*page;
 
@@ -1586,6 +1585,10 @@
 
 	INIT_LIST_HEAD(&tmp);
 	do {
+		/* swsusp */
+		if (current->flags & PF_FREEZE)
+			refrigerator(PF_IOTHREAD);
+
 		if (pbd_active == 1) {
 			del_timer(&pb_daemon_timer);
 			pb_daemon_timer.expires = jiffies +
@@ -1864,39 +1867,7 @@
 int __init
 pagebuf_init(void)
 {
-	int		order, mempages, i;
-	unsigned int	nr_hash;
-	extern int	xfs_physmem;
-
-	mempages = xfs_physmem >>= 16;
-	mempages *= sizeof(pb_hash_t);
-	for (order = 0; (1 << order) < mempages; order++)
-		;
-
-	if (order > 3) order = 3;	/* cap us at 2K buckets */
-
-	do {
-		unsigned long tmp;
-
-		nr_hash = (PAGE_SIZE << order) / sizeof(pb_hash_t);	
-		nr_hash = 1 << (ffs(nr_hash) - 1);
-		pb_hash_mask =  (nr_hash - 1);
-		tmp = nr_hash;
-		pb_hash_shift = 0;
-		while((tmp >>= 1UL) != 0UL)
-			pb_hash_shift++;
-
-		pbhash = (pb_hash_t *)
-			__get_free_pages(GFP_KERNEL, order);
-		pb_order = order;
-	} while (pbhash == NULL && --order > 0);
-	printk("pagebuf cache hash table entries: %d (order: %d, %ld bytes)\n",
-		nr_hash, order, (PAGE_SIZE << order));
-
-	for(i = 0; i < nr_hash; i++) {
-		spin_lock_init(&pbhash[i].pb_hash_lock);
-		INIT_LIST_HEAD(&pbhash[i].pb_hash);
-	} 
+	int			i;
 
 	pagebuf_table_header = register_sysctl_table(pagebuf_root_table, 1);
 
@@ -1914,6 +1885,11 @@
 		return -ENOMEM;
 	}
 
+	for (i = 0; i < NHASH; i++) {
+		spin_lock_init(&pbhash[i].pb_hash_lock);
+		INIT_LIST_HEAD(&pbhash[i].pb_hash);
+	}
+
 #ifdef PAGEBUF_TRACE
 	pb_trace.buf = (pagebuf_trace_t *)kmalloc(
 			PB_TRACE_BUFSIZE * sizeof(pagebuf_trace_t), GFP_KERNEL);
@@ -1940,7 +1916,6 @@
 
 	kmem_cache_destroy(pagebuf_cache);
 	kmem_shake_deregister(pagebuf_shaker);
-	free_pages((unsigned long)pbhash, pb_order);
 
 	unregister_sysctl_table(pagebuf_table_header);
 #ifdef	CONFIG_PROC_FS
diff -urN linux-2.5.63-bk1/fs/xfs/pagebuf/page_buf.h linux-2.5.63-bk2/fs/xfs/pagebuf/page_buf.h
--- linux-2.5.63-bk1/fs/xfs/pagebuf/page_buf.h	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/fs/xfs/pagebuf/page_buf.h	Mon Mar 31 12:15:54 2003
@@ -215,8 +215,8 @@
 	unsigned short		pb_error;	/* error code on I/O */
 	unsigned short		pb_page_count;	/* size of page array */
 	unsigned short		pb_offset;	/* page offset in first page */
-	unsigned short		pb_hash_index;	/* hash table index	*/
 	unsigned char		pb_locked;	/* page array is locked */
+	unsigned char		pb_hash_index;	/* hash table index	*/
 	struct page		**pb_pages;	/* array of page pointers */
 	struct page		*pb_page_array[PB_PAGES]; /* inline pages */
 #ifdef PAGEBUF_LOCK_TRACKING
@@ -329,7 +329,7 @@
 extern int pagebuf_iowait(		/* wait for buffer I/O done	*/
 		page_buf_t *);		/* buffer to wait on		*/
 
-extern caddr_t	pagebuf_offset(page_buf_t *, off_t);
+extern caddr_t	pagebuf_offset(page_buf_t *, size_t);
 
 extern void pagebuf_iomove(		/* move data in/out of pagebuf	*/
 		page_buf_t *,		/* buffer to manipulate		*/
diff -urN linux-2.5.63-bk1/fs/xfs/support/debug.c linux-2.5.63-bk2/fs/xfs/support/debug.c
--- linux-2.5.63-bk1/fs/xfs/support/debug.c	Mon Feb 24 11:05:07 2003
+++ linux-2.5.63-bk2/fs/xfs/support/debug.c	Mon Mar 31 12:15:54 2003
@@ -85,8 +85,8 @@
 cmn_err(register int level, char *fmt, ...)
 {
 	char	*fp = fmt;
+	ulong	flags;
 	int	len;
-	unsigned long flags;
 	va_list	ap;
 
 	level &= XFS_ERR_MASK;
@@ -110,8 +110,8 @@
 void
 icmn_err(register int level, char *fmt, va_list ap)
 {
+	ulong	flags;
 	int	len;
-	int	flags;
 
 	level &= XFS_ERR_MASK;
 	if(level > XFS_MAX_ERR_LEVEL)
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_attr.h linux-2.5.63-bk2/fs/xfs/xfs_attr.h
--- linux-2.5.63-bk1/fs/xfs/xfs_attr.h	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_attr.h	Mon Mar 31 12:15:54 2003
@@ -69,7 +69,7 @@
 /*
  * The maximum size (into the kernel or returned from the kernel) of an
  * attribute value or the buffer used for an attr_list() call.	Larger
- * sizes will result in an E2BIG return code.
+ * sizes will result in an ERANGE return code.
  */
 #define ATTR_MAX_VALUELEN	(64*1024)	/* max length of a value */
 
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_attr_leaf.c linux-2.5.63-bk2/fs/xfs/xfs_attr_leaf.c
--- linux-2.5.63-bk1/fs/xfs/xfs_attr_leaf.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_attr_leaf.c	Mon Mar 31 12:15:54 2003
@@ -1374,7 +1374,7 @@
 		count * sizeof(xfs_attr_leaf_entry_t) +
 		INT_GET(leaf->hdr.usedbytes, ARCH_CONVERT);
 	if (bytes > (state->blocksize >> 1)) {
-		*action = 0;	/* blk over 50%, dont try to join */
+		*action = 0;	/* blk over 50%, don't try to join */
 		return(0);
 	}
 
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_buf.h linux-2.5.63-bk2/fs/xfs/xfs_buf.h
--- linux-2.5.63-bk1/fs/xfs/xfs_buf.h	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_buf.h	Mon Mar 31 12:15:54 2003
@@ -153,7 +153,7 @@
 
 #define XFS_BUF_PTR(bp)		(xfs_caddr_t)((bp)->pb_addr)
 
-extern inline xfs_caddr_t xfs_buf_offset(page_buf_t *bp, off_t offset)
+extern inline xfs_caddr_t xfs_buf_offset(page_buf_t *bp, size_t offset)
 {
 	if (bp->pb_flags & PBF_MAPPED)
 		return XFS_BUF_PTR(bp) + offset;
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_buf_item.c linux-2.5.63-bk2/fs/xfs/xfs_buf_item.c
--- linux-2.5.63-bk1/fs/xfs/xfs_buf_item.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_buf_item.c	Mon Mar 31 12:15:54 2003
@@ -924,7 +924,7 @@
 
 
 /*
- * Add the given log item with it's callback to the list of callbacks
+ * Add the given log item with its callback to the list of callbacks
  * to be called when the buffer's I/O completes.  If it is not set
  * already, set the buffer's b_iodone() routine to be
  * xfs_buf_iodone_callbacks() and link the log item into the list of
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_da_btree.c linux-2.5.63-bk2/fs/xfs/xfs_da_btree.c
--- linux-2.5.63-bk1/fs/xfs/xfs_da_btree.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_da_btree.c	Mon Mar 31 12:15:54 2003
@@ -830,8 +830,8 @@
 	node = (xfs_da_intnode_t *)info;
 	count = INT_GET(node->hdr.count, ARCH_CONVERT);
 	if (count > (state->node_ents >> 1)) {
-		*action = 0;	/* blk over 50%, dont try to join */
-		return(0);	/* blk over 50%, dont try to join */
+		*action = 0;	/* blk over 50%, don't try to join */
+		return(0);	/* blk over 50%, don't try to join */
 	}
 
 	/*
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_dir_leaf.c linux-2.5.63-bk2/fs/xfs/xfs_dir_leaf.c
--- linux-2.5.63-bk1/fs/xfs/xfs_dir_leaf.c	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_dir_leaf.c	Mon Mar 31 12:15:54 2003
@@ -1341,7 +1341,7 @@
 		count * ((uint)sizeof(xfs_dir_leaf_name_t)-1) +
 		INT_GET(leaf->hdr.namebytes, ARCH_CONVERT);
 	if (bytes > (state->blocksize >> 1)) {
-		*action = 0;	/* blk over 50%, dont try to join */
+		*action = 0;	/* blk over 50%, don't try to join */
 		return(0);
 	}
 
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_dquot.c linux-2.5.63-bk2/fs/xfs/xfs_dquot.c
--- linux-2.5.63-bk1/fs/xfs/xfs_dquot.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_dquot.c	Mon Mar 31 12:15:54 2003
@@ -840,7 +840,7 @@
  * Given the file system, inode OR id, and type (UDQUOT/GDQUOT), return a
  * a locked dquot, doing an allocation (if requested) as needed.
  * When both an inode and an id are given, the inode's id takes precedence.
- * That is, if the id changes while we dont hold the ilock inside this
+ * That is, if the id changes while we don't hold the ilock inside this
  * function, the new dquot is returned, not necessarily the one requested
  * in the id argument.
  */
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_inode.c linux-2.5.63-bk2/fs/xfs/xfs_inode.c
--- linux-2.5.63-bk1/fs/xfs/xfs_inode.c	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_inode.c	Mon Mar 31 12:15:54 2003
@@ -1001,7 +1001,7 @@
 }
 
 /*
- * Allocate an inode on disk and return a copy of it's in-core version.
+ * Allocate an inode on disk and return a copy of its in-core version.
  * The in-core inode is locked exclusively.  Set mode, nlink, and rdev
  * appropriately within the inode.  The uid and gid for the inode are
  * set according to the contents of the given cred structure.
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_log.h linux-2.5.63-bk2/fs/xfs/xfs_log.h
--- linux-2.5.63-bk1/fs/xfs/xfs_log.h	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_log.h	Mon Mar 31 12:15:54 2003
@@ -53,11 +53,11 @@
  * endian issues in treating two 32 bit numbers as one 64 bit number
  */
 static
-#ifdef __GNUC__
-# if !((__GNUC__ == 2) && (__GNUC_MINOR__ == 95))
+#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
+__attribute__((unused))	/* gcc 2.95 miscompiles this when inlined */
+#else
 __inline__
 #endif
-#endif
 xfs_lsn_t	_lsn_cmp(xfs_lsn_t lsn1, xfs_lsn_t lsn2, xfs_arch_t arch)
 {
 	if (CYCLE_LSN(lsn1, arch) != CYCLE_LSN(lsn2, arch))
diff -urN linux-2.5.63-bk1/fs/xfs/xfs_trans_dquot.c linux-2.5.63-bk2/fs/xfs/xfs_trans_dquot.c
--- linux-2.5.63-bk1/fs/xfs/xfs_trans_dquot.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/fs/xfs/xfs_trans_dquot.c	Mon Mar 31 12:15:54 2003
@@ -755,7 +755,7 @@
 
 /*
  * Lock the dquot and change the reservation if we can.
- * This doesnt change the actual usage, just the reservation.
+ * This doesn't change the actual usage, just the reservation.
  * The inode sent in is locked.
  *
  * Returns 0 on success, EDQUOT or other errors otherwise
diff -urN linux-2.5.63-bk1/include/asm-alpha/mman.h linux-2.5.63-bk2/include/asm-alpha/mman.h
--- linux-2.5.63-bk1/include/asm-alpha/mman.h	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/include/asm-alpha/mman.h	Mon Mar 31 12:15:54 2003
@@ -39,7 +39,7 @@
 #define MADV_SEQUENTIAL	2		/* expect sequential page references */
 #define MADV_WILLNEED	3		/* will need these pages */
 #define	MADV_SPACEAVAIL	5		/* ensure resources are available */
-#define MADV_DONTNEED	6		/* dont need these pages */
+#define MADV_DONTNEED	6		/* don't need these pages */
 
 /* compatibility flags */
 #define MAP_ANON	MAP_ANONYMOUS
diff -urN linux-2.5.63-bk1/include/asm-alpha/pci.h linux-2.5.63-bk2/include/asm-alpha/pci.h
--- linux-2.5.63-bk1/include/asm-alpha/pci.h	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/include/asm-alpha/pci.h	Mon Mar 31 12:15:54 2003
@@ -97,7 +97,7 @@
 /* Unmap a single streaming mode DMA translation.  The DMA_ADDR and
    SIZE must match what was provided for in a previous pci_map_single
    call.  All other usages are undefined.  After this call, reads by
-   the cpu to the buffer are guarenteed to see whatever the device
+   the cpu to the buffer are guaranteed to see whatever the device
    wrote there.  */
 
 extern void pci_unmap_single(struct pci_dev *, dma_addr_t, size_t, int);
diff -urN linux-2.5.63-bk1/include/asm-alpha/rwsem.h linux-2.5.63-bk2/include/asm-alpha/rwsem.h
--- linux-2.5.63-bk1/include/asm-alpha/rwsem.h	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/include/asm-alpha/rwsem.h	Mon Mar 31 12:15:54 2003
@@ -7,7 +7,7 @@
  */
 
 #ifndef _LINUX_RWSEM_H
-#error please dont include asm/rwsem.h directly, use linux/rwsem.h instead
+#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead"
 #endif
 
 #ifdef __KERNEL__
diff -urN linux-2.5.63-bk1/include/asm-arm/proc-fns.h linux-2.5.63-bk2/include/asm-arm/proc-fns.h
--- linux-2.5.63-bk1/include/asm-arm/proc-fns.h	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/include/asm-arm/proc-fns.h	Mon Mar 31 12:15:54 2003
@@ -125,7 +125,7 @@
 
 #if 0
  * The following is to fool mkdep into generating the correct
- * dependencies.  Without this, it cant figure out that this
+ * dependencies.  Without this, it can't figure out that this
  * file does indeed depend on the cpu-*.h files.
 #include <asm/cpu-single.h>
 #include <asm/cpu-multi26.h>
diff -urN linux-2.5.63-bk1/include/asm-cris/namei.h linux-2.5.63-bk2/include/asm-cris/namei.h
--- linux-2.5.63-bk1/include/asm-cris/namei.h	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/include/asm-cris/namei.h	Mon Mar 31 12:15:54 2003
@@ -9,7 +9,7 @@
 
 /* used to find file-system prefixes for doing emulations
  * see for example asm-sparc/namei.h
- * we dont use it...
+ * we don't use it...
  */
 
 #define __emul_prefix() NULL
diff -urN linux-2.5.63-bk1/include/asm-cris/uaccess.h linux-2.5.63-bk2/include/asm-cris/uaccess.h
--- linux-2.5.63-bk1/include/asm-cris/uaccess.h	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/include/asm-cris/uaccess.h	Mon Mar 31 12:15:54 2003
@@ -126,7 +126,7 @@
  * This gets kind of ugly. We want to return _two_ values in "get_user()"
  * and yet we don't want to do any pointers, because that is too much
  * of a performance impact. Thus we have a few rather ugly macros here,
- * and hide all the uglyness from the user.
+ * and hide all the ugliness from the user.
  *
  * The "__xxx" versions of the user access functions are versions that
  * do not verify the address space, that must have been done previously
diff -urN linux-2.5.63-bk1/include/asm-i386/mach-bigsmp/mach_apic.h linux-2.5.63-bk2/include/asm-i386/mach-bigsmp/mach_apic.h
--- linux-2.5.63-bk1/include/asm-i386/mach-bigsmp/mach_apic.h	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/include/asm-i386/mach-bigsmp/mach_apic.h	Mon Mar 31 12:15:54 2003
@@ -10,7 +10,7 @@
 		((phys_apic) & (~0xf)) )
 #endif
 
-#define no_balance_irq (1)
+#define NO_BALANCE_IRQ (1)
 #define esr_disable (1)
 
 static inline int apic_id_registered(void)
diff -urN linux-2.5.63-bk1/include/asm-i386/mach-default/do_timer.h linux-2.5.63-bk2/include/asm-i386/mach-default/do_timer.h
--- linux-2.5.63-bk1/include/asm-i386/mach-default/do_timer.h	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/include/asm-i386/mach-default/do_timer.h	Mon Mar 31 12:15:54 2003
@@ -67,7 +67,7 @@
 #ifdef BUGGY_NEPTUN_TIMER
 		/*
 		 * for the Neptun bug we know that the 'latch'
-		 * command doesnt latch the high and low value
+		 * command doesn't latch the high and low value
 		 * of the counter atomically. Thus we have to 
 		 * substract 256 from the counter 
 		 * ... funny, isnt it? :)
diff -urN linux-2.5.63-bk1/include/asm-i386/mach-default/mach_apic.h linux-2.5.63-bk2/include/asm-i386/mach-default/mach_apic.h
--- linux-2.5.63-bk1/include/asm-i386/mach-default/mach_apic.h	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/include/asm-i386/mach-default/mach_apic.h	Mon Mar 31 12:15:54 2003
@@ -9,7 +9,7 @@
  #define TARGET_CPUS 0x01
 #endif
 
-#define no_balance_irq (0)
+#define NO_BALANCE_IRQ (0)
 #define esr_disable (0)
 
 #define INT_DELIVERY_MODE dest_LowestPrio
diff -urN linux-2.5.63-bk1/include/asm-i386/mach-numaq/mach_apic.h linux-2.5.63-bk2/include/asm-i386/mach-numaq/mach_apic.h
--- linux-2.5.63-bk1/include/asm-i386/mach-numaq/mach_apic.h	Mon Feb 24 11:05:29 2003
+++ linux-2.5.63-bk2/include/asm-i386/mach-numaq/mach_apic.h	Mon Mar 31 12:15:54 2003
@@ -5,7 +5,7 @@
 
 #define TARGET_CPUS (0xf)
 
-#define no_balance_irq (1)
+#define NO_BALANCE_IRQ (1)
 #define esr_disable (1)
 
 #define INT_DELIVERY_MODE dest_LowestPrio
diff -urN linux-2.5.63-bk1/include/asm-i386/mach-summit/mach_apic.h linux-2.5.63-bk2/include/asm-i386/mach-summit/mach_apic.h
--- linux-2.5.63-bk1/include/asm-i386/mach-summit/mach_apic.h	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/include/asm-i386/mach-summit/mach_apic.h	Mon Mar 31 12:15:54 2003
@@ -4,7 +4,7 @@
 extern int x86_summit;
 
 #define esr_disable (x86_summit ? 1 : 0)
-#define no_balance_irq (0)
+#define NO_BALANCE_IRQ (0)
 
 #define XAPIC_DEST_CPUS_MASK    0x0Fu
 #define XAPIC_DEST_CLUSTER_MASK 0xF0u
diff -urN linux-2.5.63-bk1/include/asm-i386/mach-visws/cobalt.h linux-2.5.63-bk2/include/asm-i386/mach-visws/cobalt.h
--- linux-2.5.63-bk1/include/asm-i386/mach-visws/cobalt.h	Mon Feb 24 11:05:08 2003
+++ linux-2.5.63-bk2/include/asm-i386/mach-visws/cobalt.h	Mon Mar 31 12:15:54 2003
@@ -60,7 +60,7 @@
 #define	CO_APIC_PCIA_BASE0	0 /* and 1 */	/* slot 0, line 0 */
 #define	CO_APIC_PCIA_BASE123	5 /* and 6 */	/* slot 0, line 1 */
 
-#define	CO_APIC_PIIX4_USB	7		/* this one is wierd */
+#define	CO_APIC_PIIX4_USB	7		/* this one is weird */
 
 /* Lithium PCI Bridge B -- "the one with PIIX4" */
 #define	CO_APIC_PCIB_BASE0	8 /* and 9-12 *//* slot 0, line 0 */
diff -urN linux-2.5.63-bk1/include/asm-i386/mmzone.h linux-2.5.63-bk2/include/asm-i386/mmzone.h
--- linux-2.5.63-bk1/include/asm-i386/mmzone.h	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/include/asm-i386/mmzone.h	Mon Mar 31 12:15:54 2003
@@ -12,6 +12,8 @@
 
 #ifdef CONFIG_X86_NUMAQ
 #include <asm/numaq.h>
+#elif CONFIG_X86_SUMMIT
+#include <asm/srat.h>
 #else
 #define pfn_to_nid(pfn)		(0)
 #endif /* CONFIG_X86_NUMAQ */
diff -urN linux-2.5.63-bk1/include/asm-i386/numaq.h linux-2.5.63-bk2/include/asm-i386/numaq.h
--- linux-2.5.63-bk1/include/asm-i386/numaq.h	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/include/asm-i386/numaq.h	Mon Mar 31 12:15:54 2003
@@ -168,6 +168,10 @@
         struct	eachquadmem eq[MAX_NUMNODES];	/* indexed by quad id */
 };
 
+static inline unsigned long get_zholes_size(int nid)
+{
+	return 0;
+}
 #endif /* CONFIG_X86_NUMAQ */
 #endif /* NUMAQ_H */
 
diff -urN linux-2.5.63-bk1/include/asm-i386/numnodes.h linux-2.5.63-bk2/include/asm-i386/numnodes.h
--- linux-2.5.63-bk1/include/asm-i386/numnodes.h	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/include/asm-i386/numnodes.h	Mon Mar 31 12:15:54 2003
@@ -5,6 +5,8 @@
 
 #ifdef CONFIG_X86_NUMAQ
 #include <asm/numaq.h>
+#elif CONFIG_X86_SUMMIT
+#include <asm/srat.h>
 #else
 #define MAX_NUMNODES	1
 #endif /* CONFIG_X86_NUMAQ */
diff -urN linux-2.5.63-bk1/include/asm-i386/page.h linux-2.5.63-bk2/include/asm-i386/page.h
--- linux-2.5.63-bk1/include/asm-i386/page.h	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/include/asm-i386/page.h	Mon Mar 31 12:15:54 2003
@@ -24,7 +24,7 @@
 #else
 
 /*
- *	On older X86 processors its not a win to use MMX here it seems.
+ *	On older X86 processors it's not a win to use MMX here it seems.
  *	Maybe the K6-III ?
  */
  
@@ -49,6 +49,7 @@
 typedef struct { unsigned long pte_low; } pte_t;
 typedef struct { unsigned long pmd; } pmd_t;
 typedef struct { unsigned long pgd; } pgd_t;
+#define boot_pte_t pte_t /* or would you rather have a typedef */
 #define pte_val(x)	((x).pte_low)
 #define HPAGE_SHIFT	22
 #endif
diff -urN linux-2.5.63-bk1/include/asm-i386/pgtable-2level.h linux-2.5.63-bk2/include/asm-i386/pgtable-2level.h
--- linux-2.5.63-bk1/include/asm-i386/pgtable-2level.h	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/include/asm-i386/pgtable-2level.h	Mon Mar 31 12:15:54 2003
@@ -42,7 +42,7 @@
 #define set_pte(pteptr, pteval) (*(pteptr) = pteval)
 #define set_pte_atomic(pteptr, pteval) set_pte(pteptr,pteval)
 /*
- * (pmds are folded into pgds so this doesnt get actually called,
+ * (pmds are folded into pgds so this doesn't get actually called,
  * but the define is needed for a generic inline function.)
  */
 #define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
diff -urN linux-2.5.63-bk1/include/asm-i386/rwsem.h linux-2.5.63-bk2/include/asm-i386/rwsem.h
--- linux-2.5.63-bk1/include/asm-i386/rwsem.h	Mon Feb 24 11:05:29 2003
+++ linux-2.5.63-bk2/include/asm-i386/rwsem.h	Mon Mar 31 12:15:54 2003
@@ -33,7 +33,7 @@
 #define _I386_RWSEM_H
 
 #ifndef _LINUX_RWSEM_H
-#error please dont include asm/rwsem.h directly, use linux/rwsem.h instead
+#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead"
 #endif
 
 #ifdef __KERNEL__
diff -urN linux-2.5.63-bk1/include/asm-i386/semaphore.h linux-2.5.63-bk2/include/asm-i386/semaphore.h
--- linux-2.5.63-bk1/include/asm-i386/semaphore.h	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/include/asm-i386/semaphore.h	Mon Mar 31 12:15:54 2003
@@ -76,7 +76,7 @@
  *	*sem = (struct semaphore)__SEMAPHORE_INITIALIZER((*sem),val);
  *
  * i'd rather use the more flexible initialization above, but sadly
- * GCC 2.7.2.3 emits a bogus warning. EGCS doesnt. Oh well.
+ * GCC 2.7.2.3 emits a bogus warning. EGCS doesn't. Oh well.
  */
 	atomic_set(&sem->count, val);
 	sem->sleepers = 0;
diff -urN linux-2.5.63-bk1/include/asm-i386/sigcontext.h linux-2.5.63-bk2/include/asm-i386/sigcontext.h
--- linux-2.5.63-bk1/include/asm-i386/sigcontext.h	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/include/asm-i386/sigcontext.h	Mon Mar 31 12:15:54 2003
@@ -11,7 +11,7 @@
  * Pentium III FXSR, SSE support
  *	Gareth Hughes <gareth@valinux.com>, May 2000
  *
- * The FPU state data structure has had to grow to accomodate the
+ * The FPU state data structure has had to grow to accommodate the
  * extended FPU state required by the Streaming SIMD Extensions.
  * There is no documented standard to accomplish this at the moment.
  */
diff -urN linux-2.5.63-bk1/include/asm-i386/srat.h linux-2.5.63-bk2/include/asm-i386/srat.h
--- linux-2.5.63-bk1/include/asm-i386/srat.h	Wed Dec 31 16:00:00 1969
+++ linux-2.5.63-bk2/include/asm-i386/srat.h	Mon Mar 31 12:15:54 2003
@@ -0,0 +1,46 @@
+/*
+ * Some of the code in this file has been gleaned from the 64 bit 
+ * discontigmem support code base.
+ *
+ * Copyright (C) 2002, IBM Corp.
+ *
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
+ * NON INFRINGEMENT.  See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Send feedback to Pat Gaughen <gone@us.ibm.com>
+ */
+
+#ifndef _ASM_SRAT_H_
+#define _ASM_SRAT_H_
+
+/*
+ * each element in pfnnode_map represents 256 MB (2^28) of pages.
+ * so, to represent 64GB we need 256 elements.
+ */
+#define MAX_ELEMENTS 256
+#define PFN_TO_ELEMENT(pfn) ((pfn)>>(28 - PAGE_SHIFT))
+
+extern int pfnnode_map[];
+#define pfn_to_nid(pfn) ({ pfnnode_map[PFN_TO_ELEMENT(pfn)]; })
+#define pfn_to_pgdat(pfn) NODE_DATA(pfn_to_nid(pfn))
+#define PHYSADDR_TO_NID(pa) pfn_to_nid(pa >> PAGE_SHIFT)
+#define MAX_NUMNODES		8
+extern void get_memcfg_from_srat(void);
+extern unsigned long *get_zholes_size(int);
+#define get_memcfg_numa() get_memcfg_from_srat()
+
+#endif /* _ASM_SRAT_H_ */
diff -urN linux-2.5.63-bk1/include/asm-i386/uaccess.h linux-2.5.63-bk2/include/asm-i386/uaccess.h
--- linux-2.5.63-bk1/include/asm-i386/uaccess.h	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/include/asm-i386/uaccess.h	Mon Mar 31 12:15:54 2003
@@ -101,7 +101,7 @@
  * This gets kind of ugly. We want to return _two_ values in "get_user()"
  * and yet we don't want to do any pointers, because that is too much
  * of a performance impact. Thus we have a few rather ugly macros here,
- * and hide all the uglyness from the user.
+ * and hide all the ugliness from the user.
  *
  * The "__xxx" versions of the user access functions are versions that
  * do not verify the address space, that must have been done previously
@@ -258,7 +258,7 @@
 unsigned long __copy_from_user_ll(void *to, const void *from, unsigned long n);
 
 /*
- * Here we special-case 1, 2 and 4-byte copy_*_user invokations.  On a fault
+ * Here we special-case 1, 2 and 4-byte copy_*_user invocations.  On a fault
  * we return the initial request size (1, 2 or 4), as copy_*_user should do.
  * If a store crosses a page boundary and gets a fault, the x86 will not write
  * anything, so this is accurate.
diff -urN linux-2.5.63-bk1/include/asm-ia64/mmzone.h linux-2.5.63-bk2/include/asm-ia64/mmzone.h
--- linux-2.5.63-bk1/include/asm-ia64/mmzone.h	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/include/asm-ia64/mmzone.h	Mon Mar 31 12:15:54 2003
@@ -44,7 +44,7 @@
  * Note that IO addresses are NOT considered valid addresses.
  *
  * Note, many platforms can simply check if kaddr exceeds a specific size.  
- *	(However, this wont work on SGI platforms since IO space is embedded 
+ *	(However, this won't work on SGI platforms since IO space is embedded 
  * 	within the range of valid memory addresses & nodes have holes in the 
  *	address range between banks). 
  */
diff -urN linux-2.5.63-bk1/include/asm-ia64/sn/klconfig.h linux-2.5.63-bk2/include/asm-ia64/sn/klconfig.h
--- linux-2.5.63-bk1/include/asm-ia64/sn/klconfig.h	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/include/asm-ia64/sn/klconfig.h	Mon Mar 31 12:15:54 2003
@@ -273,7 +273,7 @@
  * Each BOARD consists of COMPONENTs and the BOARD structure has 
  * pointers (offsets) to its COMPONENT structure.
  * The COMPONENT structure has version info, size and speed info, revision,
- * error info and the NIC info. This structure can accomodate any
+ * error info and the NIC info. This structure can accommodate any
  * BOARD with arbitrary COMPONENT composition.
  *
  * The ERRORINFO part of each BOARD has error information
diff -urN linux-2.5.63-bk1/include/asm-ia64/sn/pci/bridge.h linux-2.5.63-bk2/include/asm-ia64/sn/pci/bridge.h
--- linux-2.5.63-bk1/include/asm-ia64/sn/pci/bridge.h	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/include/asm-ia64/sn/pci/bridge.h	Mon Mar 31 12:15:54 2003
@@ -14,7 +14,7 @@
  * bridge.h - header file for bridge chip and bridge portion of xbridge chip
  *
  * Also including offsets for unique PIC registers.
- * The PIC asic is a follow-on to Xbridge and most of it's registers are
+ * The PIC asic is a follow-on to Xbridge and most of its registers are
  * identical to those of Xbridge.  PIC is different than Xbridge in that
  * it will accept 64 bit register access and that, in some cases, data
  * is kept in bits 63:32.   PIC registers that are identical to Xbridge
@@ -1684,7 +1684,7 @@
 /* RRB clear register */
 #define	BRIDGE_RRB_CLEAR(r)	(0x00000001<<(r))
 
-/* Defines for the virtual channels so we dont hardcode 0-3 within code */
+/* Defines for the virtual channels so we don't hardcode 0-3 within code */
 #define VCHAN0	0	/* virtual channel 0 (ie. the "normal" channel) */
 #define VCHAN1	1	/* virtual channel 1 */
 #define VCHAN2	2	/* virtual channel 2 - PIC only */
diff -urN linux-2.5.63-bk1/include/asm-ia64/sn/pda.h linux-2.5.63-bk2/include/asm-ia64/sn/pda.h
--- linux-2.5.63-bk1/include/asm-ia64/sn/pda.h	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/include/asm-ia64/sn/pda.h	Mon Mar 31 12:15:54 2003
@@ -84,10 +84,10 @@
  * the IA64 cpu_data area. A full page is allocated for the cp_data area for each
  * cpu but only a small amout of the page is actually used. We put the SNIA PDA
  * in the same page as the cpu_data area. Note that there is a check in the setup
- * code to verify that we dont overflow the page.
+ * code to verify that we don't overflow the page.
  *
  * Seems like we should should cache-line align the pda so that any changes in the
- * size of the cpu_data area dont change cache layout. Should we align to 32, 64, 128
+ * size of the cpu_data area don't change cache layout. Should we align to 32, 64, 128
  * or 512 boundary. Each has merits. For now, pick 128 but should be revisited later.
  */
 DECLARE_PER_CPU(struct pda_s, pda_percpu);
diff -urN linux-2.5.63-bk1/include/asm-ia64/sn/sn1/mmzone_sn1.h linux-2.5.63-bk2/include/asm-ia64/sn/sn1/mmzone_sn1.h
--- linux-2.5.63-bk1/include/asm-ia64/sn/sn1/mmzone_sn1.h	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/include/asm-ia64/sn/sn1/mmzone_sn1.h	Mon Mar 31 12:15:54 2003
@@ -130,7 +130,7 @@
 
 /*
  * Calculate a "goal" value to be passed to __alloc_bootmem_node for allocating structures on
- * nodes so that they dont alias to the same line in the cache as the previous allocated structure.
+ * nodes so that they don't alias to the same line in the cache as the previous allocated structure.
  * This macro takes an address of the end of previous allocation, rounds it to a page boundary & 
  * changes the node number.
  */
diff -urN linux-2.5.63-bk1/include/asm-ia64/sn/sn2/mmzone_sn2.h linux-2.5.63-bk2/include/asm-ia64/sn/sn2/mmzone_sn2.h
--- linux-2.5.63-bk1/include/asm-ia64/sn/sn2/mmzone_sn2.h	Mon Feb 24 11:05:45 2003
+++ linux-2.5.63-bk2/include/asm-ia64/sn/sn2/mmzone_sn2.h	Mon Mar 31 12:15:54 2003
@@ -137,7 +137,7 @@
 
 /*
  * Calculate a "goal" value to be passed to __alloc_bootmem_node for allocating structures on
- * nodes so that they dont alias to the same line in the cache as the previous allocated structure.
+ * nodes so that they don't alias to the same line in the cache as the previous allocated structure.
  * This macro takes an address of the end of previous allocation, rounds it to a page boundary & 
  * changes the node number.
  */
diff -urN linux-2.5.63-bk1/include/asm-ia64/sn/sn_cpuid.h linux-2.5.63-bk2/include/asm-ia64/sn/sn_cpuid.h
--- linux-2.5.63-bk1/include/asm-ia64/sn/sn_cpuid.h	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/include/asm-ia64/sn/sn_cpuid.h	Mon Mar 31 12:15:54 2003
@@ -47,7 +47,7 @@
  *			hard_smp_processor_id()- cpu_physical_id of current processor
  *			cpu_physical_id(cpuid) - convert a <cpuid> to a <physical_cpuid>
  *			cpu_logical_id(phy_id) - convert a <physical_cpuid> to a <cpuid> 
- *				* not real efficient - dont use in perf critical code
+ *				* not real efficient - don't use in perf critical code
  *
  *         LID - processor defined register (see PRM V2).
  *
diff -urN linux-2.5.63-bk1/include/asm-m68k/dvma.h linux-2.5.63-bk2/include/asm-m68k/dvma.h
--- linux-2.5.63-bk1/include/asm-m68k/dvma.h	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/include/asm-m68k/dvma.h	Mon Mar 31 12:15:54 2003
@@ -45,7 +45,7 @@
 #define IOMMU_ENTRIES 120
 
 /* empirical kludge -- dvma regions only seem to work right on 0x10000 
-   byte boundries */
+   byte boundaries */
 #define DVMA_REGION_SIZE 0x10000
 #define DVMA_ALIGN(addr) (((addr)+DVMA_REGION_SIZE-1) & \
                          ~(DVMA_REGION_SIZE-1))
diff -urN linux-2.5.63-bk1/include/asm-m68k/io.h linux-2.5.63-bk2/include/asm-m68k/io.h
--- linux-2.5.63-bk1/include/asm-m68k/io.h	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/include/asm-m68k/io.h	Mon Mar 31 12:15:54 2003
@@ -250,7 +250,7 @@
 #define readl(addr)      in_le32(addr)
 #define writel(val,addr) out_le32((addr),(val))
 
-/* those can be defined for both ISA and PCI - it wont work though */
+/* those can be defined for both ISA and PCI - it won't work though */
 #define readb(addr)       in_8(addr)
 #define readw(addr)       in_le16(addr)
 #define writeb(val,addr)  out_8((addr),(val))
diff -urN linux-2.5.63-bk1/include/asm-m68k/posix_types.h linux-2.5.63-bk2/include/asm-m68k/posix_types.h
--- linux-2.5.63-bk1/include/asm-m68k/posix_types.h	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/include/asm-m68k/posix_types.h	Mon Mar 31 12:15:54 2003
@@ -22,6 +22,8 @@
 typedef long		__kernel_time_t;
 typedef long		__kernel_suseconds_t;
 typedef long		__kernel_clock_t;
+typedef int		__kernel_timer_t;
+typedef int		__kernel_clockid_t;
 typedef int		__kernel_daddr_t;
 typedef char *		__kernel_caddr_t;
 typedef unsigned short	__kernel_uid16_t;
diff -urN linux-2.5.63-bk1/include/asm-m68k/swim_iop.h linux-2.5.63-bk2/include/asm-m68k/swim_iop.h
--- linux-2.5.63-bk1/include/asm-m68k/swim_iop.h	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/include/asm-m68k/swim_iop.h	Mon Mar 31 12:15:54 2003
@@ -60,7 +60,7 @@
 
 #define	gcrOnMFMErr	-400	/* GCR (400/800K) on HD media */
 #define	verErr		-84	/* verify failed */
-#define	fmt2Err		-83	/* cant get enough sync during format */
+#define	fmt2Err		-83	/* can't get enough sync during format */
 #define	fmt1Err		-82	/* can't find sector 0 after track format */
 #define	sectNFErr	-81	/* can't find sector */
 #define	seekErr		-80	/* drive error during seek */
diff -urN linux-2.5.63-bk1/include/asm-m68knommu/mcftimer.h linux-2.5.63-bk2/include/asm-m68knommu/mcftimer.h
--- linux-2.5.63-bk1/include/asm-m68knommu/mcftimer.h	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/include/asm-m68knommu/mcftimer.h	Mon Mar 31 12:15:54 2003
@@ -40,6 +40,18 @@
 #define	MCFTIMER_TCN		0x06		/* Timer Counter reg (r/w) */
 #define	MCFTIMER_TER		0x11		/* Timer Event reg (r/w) */
 
+struct mcftimer {
+	unsigned short	tmr;			/* Timer Mode reg (r/w) */
+	unsigned short	reserved1;
+	unsigned short	trr;			/* Timer Reference (r/w) */
+	unsigned short	reserved2;
+	unsigned short	tcr;			/* Timer Capture reg (r/w) */
+	unsigned short	reserved3;
+	unsigned short	tcn;			/* Timer Counter reg (r/w) */
+	unsigned short	reserved4;
+	unsigned char	reserved5;
+	unsigned char	ter;			/* Timer Event reg (r/w) */
+} __attribute__((packed));
 
 /*
  *	Bit definitions for the Timer Mode Register (TMR).
diff -urN linux-2.5.63-bk1/include/asm-m68knommu/siginfo.h linux-2.5.63-bk2/include/asm-m68knommu/siginfo.h
--- linux-2.5.63-bk1/include/asm-m68knommu/siginfo.h	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/include/asm-m68knommu/siginfo.h	Mon Mar 31 12:15:54 2003
@@ -1 +1,6 @@
-#include <asm-m68k/siginfo.h>
+#ifndef _M68KNOMMU_SIGINFO_H
+#define _M68KNOMMU_SIGINFO_H
+
+#include <asm-generic/siginfo.h>
+
+#endif
diff -urN linux-2.5.63-bk1/include/asm-m68knommu/unistd.h linux-2.5.63-bk2/include/asm-m68knommu/unistd.h
--- linux-2.5.63-bk1/include/asm-m68knommu/unistd.h	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/include/asm-m68knommu/unistd.h	Mon Mar 31 12:15:54 2003
@@ -221,6 +221,8 @@
 #define __NR_setfsuid32		215
 #define __NR_setfsgid32		216
 
+#define	NR_syscalls		256
+
 /* user-visible error numbers are in the range -1 - -122: see
    <asm-m68k/errno.h> */
 
diff -urN linux-2.5.63-bk1/include/asm-mips/pci.h linux-2.5.63-bk2/include/asm-mips/pci.h
--- linux-2.5.63-bk1/include/asm-mips/pci.h	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/include/asm-mips/pci.h	Mon Mar 31 12:15:54 2003
@@ -102,7 +102,7 @@
  * must match what was provided for in a previous pci_map_single call.  All
  * other usages are undefined.
  *
- * After this call, reads by the cpu to the buffer are guarenteed to see
+ * After this call, reads by the cpu to the buffer are guaranteed to see
  * whatever the device wrote there.
  */
 extern inline void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
diff -urN linux-2.5.63-bk1/include/asm-mips/pgtable.h linux-2.5.63-bk2/include/asm-mips/pgtable.h
--- linux-2.5.63-bk1/include/asm-mips/pgtable.h	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/include/asm-mips/pgtable.h	Mon Mar 31 12:15:54 2003
@@ -291,7 +291,7 @@
 }
 
 /*
- * (pmds are folded into pgds so this doesnt get actually called,
+ * (pmds are folded into pgds so this doesn't get actually called,
  * but the define is needed for a generic inline function.)
  */
 #define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
diff -urN linux-2.5.63-bk1/include/asm-mips64/pci.h linux-2.5.63-bk2/include/asm-mips64/pci.h
--- linux-2.5.63-bk1/include/asm-mips64/pci.h	Mon Feb 24 11:05:07 2003
+++ linux-2.5.63-bk2/include/asm-mips64/pci.h	Mon Mar 31 12:15:54 2003
@@ -126,7 +126,7 @@
  * must match what was provided for in a previous pci_map_single call.  All
  * other usages are undefined.
  *
- * After this call, reads by the cpu to the buffer are guarenteed to see
+ * After this call, reads by the cpu to the buffer are guaranteed to see
  * whatever the device wrote there.
  */
 static inline void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
diff -urN linux-2.5.63-bk1/include/asm-mips64/pgtable.h linux-2.5.63-bk2/include/asm-mips64/pgtable.h
--- linux-2.5.63-bk1/include/asm-mips64/pgtable.h	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/include/asm-mips64/pgtable.h	Mon Mar 31 12:15:54 2003
@@ -318,7 +318,7 @@
 }
 
 /*
- * (pmds are folded into pgds so this doesnt get actually called,
+ * (pmds are folded into pgds so this doesn't get actually called,
  * but the define is needed for a generic inline function.)
  */
 #define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
diff -urN linux-2.5.63-bk1/include/asm-mips64/sn/klconfig.h linux-2.5.63-bk2/include/asm-mips64/sn/klconfig.h
--- linux-2.5.63-bk1/include/asm-mips64/sn/klconfig.h	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/include/asm-mips64/sn/klconfig.h	Mon Mar 31 12:15:54 2003
@@ -293,7 +293,7 @@
  * Each BOARD consists of COMPONENTs and the BOARD structure has 
  * pointers (offsets) to its COMPONENT structure.
  * The COMPONENT structure has version info, size and speed info, revision,
- * error info and the NIC info. This structure can accomodate any
+ * error info and the NIC info. This structure can accommodate any
  * BOARD with arbitrary COMPONENT composition.
  *
  * The ERRORINFO part of each BOARD has error information
diff -urN linux-2.5.63-bk1/include/asm-parisc/eisa_eeprom.h linux-2.5.63-bk2/include/asm-parisc/eisa_eeprom.h
--- linux-2.5.63-bk1/include/asm-parisc/eisa_eeprom.h	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/include/asm-parisc/eisa_eeprom.h	Mon Mar 31 12:15:54 2003
@@ -25,7 +25,7 @@
 	u_int8_t  ver_maj;
 	u_int8_t  ver_min;
 	u_int8_t  num_slots;        /* number of EISA slots in system */
-	u_int16_t csum;             /* checksum, I dont know how to calulate this */
+	u_int16_t csum;             /* checksum, I don't know how to calulate this */
 	u_int8_t  pad[10];
 } __attribute__ ((packed));
 
diff -urN linux-2.5.63-bk1/include/asm-parisc/mman.h linux-2.5.63-bk2/include/asm-parisc/mman.h
--- linux-2.5.63-bk1/include/asm-parisc/mman.h	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/include/asm-parisc/mman.h	Mon Mar 31 12:15:54 2003
@@ -32,7 +32,7 @@
 #define MADV_RANDOM     1               /* expect random page references */
 #define MADV_SEQUENTIAL 2               /* expect sequential page references */
 #define MADV_WILLNEED   3               /* will need these pages */
-#define MADV_DONTNEED   4               /* dont need these pages */
+#define MADV_DONTNEED   4               /* don't need these pages */
 #define MADV_SPACEAVAIL 5               /* insure that resources are reserved */
 #define MADV_VPS_PURGE  6               /* Purge pages from VM page cache */
 #define MADV_VPS_INHERIT 7              /* Inherit parents page size */
diff -urN linux-2.5.63-bk1/include/asm-ppc/page.h linux-2.5.63-bk2/include/asm-ppc/page.h
--- linux-2.5.63-bk1/include/asm-ppc/page.h	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/include/asm-ppc/page.h	Mon Mar 31 12:15:54 2003
@@ -58,7 +58,7 @@
 #endif
 
 
-/* align addr on a size boundry - adjust address up if needed -- Cort */
+/* align addr on a size boundary - adjust address up if needed -- Cort */
 #define _ALIGN(addr,size)	(((addr)+(size)-1)&(~((size)-1)))
 
 /* to align the pointer to the (next) page boundary */
diff -urN linux-2.5.63-bk1/include/asm-ppc/uaccess.h linux-2.5.63-bk2/include/asm-ppc/uaccess.h
--- linux-2.5.63-bk1/include/asm-ppc/uaccess.h	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/include/asm-ppc/uaccess.h	Mon Mar 31 12:15:54 2003
@@ -65,7 +65,7 @@
  * This gets kind of ugly. We want to return _two_ values in "get_user()"
  * and yet we don't want to do any pointers, because that is too much
  * of a performance impact. Thus we have a few rather ugly macros here,
- * and hide all the uglyness from the user.
+ * and hide all the ugliness from the user.
  *
  * The "__xxx" versions of the user access functions are versions that
  * do not verify the address space, that must have been done previously
diff -urN linux-2.5.63-bk1/include/asm-ppc/uninorth.h linux-2.5.63-bk2/include/asm-ppc/uninorth.h
--- linux-2.5.63-bk1/include/asm-ppc/uninorth.h	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/include/asm-ppc/uninorth.h	Mon Mar 31 12:15:54 2003
@@ -111,7 +111,7 @@
 #define UNI_N_ARB_CTRL_QACK_DELAY105	0x00
 
 /* This one _might_ return the CPU number of the CPU reading it;
- * the bootROM decides wether to boot or to sleep/spinloop depending
+ * the bootROM decides whether to boot or to sleep/spinloop depending
  * on this register beeing 0 or not
  */
 #define UNI_N_CPU_NUMBER		0x0050
diff -urN linux-2.5.63-bk1/include/asm-ppc64/page.h linux-2.5.63-bk2/include/asm-ppc64/page.h
--- linux-2.5.63-bk1/include/asm-ppc64/page.h	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/include/asm-ppc64/page.h	Mon Mar 31 12:15:54 2003
@@ -114,11 +114,11 @@
 
 #endif /* __ASSEMBLY__ */
 
-/* align addr on a size boundry - adjust address up/down if needed */
+/* align addr on a size boundary - adjust address up/down if needed */
 #define _ALIGN_UP(addr,size)	(((addr)+((size)-1))&(~((size)-1)))
 #define _ALIGN_DOWN(addr,size)	((addr)&(~((size)-1)))
 
-/* align addr on a size boundry - adjust address up if needed */
+/* align addr on a size boundary - adjust address up if needed */
 #define _ALIGN(addr,size)     _ALIGN_UP(addr,size)
 
 /* to align the pointer to the (next) double word boundary */
diff -urN linux-2.5.63-bk1/include/asm-ppc64/pgtable.h linux-2.5.63-bk2/include/asm-ppc64/pgtable.h
--- linux-2.5.63-bk1/include/asm-ppc64/pgtable.h	Mon Feb 24 11:05:46 2003
+++ linux-2.5.63-bk2/include/asm-ppc64/pgtable.h	Mon Mar 31 12:15:54 2003
@@ -198,7 +198,7 @@
  * Find an entry in a page-table-directory.  We combine the address region 
  * (the high order N bits) and the pgd portion of the address.
  */
-/* to avoid overflow in free_pgtables we dont use PTRS_PER_PGD here */
+/* to avoid overflow in free_pgtables we don't use PTRS_PER_PGD here */
 #define pgd_index(address) (((address) >> (PGDIR_SHIFT)) & 0x7ff)
 
 #define pgd_offset(mm, address)	 ((mm)->pgd + pgd_index(address))
diff -urN linux-2.5.63-bk1/include/asm-ppc64/uaccess.h linux-2.5.63-bk2/include/asm-ppc64/uaccess.h
--- linux-2.5.63-bk1/include/asm-ppc64/uaccess.h	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/include/asm-ppc64/uaccess.h	Mon Mar 31 12:15:54 2003
@@ -73,7 +73,7 @@
  * This gets kind of ugly. We want to return _two_ values in "get_user()"
  * and yet we don't want to do any pointers, because that is too much
  * of a performance impact. Thus we have a few rather ugly macros here,
- * and hide all the uglyness from the user.
+ * and hide all the ugliness from the user.
  *
  * The "__xxx" versions of the user access functions are versions that
  * do not verify the address space, that must have been done previously
diff -urN linux-2.5.63-bk1/include/asm-s390/ccwdev.h linux-2.5.63-bk2/include/asm-s390/ccwdev.h
--- linux-2.5.63-bk1/include/asm-s390/ccwdev.h	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/include/asm-s390/ccwdev.h	Mon Mar 31 12:15:54 2003
@@ -120,7 +120,7 @@
 					/* device is no longer available     */
 	int (*set_online) (struct ccw_device *);
 	int (*set_offline) (struct ccw_device *);
-	struct device_driver driver;	/* higher level structure, dont init
+	struct device_driver driver;	/* higher level structure, don't init
 					   this from your driver	     */
 	char *name;
 };
diff -urN linux-2.5.63-bk1/include/asm-s390/rwsem.h linux-2.5.63-bk2/include/asm-s390/rwsem.h
--- linux-2.5.63-bk1/include/asm-s390/rwsem.h	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/include/asm-s390/rwsem.h	Mon Mar 31 12:15:54 2003
@@ -38,7 +38,7 @@
  */
 
 #ifndef _LINUX_RWSEM_H
-#error please dont include asm/rwsem.h directly, use linux/rwsem.h instead
+#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead"
 #endif
 
 #ifdef __KERNEL__
diff -urN linux-2.5.63-bk1/include/asm-s390x/ccwdev.h linux-2.5.63-bk2/include/asm-s390x/ccwdev.h
--- linux-2.5.63-bk1/include/asm-s390x/ccwdev.h	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/include/asm-s390x/ccwdev.h	Mon Mar 31 12:15:54 2003
@@ -120,7 +120,7 @@
 					/* device is no longer available     */
 	int (*set_online) (struct ccw_device *);
 	int (*set_offline) (struct ccw_device *);
-	struct device_driver driver;	/* higher level structure, dont init
+	struct device_driver driver;	/* higher level structure, don't init
 					   this from your driver	     */
 	char *name;
 };
diff -urN linux-2.5.63-bk1/include/asm-s390x/rwsem.h linux-2.5.63-bk2/include/asm-s390x/rwsem.h
--- linux-2.5.63-bk1/include/asm-s390x/rwsem.h	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/include/asm-s390x/rwsem.h	Mon Mar 31 12:15:54 2003
@@ -38,7 +38,7 @@
  */
 
 #ifndef _LINUX_RWSEM_H
-#error please dont include asm/rwsem.h directly, use linux/rwsem.h instead
+#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead"
 #endif
 
 #ifdef __KERNEL__
diff -urN linux-2.5.63-bk1/include/asm-sh/pci.h linux-2.5.63-bk2/include/asm-sh/pci.h
--- linux-2.5.63-bk1/include/asm-sh/pci.h	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/include/asm-sh/pci.h	Mon Mar 31 12:15:54 2003
@@ -118,7 +118,7 @@
  * must match what was provided for in a previous pci_map_single call.  All
  * other usages are undefined.
  *
- * After this call, reads by the cpu to the buffer are guarenteed to see
+ * After this call, reads by the cpu to the buffer are guaranteed to see
  * whatever the device wrote there.
  */
 static inline void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
diff -urN linux-2.5.63-bk1/include/asm-sh/semaphore.h linux-2.5.63-bk2/include/asm-sh/semaphore.h
--- linux-2.5.63-bk1/include/asm-sh/semaphore.h	Mon Feb 24 11:06:01 2003
+++ linux-2.5.63-bk2/include/asm-sh/semaphore.h	Mon Mar 31 12:15:54 2003
@@ -54,7 +54,7 @@
  *	*sem = (struct semaphore)__SEMAPHORE_INITIALIZER((*sem),val);
  *
  * i'd rather use the more flexible initialization above, but sadly
- * GCC 2.7.2.3 emits a bogus warning. EGCS doesnt. Oh well.
+ * GCC 2.7.2.3 emits a bogus warning. EGCS doesn't. Oh well.
  */
 	atomic_set(&sem->count, val);
 	sem->sleepers = 0;
diff -urN linux-2.5.63-bk1/include/asm-sparc/pci.h linux-2.5.63-bk2/include/asm-sparc/pci.h
--- linux-2.5.63-bk1/include/asm-sparc/pci.h	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/include/asm-sparc/pci.h	Mon Mar 31 12:15:54 2003
@@ -59,7 +59,7 @@
  * must match what was provided for in a previous pci_map_single call.  All
  * other usages are undefined.
  *
- * After this call, reads by the cpu to the buffer are guarenteed to see
+ * After this call, reads by the cpu to the buffer are guaranteed to see
  * whatever the device wrote there.
  */
 extern void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr, size_t size, int direction);
diff -urN linux-2.5.63-bk1/include/asm-sparc/uaccess.h linux-2.5.63-bk2/include/asm-sparc/uaccess.h
--- linux-2.5.63-bk1/include/asm-sparc/uaccess.h	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/include/asm-sparc/uaccess.h	Mon Mar 31 12:15:54 2003
@@ -89,7 +89,7 @@
  * This gets kind of ugly. We want to return _two_ values in "get_user()"
  * and yet we don't want to do any pointers, because that is too much
  * of a performance impact. Thus we have a few rather ugly macros here,
- * and hide all the uglyness from the user.
+ * and hide all the ugliness from the user.
  */
 #define put_user(x,ptr) ({ \
 unsigned long __pu_addr = (unsigned long)(ptr); \
diff -urN linux-2.5.63-bk1/include/asm-sparc64/pbm.h linux-2.5.63-bk2/include/asm-sparc64/pbm.h
--- linux-2.5.63-bk1/include/asm-sparc64/pbm.h	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/include/asm-sparc64/pbm.h	Mon Mar 31 12:15:54 2003
@@ -59,7 +59,7 @@
 	unsigned long	iommu_ctxflush;		/* IOMMU context flush register */
 
 	/* This is a register in the PCI controller, which if
-	 * read will have no side-effects but will guarentee
+	 * read will have no side-effects but will guarantee
 	 * completion of all previous writes into IOMMU/STC.
 	 */
 	unsigned long	write_complete_reg;
diff -urN linux-2.5.63-bk1/include/asm-sparc64/pci.h linux-2.5.63-bk2/include/asm-sparc64/pci.h
--- linux-2.5.63-bk1/include/asm-sparc64/pci.h	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/include/asm-sparc64/pci.h	Mon Mar 31 12:15:54 2003
@@ -67,7 +67,7 @@
  * must match what was provided for in a previous pci_map_single call.  All
  * other usages are undefined.
  *
- * After this call, reads by the cpu to the buffer are guarenteed to see
+ * After this call, reads by the cpu to the buffer are guaranteed to see
  * whatever the device wrote there.
  */
 extern void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr, size_t size, int direction);
diff -urN linux-2.5.63-bk1/include/asm-sparc64/rwsem.h linux-2.5.63-bk2/include/asm-sparc64/rwsem.h
--- linux-2.5.63-bk1/include/asm-sparc64/rwsem.h	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/include/asm-sparc64/rwsem.h	Mon Mar 31 12:15:54 2003
@@ -8,7 +8,7 @@
 #define _SPARC64_RWSEM_H
 
 #ifndef _LINUX_RWSEM_H
-#error please dont include asm/rwsem.h directly, use linux/rwsem.h instead
+#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead"
 #endif
 
 #ifdef __KERNEL__
diff -urN linux-2.5.63-bk1/include/asm-sparc64/uaccess.h linux-2.5.63-bk2/include/asm-sparc64/uaccess.h
--- linux-2.5.63-bk1/include/asm-sparc64/uaccess.h	Mon Feb 24 11:05:17 2003
+++ linux-2.5.63-bk2/include/asm-sparc64/uaccess.h	Mon Mar 31 12:15:54 2003
@@ -96,7 +96,7 @@
  * This gets kind of ugly. We want to return _two_ values in "get_user()"
  * and yet we don't want to do any pointers, because that is too much
  * of a performance impact. Thus we have a few rather ugly macros here,
- * and hide all the uglyness from the user.
+ * and hide all the ugliness from the user.
  */
 #define put_user(x,ptr) ({ \
 unsigned long __pu_addr = (unsigned long)(ptr); \
diff -urN linux-2.5.63-bk1/include/asm-um/pgtable.h linux-2.5.63-bk2/include/asm-um/pgtable.h
--- linux-2.5.63-bk1/include/asm-um/pgtable.h	Mon Feb 24 11:06:03 2003
+++ linux-2.5.63-bk2/include/asm-um/pgtable.h	Mon Mar 31 12:15:54 2003
@@ -226,7 +226,7 @@
 }
 
 /*
- * (pmds are folded into pgds so this doesnt get actually called,
+ * (pmds are folded into pgds so this doesn't get actually called,
  * but the define is needed for a generic inline function.)
  */
 #define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
diff -urN linux-2.5.63-bk1/include/asm-v850/sim.h linux-2.5.63-bk2/include/asm-v850/sim.h
--- linux-2.5.63-bk1/include/asm-v850/sim.h	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/include/asm-v850/sim.h	Mon Mar 31 12:15:54 2003
@@ -22,7 +22,7 @@
 #define PLATFORM_LONG		"GDB V850E simulator"
 
 
-/* We use a wierd value for RAM, not just 0, for testing purposes.
+/* We use a weird value for RAM, not just 0, for testing purposes.
    These must match the values used in the linker script.  */
 #define RAM_ADDR		0x8F000000
 #define RAM_SIZE		0x01000000
diff -urN linux-2.5.63-bk1/include/asm-x86_64/rwsem.h linux-2.5.63-bk2/include/asm-x86_64/rwsem.h
--- linux-2.5.63-bk1/include/asm-x86_64/rwsem.h	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/include/asm-x86_64/rwsem.h	Mon Mar 31 12:15:54 2003
@@ -34,7 +34,7 @@
 #define _X8664_RWSEM_H
 
 #ifndef _LINUX_RWSEM_H
-#error please dont include asm/rwsem.h directly, use linux/rwsem.h instead
+#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead"
 #endif
 
 #ifdef __KERNEL__
diff -urN linux-2.5.63-bk1/include/asm-x86_64/semaphore.h linux-2.5.63-bk2/include/asm-x86_64/semaphore.h
--- linux-2.5.63-bk1/include/asm-x86_64/semaphore.h	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/include/asm-x86_64/semaphore.h	Mon Mar 31 12:15:54 2003
@@ -78,7 +78,7 @@
  *	*sem = (struct semaphore)__SEMAPHORE_INITIALIZER((*sem),val);
  *
  * i'd rather use the more flexible initialization above, but sadly
- * GCC 2.7.2.3 emits a bogus warning. EGCS doesnt. Oh well.
+ * GCC 2.7.2.3 emits a bogus warning. EGCS doesn't. Oh well.
  */
 	atomic_set(&sem->count, val);
 	sem->sleepers = 0;
diff -urN linux-2.5.63-bk1/include/asm-x86_64/uaccess.h linux-2.5.63-bk2/include/asm-x86_64/uaccess.h
--- linux-2.5.63-bk1/include/asm-x86_64/uaccess.h	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/include/asm-x86_64/uaccess.h	Mon Mar 31 12:15:54 2003
@@ -79,7 +79,7 @@
  * This gets kind of ugly. We want to return _two_ values in "get_user()"
  * and yet we don't want to do any pointers, because that is too much
  * of a performance impact. Thus we have a few rather ugly macros here,
- * and hide all the uglyness from the user.
+ * and hide all the ugliness from the user.
  *
  * The "__xxx" versions of the user access functions are versions that
  * do not verify the address space, that must have been done previously
diff -urN linux-2.5.63-bk1/include/linux/acpi.h linux-2.5.63-bk2/include/linux/acpi.h
--- linux-2.5.63-bk1/include/linux/acpi.h	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/include/linux/acpi.h	Mon Mar 31 12:15:54 2003
@@ -79,7 +79,7 @@
 
 struct acpi_table_rsdt {
 	struct acpi_table_header header;
-	u32			entry[1];
+	u32			entry[8];
 } __attribute__ ((packed));
 
 /* Extended System Description Table (XSDT) */
diff -urN linux-2.5.63-bk1/include/linux/cyclades.h linux-2.5.63-bk2/include/linux/cyclades.h
--- linux-2.5.63-bk1/include/linux/cyclades.h	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/include/linux/cyclades.h	Mon Mar 31 12:15:54 2003
@@ -141,7 +141,7 @@
 /****************** ****************** *******************/
 /*
  *	The data types defined below are used in all ZFIRM interface
- *	data structures. They accomodate differences between HW
+ *	data structures. They accommodate differences between HW
  *	architectures and compilers.
  */
 
diff -urN linux-2.5.63-bk1/include/linux/dcache.h linux-2.5.63-bk2/include/linux/dcache.h
--- linux-2.5.63-bk1/include/linux/dcache.h	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/include/linux/dcache.h	Mon Mar 31 12:15:54 2003
@@ -262,6 +262,8 @@
 static __inline__ struct dentry * dget(struct dentry *dentry)
 {
 	if (dentry) {
+		if (!atomic_read(&dentry->d_count))
+			BUG();
 		atomic_inc(&dentry->d_count);
 		dentry->d_vfs_flags |= DCACHE_REFERENCED;
 	}
diff -urN linux-2.5.63-bk1/include/linux/fs.h linux-2.5.63-bk2/include/linux/fs.h
--- linux-2.5.63-bk1/include/linux/fs.h	Mon Feb 24 11:05:13 2003
+++ linux-2.5.63-bk2/include/linux/fs.h	Mon Mar 31 12:15:54 2003
@@ -743,9 +743,9 @@
 	int (*setattr) (struct dentry *, struct iattr *);
 	int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
 	int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
-	ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t,int);
-	ssize_t (*listxattr) (struct dentry *, char *, size_t, int);
-	int (*removexattr) (struct dentry *, const char *, int);
+	ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
+	ssize_t (*listxattr) (struct dentry *, char *, size_t);
+	int (*removexattr) (struct dentry *, const char *);
 };
 
 struct seq_file;
diff -urN linux-2.5.63-bk1/include/linux/i2c-proc.h linux-2.5.63-bk2/include/linux/i2c-proc.h
--- linux-2.5.63-bk1/include/linux/i2c-proc.h	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/include/linux/i2c-proc.h	Mon Mar 31 12:15:54 2003
@@ -69,8 +69,7 @@
    these functions must be updated! */
 extern int i2c_register_entry(struct i2c_client *client,
 				  const char *prefix,
-				  ctl_table * ctl_template,
-				  struct module *controlling_mod);
+				  ctl_table * ctl_template);
 
 extern void i2c_deregister_entry(int id);
 
diff -urN linux-2.5.63-bk1/include/linux/if.h linux-2.5.63-bk2/include/linux/if.h
--- linux-2.5.63-bk1/include/linux/if.h	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/include/linux/if.h	Mon Mar 31 12:15:54 2003
@@ -59,7 +59,7 @@
 #define IF_IFACE_X21	0x1002		/* X.21 serial interface	*/
 #define IF_IFACE_T1	0x1003		/* T1 telco serial interface	*/
 #define IF_IFACE_E1	0x1004		/* E1 telco serial interface	*/
-#define IF_IFACE_SYNC_SERIAL 0x1005	/* cant'b be set by software	*/
+#define IF_IFACE_SYNC_SERIAL 0x1005	/* can't be set by software	*/
 
 /* For definitions see hdlc.h */
 #define IF_PROTO_HDLC	0x2000		/* raw HDLC protocol		*/
diff -urN linux-2.5.63-bk1/include/linux/jiffies.h linux-2.5.63-bk2/include/linux/jiffies.h
--- linux-2.5.63-bk1/include/linux/jiffies.h	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/include/linux/jiffies.h	Mon Mar 31 12:15:54 2003
@@ -28,7 +28,7 @@
  *	These inlines deal with timer wrapping correctly. You are 
  *	strongly encouraged to use them
  *	1. Because people otherwise forget
- *	2. Because if the timer wrap changes in future you wont have to
+ *	2. Because if the timer wrap changes in future you won't have to
  *	   alter your driver code.
  *
  * time_after(a,b) returns true if the time a is after time b.
diff -urN linux-2.5.63-bk1/include/linux/mm.h linux-2.5.63-bk2/include/linux/mm.h
--- linux-2.5.63-bk1/include/linux/mm.h	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/include/linux/mm.h	Mon Mar 31 12:15:54 2003
@@ -232,11 +232,15 @@
 static inline void put_page(struct page *page)
 {
 	if (PageCompound(page)) {
-		page = (struct page *)page->lru.next;
-		if (page->lru.prev) {	/* destructor? */
-			(*(void (*)(struct page *))page->lru.prev)(page);
-			return;
+		if (put_page_testzero(page)) {
+			page = (struct page *)page->lru.next;
+			if (page->lru.prev) {	/* destructor? */
+				(*(void (*)(struct page *))page->lru.prev)(page);
+			} else {
+				__page_cache_release(page);
+			}
 		}
+		return;
 	}
 	if (!PageReserved(page) && put_page_testzero(page))
 		__page_cache_release(page);
diff -urN linux-2.5.63-bk1/include/linux/n_r3964.h linux-2.5.63-bk2/include/linux/n_r3964.h
--- linux-2.5.63-bk1/include/linux/n_r3964.h	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/include/linux/n_r3964.h	Mon Mar 31 12:15:54 2003
@@ -165,7 +165,7 @@
 {
 	unsigned int length;             /* length in chars without header */
 	unsigned char *data;             /* usually data is located 
-                                        immediatly behind this struct */
+                                        immediately behind this struct */
 	unsigned int locks;              /* only used in rx_buffer */
 	  
     struct r3964_block_header *next;
diff -urN linux-2.5.63-bk1/include/linux/rwsem-spinlock.h linux-2.5.63-bk2/include/linux/rwsem-spinlock.h
--- linux-2.5.63-bk1/include/linux/rwsem-spinlock.h	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/include/linux/rwsem-spinlock.h	Mon Mar 31 12:15:54 2003
@@ -9,7 +9,7 @@
 #define _LINUX_RWSEM_SPINLOCK_H
 
 #ifndef _LINUX_RWSEM_H
-#error please dont include linux/rwsem-spinlock.h directly, use linux/rwsem.h instead
+#error "please don't include linux/rwsem-spinlock.h directly, use linux/rwsem.h instead"
 #endif
 
 #include <linux/spinlock.h>
diff -urN linux-2.5.63-bk1/include/linux/serial.h linux-2.5.63-bk2/include/linux/serial.h
--- linux-2.5.63-bk1/include/linux/serial.h	Mon Feb 24 11:05:12 2003
+++ linux-2.5.63-bk2/include/linux/serial.h	Mon Mar 31 12:15:54 2003
@@ -91,6 +91,7 @@
 #define UART_CLEAR_FIFO		0x01
 #define UART_USE_FIFO		0x02
 #define UART_STARTECH		0x04
+#define UART_NATSEMI		0x08
 
 /*
  * Definitions for async_struct (and serial_struct) flags field
diff -urN linux-2.5.63-bk1/include/linux/serial_core.h linux-2.5.63-bk2/include/linux/serial_core.h
--- linux-2.5.63-bk1/include/linux/serial_core.h	Mon Feb 24 11:05:09 2003
+++ linux-2.5.63-bk2/include/linux/serial_core.h	Mon Mar 31 12:15:54 2003
@@ -37,7 +37,8 @@
 #define PORT_16654	11
 #define PORT_16850	12
 #define PORT_RSA	13
-#define PORT_MAX_8250	13	/* max port ID */
+#define PORT_NS16550A	14
+#define PORT_MAX_8250	14	/* max port ID */
 
 /*
  * ARM specific type numbers.  These are not currently guaranteed
@@ -172,6 +173,7 @@
 #define UPF_LOW_LATENCY		(1 << 13)
 #define UPF_BUGGY_UART		(1 << 14)
 #define UPF_AUTOPROBE		(1 << 15)
+#define UPF_MAGIC_MULTIPLIER	(1 << 16)
 #define UPF_BOOT_ONLYMCA	(1 << 22)
 #define UPF_CONS_FLOW		(1 << 23)
 #define UPF_SHARE_IRQ		(1 << 24)
@@ -179,7 +181,7 @@
 #define UPF_RESOURCES		(1 << 30)
 #define UPF_IOREMAP		(1 << 31)
 
-#define UPF_CHANGE_MASK		(0x7fff)
+#define UPF_CHANGE_MASK		(0x17fff)
 #define UPF_USR_MASK		(UPF_SPD_MASK|UPF_LOW_LATENCY)
 
 	unsigned int		mctrl;			/* current modem ctrl settings */
@@ -279,12 +281,11 @@
  * Baud rate helpers.
  */
 void uart_update_timeout(struct uart_port *port, unsigned int cflag,
-			 unsigned int quot);
+			 unsigned int baud);
 unsigned int uart_get_baud_rate(struct uart_port *port, struct termios *termios,
 				struct termios *old, unsigned int min,
 				unsigned int max);
-unsigned int uart_get_divisor(struct uart_port *port, struct termios *termios,
-			      struct termios *old_termios);
+unsigned int uart_get_divisor(struct uart_port *port, unsigned int baud);
 
 /*
  * Console helpers.
diff -urN linux-2.5.63-bk1/include/linux/telephony.h linux-2.5.63-bk2/include/linux/telephony.h
--- linux-2.5.63-bk1/include/linux/telephony.h	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/include/linux/telephony.h	Mon Mar 31 12:15:54 2003
@@ -68,7 +68,7 @@
 * device installed in your system.  The PHONECTL_CAPABILITIES ioctl
 * returns an integer value indicating the number of capabilities the   
 * device has.  The PHONECTL_CAPABILITIES_LIST will fill an array of 
-* capability structs with all of it's capabilities.  The
+* capability structs with all of its capabilities.  The
 * PHONECTL_CAPABILITIES_CHECK takes a single capability struct and returns
 * a TRUE if the device has that capability, otherwise it returns false.
 * 
diff -urN linux-2.5.63-bk1/include/linux/time.h linux-2.5.63-bk2/include/linux/time.h
--- linux-2.5.63-bk1/include/linux/time.h	Mon Feb 24 11:05:35 2003
+++ linux-2.5.63-bk2/include/linux/time.h	Mon Mar 31 12:15:54 2003
@@ -28,6 +28,12 @@
 #include <linux/seqlock.h>
 
 /*
+ * Have the 32 bit jiffies value wrap 5 minutes after boot
+ * so jiffies wrap bugs show up earlier.
+ */
+#define INITIAL_JIFFIES ((unsigned int) (-300*HZ))
+
+/*
  * Change timeval to jiffies, trying to avoid the
  * most obvious overflows..
  *
diff -urN linux-2.5.63-bk1/include/linux/xattr.h linux-2.5.63-bk2/include/linux/xattr.h
--- linux-2.5.63-bk1/include/linux/xattr.h	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/include/linux/xattr.h	Mon Mar 31 12:15:54 2003
@@ -9,8 +9,7 @@
 #ifndef _LINUX_XATTR_H
 #define _LINUX_XATTR_H
 
-#define XATTR_CREATE		0x1	/* fail if attr already exists */
-#define XATTR_REPLACE		0x2	/* fail if attr does not exist */
-#define XATTR_KERNEL_CONTEXT	0x4	/* called from kernel context */
+#define XATTR_CREATE	0x1	/* set value, fail if attr already exists */
+#define XATTR_REPLACE	0x2	/* set value, fail if attr does not exist */
 
 #endif	/* _LINUX_XATTR_H */
diff -urN linux-2.5.63-bk1/include/net/dn_dev.h linux-2.5.63-bk2/include/net/dn_dev.h
--- linux-2.5.63-bk1/include/net/dn_dev.h	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/include/net/dn_dev.h	Mon Mar 31 12:15:54 2003
@@ -45,7 +45,7 @@
  * device will come up. In the dn_dev structure, it is the actual
  * state.
  *
- * Things have changed here. I've killed timer1 since its a user space
+ * Things have changed here. I've killed timer1 since it's a user space
  * issue for a user space routing deamon to sort out. The kernel does
  * not need to be bothered with it.
  *
diff -urN linux-2.5.63-bk1/include/net/irda/vlsi_ir.h linux-2.5.63-bk2/include/net/irda/vlsi_ir.h
--- linux-2.5.63-bk1/include/net/irda/vlsi_ir.h	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/include/net/irda/vlsi_ir.h	Mon Mar 31 12:15:54 2003
@@ -382,7 +382,7 @@
  *		PLSWID = (pulsetime * freq / (BAUD+1)) - 1
  *			where pulsetime is the requested IrPHY pulse width
  *			and freq is 8(16)MHz for 40(48)MHz primary input clock
- *		PREAMB: dont care for SIR
+ *		PREAMB: don't care for SIR
  *
  *		The nominal SIR pulse width is 3/16 bit time so we have PLSWID=12
  *		fixed for all SIR speeds at 40MHz input clock (PLSWID=24 at 48MHz).
@@ -401,7 +401,7 @@
  *		PREAMB = 1
  *
  * FIR-mode:	BAUD = 0
- *		PLSWID: dont care
+ *		PLSWID: don't care
  *		PREAMB = 15
  */
 
diff -urN linux-2.5.63-bk1/include/net/iw_handler.h linux-2.5.63-bk2/include/net/iw_handler.h
--- linux-2.5.63-bk1/include/net/iw_handler.h	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/include/net/iw_handler.h	Mon Mar 31 12:15:54 2003
@@ -92,7 +92,7 @@
  * The implementation goals were as follow :
  *	o Obvious : you should not need a PhD to understand what's happening,
  *		the benefit is easier maintainance.
- *	o Flexible : it should accomodate a wide variety of driver
+ *	o Flexible : it should accommodate a wide variety of driver
  *		implementations and be as flexible as the old API.
  *	o Lean : it should be efficient memory wise to minimise the impact
  *		on kernel footprint.
diff -urN linux-2.5.63-bk1/include/sound/cs46xx_dsp_spos.h linux-2.5.63-bk2/include/sound/cs46xx_dsp_spos.h
--- linux-2.5.63-bk1/include/sound/cs46xx_dsp_spos.h	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/include/sound/cs46xx_dsp_spos.h	Mon Mar 31 12:15:54 2003
@@ -36,12 +36,12 @@
 #define SEGTYPE_SP_COEFFICIENT          0x00000004
 
 #define DSP_SPOS_UU      0x0deadul     /* unused */
-#define DSP_SPOS_DC      0x0badul      /* dont care */
-#define DSP_SPOS_DC_DC   0x0bad0badul  /* dont care */
+#define DSP_SPOS_DC      0x0badul      /* don't care */
+#define DSP_SPOS_DC_DC   0x0bad0badul  /* don't care */
 #define DSP_SPOS_UUUU    0xdeadc0edul  /* unused */
 #define DSP_SPOS_UUHI    0xdeadul
 #define DSP_SPOS_UULO    0xc0edul
-#define DSP_SPOS_DCDC    0x0badf1d0ul  /* dont care */
+#define DSP_SPOS_DCDC    0x0badf1d0ul  /* don't care */
 #define DSP_SPOS_DCDCHI  0x0badul
 #define DSP_SPOS_DCDCLO  0xf1d0ul
 
diff -urN linux-2.5.63-bk1/include/sound/wavefront.h linux-2.5.63-bk2/include/sound/wavefront.h
--- linux-2.5.63-bk1/include/sound/wavefront.h	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/include/sound/wavefront.h	Mon Mar 31 12:15:54 2003
@@ -687,7 +687,7 @@
 
 /* Allow direct user-space control over FX memory/coefficient data.
    In theory this could be used to download the FX microprogram,
-   but it would be a little slower, and involve some wierd code.
+   but it would be a little slower, and involve some weird code.
  */
 
 #define WFFX_MEMSET              69
diff -urN linux-2.5.63-bk1/init/do_mounts.c linux-2.5.63-bk2/init/do_mounts.c
--- linux-2.5.63-bk1/init/do_mounts.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/init/do_mounts.c	Mon Mar 31 12:15:54 2003
@@ -297,13 +297,12 @@
 		 * Allow the user to distinguish between failed open
 		 * and bad superblock on root device.
 		 */
-		printk ("VFS: Cannot open root device \"%s\" or %s\n",
-			root_device_name, kdevname (to_kdev_t(ROOT_DEV)));
-		printk ("Please append a correct \"root=\" boot option\n");
-		panic("VFS: Unable to mount root fs on %s",
-			kdevname(to_kdev_t(ROOT_DEV)));
+		printk("VFS: Cannot open root device \"%s\" or %s\n",
+			root_device_name, __bdevname(ROOT_DEV));
+		printk("Please append a correct \"root=\" boot option\n");
+		panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV));
 	}
-	panic("VFS: Unable to mount root fs on %s", kdevname(to_kdev_t(ROOT_DEV)));
+	panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV));
 out:
 	putname(fs_names);
 	sys_chdir("/root");
diff -urN linux-2.5.63-bk1/kernel/exit.c linux-2.5.63-bk2/kernel/exit.c
--- linux-2.5.63-bk1/kernel/exit.c	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/kernel/exit.c	Mon Mar 31 12:15:54 2003
@@ -482,7 +482,7 @@
 
 static inline void reparent_thread(task_t *p, task_t *father, int traced)
 {
-	/* We dont want people slaying init.  */
+	/* We don't want people slaying init.  */
 	if (p->exit_signal != -1)
 		p->exit_signal = SIGCHLD;
 	p->self_exec_id++;
diff -urN linux-2.5.63-bk1/kernel/fork.c linux-2.5.63-bk2/kernel/fork.c
--- linux-2.5.63-bk1/kernel/fork.c	Mon Feb 24 11:05:07 2003
+++ linux-2.5.63-bk2/kernel/fork.c	Mon Mar 31 12:15:54 2003
@@ -446,7 +446,7 @@
 		tsk->clear_child_tid = NULL;
 
 		/*
-		 * We dont check the error code - if userspace has
+		 * We don't check the error code - if userspace has
 		 * not set up a proper pointer then tough luck.
 		 */
 		put_user(0, tidptr);
@@ -901,7 +901,7 @@
 
 	/*
 	 * Share the timeslice between parent and child, thus the
-	 * total amount of pending timeslices in the system doesnt change,
+	 * total amount of pending timeslices in the system doesn't change,
 	 * resulting in more scheduling fairness.
 	 */
 	local_irq_disable();
diff -urN linux-2.5.63-bk1/kernel/futex.c linux-2.5.63-bk2/kernel/futex.c
--- linux-2.5.63-bk1/kernel/futex.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/kernel/futex.c	Mon Mar 31 12:15:54 2003
@@ -297,7 +297,7 @@
 		time = schedule_timeout(time);
 	set_current_state(TASK_RUNNING);
 	/*
-	 * NOTE: we dont remove ourselves from the waitqueue because
+	 * NOTE: we don't remove ourselves from the waitqueue because
 	 * we are the only user of it.
 	 */
 	if (time == 0) {
diff -urN linux-2.5.63-bk1/kernel/module.c linux-2.5.63-bk2/kernel/module.c
--- linux-2.5.63-bk1/kernel/module.c	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/kernel/module.c	Mon Mar 31 12:15:54 2003
@@ -76,6 +76,22 @@
 }
 EXPORT_SYMBOL(init_module);
 
+/* Find a module section: 0 means not found. */
+static unsigned int find_sec(Elf_Ehdr *hdr,
+			     Elf_Shdr *sechdrs,
+			     const char *secstrings,
+			     const char *name)
+{
+	unsigned int i;
+
+	for (i = 1; i < hdr->e_shnum; i++)
+		/* Alloc bit cleared means "ignore it." */
+		if ((sechdrs[i].sh_flags & SHF_ALLOC)
+		    && strcmp(secstrings+sechdrs[i].sh_name, name) == 0)
+			return i;
+	return 0;
+}
+
 /* Find a symbol, return value and the symbol group */
 static unsigned long __find_symbol(const char *name,
 				   struct kernel_symbol_group **group,
@@ -173,16 +189,19 @@
 	struct module_use *use;
 	if (b == NULL || already_uses(a, b)) return 1;
 
+	if (!strong_try_module_get(b))
+		return 0;
+
 	DEBUGP("Allocating new usage for %s.\n", a->name);
 	use = kmalloc(sizeof(*use), GFP_ATOMIC);
 	if (!use) {
 		printk("%s: out of memory loading\n", a->name);
+		module_put(b);
 		return 0;
 	}
 
 	use->module_which_uses = a;
 	list_add(&use->list, &b->modules_which_use_me);
-	try_module_get(b); /* Can't fail */
 	return 1;
 }
 
@@ -875,45 +894,6 @@
 }
 EXPORT_SYMBOL_GPL(__symbol_get);
 
-/* Deal with the given section */
-static int handle_section(const char *name,
-			  Elf_Shdr *sechdrs,
-			  unsigned int strindex,
-			  unsigned int symindex,
-			  unsigned int i,
-			  struct module *mod)
-{
-	int ret;
-	const char *strtab = (char *)sechdrs[strindex].sh_addr;
-
-	switch (sechdrs[i].sh_type) {
-	case SHT_REL:
-		ret = apply_relocate(sechdrs, strtab, symindex, i, mod);
-		break;
-	case SHT_RELA:
-		ret = apply_relocate_add(sechdrs, strtab, symindex, i, mod);
-		break;
-	default:
-		DEBUGP("Ignoring section %u: %s\n", i,
-		       sechdrs[i].sh_type==SHT_NULL ? "NULL":
-		       sechdrs[i].sh_type==SHT_PROGBITS ? "PROGBITS":
-		       sechdrs[i].sh_type==SHT_SYMTAB ? "SYMTAB":
-		       sechdrs[i].sh_type==SHT_STRTAB ? "STRTAB":
-		       sechdrs[i].sh_type==SHT_RELA ? "RELA":
-		       sechdrs[i].sh_type==SHT_HASH ? "HASH":
-		       sechdrs[i].sh_type==SHT_DYNAMIC ? "DYNAMIC":
-		       sechdrs[i].sh_type==SHT_NOTE ? "NOTE":
-		       sechdrs[i].sh_type==SHT_NOBITS ? "NOBITS":
-		       sechdrs[i].sh_type==SHT_REL ? "REL":
-		       sechdrs[i].sh_type==SHT_SHLIB ? "SHLIB":
-		       sechdrs[i].sh_type==SHT_DYNSYM ? "DYNSYM":
-		       sechdrs[i].sh_type==SHT_NUM ? "NUM":
-		       "UNKNOWN");
-		ret = 0;
-	}
-	return ret;
-}
-
 /* Change all symbols so that sh_value encodes the pointer directly. */
 static int simplify_symbols(Elf_Shdr *sechdrs,
 			    unsigned int symindex,
@@ -1103,93 +1083,19 @@
 	sechdrs = (void *)hdr + hdr->e_shoff;
 	secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
 
-	/* May not export symbols, or have setup params, so these may
-           not exist */
-	exportindex = setupindex = obsparmindex = gplindex = licenseindex 
-		= crcindex = gplcrcindex = versindex = 0;
-
 	/* And these should exist, but gcc whinges if we don't init them */
-	symindex = strindex = exindex = modindex = vmagindex = 0;
+	symindex = strindex = 0;
 
-	/* Find where important sections are */
 	for (i = 1; i < hdr->e_shnum; i++) {
 		/* Mark all sections sh_addr with their address in the
 		   temporary image. */
 		sechdrs[i].sh_addr = (size_t)hdr + sechdrs[i].sh_offset;
 
+		/* Internal symbols and strings. */
 		if (sechdrs[i].sh_type == SHT_SYMTAB) {
-			/* Internal symbols */
-			DEBUGP("Symbol table in section %u\n", i);
 			symindex = i;
-			/* Strings */
 			strindex = sechdrs[i].sh_link;
-			DEBUGP("String table found in section %u\n", strindex);
-		} else if (strcmp(secstrings+sechdrs[i].sh_name,
-				  ".gnu.linkonce.this_module") == 0) {
-			/* The module struct */
-			DEBUGP("Module in section %u\n", i);
-			modindex = i;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name, "__ksymtab")
-			   == 0) {
-			/* Exported symbols. */
-			DEBUGP("EXPORT table in section %u\n", i);
-			exportindex = i;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name,
-				  "__ksymtab_gpl") == 0) {
-			/* Exported symbols. (GPL) */
-			DEBUGP("GPL symbols found in section %u\n", i);
-			gplindex = i;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name, "__kcrctab")
-			   == 0) {
-			/* Exported symbols CRCs. */
-			DEBUGP("CRC table in section %u\n", i);
-			crcindex = i;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name, "__kcrctab_gpl")
-			   == 0) {
-			/* Exported symbols CRCs. (GPL)*/
-			DEBUGP("CRC table in section %u\n", i);
-			gplcrcindex = i;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name, "__param")
-			   == 0) {
-			/* Setup parameter info */
-			DEBUGP("Setup table found in section %u\n", i);
-			setupindex = i;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name, "__ex_table")
-			   == 0) {
-			/* Exception table */
-			DEBUGP("Exception table found in section %u\n", i);
-			exindex = i;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name, "__obsparm")
-			   == 0) {
-			/* Obsolete MODULE_PARM() table */
-			DEBUGP("Obsolete param found in section %u\n", i);
-			obsparmindex = i;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name,".init.license")
-			   == 0) {
-			/* MODULE_LICENSE() */
-			DEBUGP("Licence found in section %u\n", i);
-			licenseindex = i;
-			sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name,
-				  "__vermagic") == 0 &&
-			   (sechdrs[i].sh_flags & SHF_ALLOC)) {
-			/* Version magic. */
-			DEBUGP("Version magic found in section %u\n", i);
-			vmagindex = i;
-			sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name,
-				  "__versions") == 0 &&
-			   (sechdrs[i].sh_flags & SHF_ALLOC)) {
-			/* Module version info (both exported and needed) */
-			DEBUGP("Versions found in section %u\n", i);
-			versindex = i;
-			sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
 		}
-#ifdef CONFIG_KALLSYMS
-		/* symbol and string tables for decoding later. */
-		if (sechdrs[i].sh_type == SHT_SYMTAB || i == strindex)
-			sechdrs[i].sh_flags |= SHF_ALLOC;
-#endif
 #ifndef CONFIG_MODULE_UNLOAD
 		/* Don't load .exit sections */
 		if (strstr(secstrings+sechdrs[i].sh_name, ".exit"))
@@ -1197,6 +1103,14 @@
 #endif
 	}
 
+#ifdef CONFIG_KALLSYMS
+	/* Keep symbol and string tables for decoding later. */
+	sechdrs[symindex].sh_flags |= SHF_ALLOC;
+	sechdrs[strindex].sh_flags |= SHF_ALLOC;
+#endif
+
+	modindex = find_sec(hdr, sechdrs, secstrings,
+			    ".gnu.linkonce.this_module");
 	if (!modindex) {
 		printk(KERN_WARNING "No module found in object\n");
 		err = -ENOEXEC;
@@ -1204,6 +1118,18 @@
 	}
 	mod = (void *)sechdrs[modindex].sh_addr;
 
+	/* Optional sections */
+	exportindex = find_sec(hdr, sechdrs, secstrings, "__ksymtab");
+	gplindex = find_sec(hdr, sechdrs, secstrings, "__ksymtab_gpl");
+	crcindex = find_sec(hdr, sechdrs, secstrings, "__kcrctab");
+	gplcrcindex = find_sec(hdr, sechdrs, secstrings, "__kcrctab_gpl");
+	setupindex = find_sec(hdr, sechdrs, secstrings, "__param");
+	exindex = find_sec(hdr, sechdrs, secstrings, "__ex_table");
+	obsparmindex = find_sec(hdr, sechdrs, secstrings, "__obsparm");
+	licenseindex = find_sec(hdr, sechdrs, secstrings, ".init.license");
+	vmagindex = find_sec(hdr, sechdrs, secstrings, "__vermagic");
+	versindex = find_sec(hdr, sechdrs, secstrings, "__versions");
+
 	/* Check module struct version now, before we try to use module. */
 	if (!check_modstruct_version(sechdrs, versindex, mod)) {
 		err = -ENOEXEC;
@@ -1336,10 +1262,15 @@
 		mod->extable.entry = (void *)sechdrs[exindex].sh_addr;
 	}
 
-	/* Now handle each section. */
+	/* Now do relocations. */
 	for (i = 1; i < hdr->e_shnum; i++) {
-		err = handle_section(secstrings + sechdrs[i].sh_name,
-				     sechdrs, strindex, symindex, i, mod);
+		const char *strtab = (char *)sechdrs[strindex].sh_addr;
+		if (sechdrs[i].sh_type == SHT_REL)
+			err = apply_relocate(sechdrs, strtab, symindex, i,
+					     mod);
+		else if (sechdrs[i].sh_type == SHT_RELA)
+			err = apply_relocate_add(sechdrs, strtab, symindex, i,
+						 mod);
 		if (err < 0)
 			goto cleanup;
 	}
@@ -1456,10 +1387,12 @@
 	}
 
 	/* Now it's a first class citizen! */
+	down(&module_mutex);
 	mod->state = MODULE_STATE_LIVE;
 	module_free(mod, mod->module_init);
 	mod->module_init = NULL;
 	mod->init_size = 0;
+	up(&module_mutex);
 
 	return 0;
 }
diff -urN linux-2.5.63-bk1/kernel/sys.c linux-2.5.63-bk2/kernel/sys.c
--- linux-2.5.63-bk1/kernel/sys.c	Mon Feb 24 11:05:07 2003
+++ linux-2.5.63-bk2/kernel/sys.c	Mon Mar 31 12:15:54 2003
@@ -870,7 +870,7 @@
 		if (copy_to_user(tbuf, &tmp, sizeof(struct tms)))
 			return -EFAULT;
 	}
-	return jiffies_to_clock_t(jiffies);
+	return (long) jiffies_64_to_clock_t(get_jiffies_64());
 }
 
 /*
diff -urN linux-2.5.63-bk1/kernel/timer.c linux-2.5.63-bk2/kernel/timer.c
--- linux-2.5.63-bk1/kernel/timer.c	Mon Feb 24 11:05:41 2003
+++ linux-2.5.63-bk2/kernel/timer.c	Mon Mar 31 12:15:54 2003
@@ -757,7 +757,7 @@
 }
 
 /* jiffies at the most recent update of wall time */
-unsigned long wall_jiffies;
+unsigned long wall_jiffies = INITIAL_JIFFIES;
 
 /*
  * This read-write spinlock protects us from races in SMP while
@@ -1104,7 +1104,7 @@
 	do {
 		seq = read_seqbegin(&xtime_lock);
 
-		uptime = jiffies_64;
+		uptime = jiffies_64 - INITIAL_JIFFIES;
 		do_div(uptime, HZ);
 		val.uptime = (unsigned long) uptime;
 
@@ -1180,6 +1180,13 @@
 	}
 	for (j = 0; j < TVR_SIZE; j++)
 		INIT_LIST_HEAD(base->tv1.vec + j);
+
+	base->timer_jiffies = INITIAL_JIFFIES;
+	base->tv1.index = INITIAL_JIFFIES & TVR_MASK;
+	base->tv2.index = (INITIAL_JIFFIES >> TVR_BITS) & TVN_MASK;
+	base->tv3.index = (INITIAL_JIFFIES >> (TVR_BITS+TVN_BITS)) & TVN_MASK;
+	base->tv4.index = (INITIAL_JIFFIES >> (TVR_BITS+2*TVN_BITS)) & TVN_MASK;
+	base->tv5.index = (INITIAL_JIFFIES >> (TVR_BITS+3*TVN_BITS)) & TVN_MASK;
 }
 	
 static int __devinit timer_cpu_notify(struct notifier_block *self, 
diff -urN linux-2.5.63-bk1/lib/crc32.c linux-2.5.63-bk2/lib/crc32.c
--- linux-2.5.63-bk1/lib/crc32.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/lib/crc32.c	Mon Mar 31 12:15:54 2003
@@ -90,19 +90,16 @@
 	const u32      *tab = crc32table_le;
 
 # ifdef __LITTLE_ENDIAN
-#  define DO_CRC crc = (crc>>8) ^ tab[ crc & 255 ]
-#  define ENDIAN_SHIFT 0
+#  define DO_CRC(x) crc = tab[ (crc ^ (x)) & 255 ] ^ (crc>>8)
 # else
-#  define DO_CRC crc = (crc<<8) ^ tab[ crc >> 24 ]
-#  define ENDIAN_SHIFT 24
+#  define DO_CRC(x) crc = tab[ ((crc >> 24) ^ (x)) & 255] ^ (crc<<8)
 # endif
 
 	crc = __cpu_to_le32(crc);
 	/* Align it */
 	if(unlikely(((long)b)&3 && len)){
 		do {
-			crc ^= *((u8 *)b)++ << ENDIAN_SHIFT;
-			DO_CRC;
+			DO_CRC(*((u8 *)b)++);
 		} while ((--len) && ((long)b)&3 );
 	}
 	if(likely(len >= 4)){
@@ -112,10 +109,10 @@
 		--b; /* use pre increment below(*++b) for speed */
 		do {
 			crc ^= *++b;
-			DO_CRC;
-			DO_CRC;
-			DO_CRC;
-			DO_CRC;
+			DO_CRC(0);
+			DO_CRC(0);
+			DO_CRC(0);
+			DO_CRC(0);
 		} while (--len);
 		b++; /* point to next byte(s) */
 		len = save_len;
@@ -123,8 +120,7 @@
 	/* And the last few bytes */
 	if(len){
 		do {
-			crc ^= *((u8 *)b)++ << ENDIAN_SHIFT;
-			DO_CRC;
+			DO_CRC(*((u8 *)b)++);
 		} while (--len);
 	}
 
@@ -195,19 +191,16 @@
 	const u32      *tab = crc32table_be;
 
 # ifdef __LITTLE_ENDIAN
-#  define DO_CRC crc = (crc>>8) ^ tab[ crc & 255 ]
-#  define ENDIAN_SHIFT 24
+#  define DO_CRC(x) crc = tab[ (crc ^ (x)) & 255 ] ^ (crc>>8)
 # else
-#  define DO_CRC crc = (crc<<8) ^ tab[ crc >> 24 ]
-#  define ENDIAN_SHIFT 0
+#  define DO_CRC(x) crc = tab[ ((crc >> 24) ^ (x)) & 255] ^ (crc<<8)
 # endif
 
 	crc = __cpu_to_be32(crc);
 	/* Align it */
 	if(unlikely(((long)b)&3 && len)){
 		do {
-			crc ^= *((u8 *)b)++ << ENDIAN_SHIFT;
-			DO_CRC;
+			DO_CRC(*((u8 *)b)++);
 		} while ((--len) && ((long)b)&3 );
 	}
 	if(likely(len >= 4)){
@@ -217,10 +210,10 @@
 		--b; /* use pre increment below(*++b) for speed */
 		do {
 			crc ^= *++b;
-			DO_CRC;
-			DO_CRC;
-			DO_CRC;
-			DO_CRC;
+			DO_CRC(0);
+			DO_CRC(0);
+			DO_CRC(0);
+			DO_CRC(0);
 		} while (--len);
 		b++; /* point to next byte(s) */
 		len = save_len;
@@ -228,8 +221,7 @@
 	/* And the last few bytes */
 	if(len){
 		do {
-			crc ^= *((u8 *)b)++ << ENDIAN_SHIFT;
-			DO_CRC;
+			DO_CRC(*((u8 *)b)++);
 		} while (--len);
 	}
 	return __be32_to_cpu(crc);
diff -urN linux-2.5.63-bk1/lib/crc32defs.h linux-2.5.63-bk2/lib/crc32defs.h
--- linux-2.5.63-bk1/lib/crc32defs.h	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/lib/crc32defs.h	Mon Mar 31 12:15:54 2003
@@ -8,8 +8,12 @@
 
 /* How many bits at a time to use.  Requires a table of 4<<CRC_xx_BITS bytes. */
 /* For less performance-sensitive, use 4 */
-#define CRC_LE_BITS 8
-#define CRC_BE_BITS 8
+#ifndef CRC_LE_BITS 
+# define CRC_LE_BITS 8
+#endif
+#ifndef CRC_BE_BITS
+# define CRC_BE_BITS 8
+#endif
 
 /*
  * Little-endian CRC computation.  Used with serial bit streams sent
diff -urN linux-2.5.63-bk1/mm/filemap.c linux-2.5.63-bk2/mm/filemap.c
--- linux-2.5.63-bk1/mm/filemap.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/mm/filemap.c	Mon Mar 31 12:15:54 2003
@@ -559,21 +559,12 @@
 		page_cache_readahead(mapping, ra, filp, index);
 
 		nr = nr - offset;
-
-		/*
-		 * Try to find the data in the page cache..
-		 */
 find_page:
-		read_lock(&mapping->page_lock);
-		page = radix_tree_lookup(&mapping->page_tree, index);
-		if (!page) {
-			read_unlock(&mapping->page_lock);
-			handle_ra_miss(mapping,ra);
+		page = find_get_page(mapping, index);
+		if (unlikely(page == NULL)) {
+			handle_ra_miss(mapping, ra);
 			goto no_cached_page;
 		}
-		page_cache_get(page);
-		read_unlock(&mapping->page_lock);
-
 		if (!PageUptodate(page))
 			goto page_not_up_to_date;
 page_ok:
diff -urN linux-2.5.63-bk1/mm/memory.c linux-2.5.63-bk2/mm/memory.c
--- linux-2.5.63-bk1/mm/memory.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/mm/memory.c	Mon Mar 31 12:15:54 2003
@@ -158,9 +158,7 @@
 		pmd_populate(mm, pmd, new);
 	}
 out:
-	if (pmd_present(*pmd))
-		return pte_offset_map(pmd, address);
-	return NULL;
+	return pte_offset_map(pmd, address);
 }
 
 pte_t * pte_alloc_kernel(struct mm_struct *mm, pmd_t *pmd, unsigned long address)
diff -urN linux-2.5.63-bk1/mm/oom_kill.c linux-2.5.63-bk2/mm/oom_kill.c
--- linux-2.5.63-bk1/mm/oom_kill.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/mm/oom_kill.c	Mon Mar 31 12:15:54 2003
@@ -61,6 +61,9 @@
 
 	if (!p->mm)
 		return 0;
+
+	if (p->flags & PF_MEMDIE)
+		return 0;
 	/*
 	 * The memory size of the process is the basis for the badness.
 	 */
diff -urN linux-2.5.63-bk1/mm/slab.c linux-2.5.63-bk2/mm/slab.c
--- linux-2.5.63-bk1/mm/slab.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/mm/slab.c	Mon Mar 31 12:15:54 2003
@@ -1643,7 +1643,7 @@
 	if (cachep->ctor && cachep->flags & SLAB_POISON) {
 		unsigned long	ctor_flags = SLAB_CTOR_CONSTRUCTOR;
 
-		if (!flags & __GFP_WAIT)
+		if (!(flags & __GFP_WAIT))
 			ctor_flags |= SLAB_CTOR_ATOMIC;
 
 		cachep->ctor(objp, cachep, ctor_flags);
@@ -2064,7 +2064,7 @@
 	else
 		limit = 248;
 
-#ifndef DEBUG
+#if DEBUG
 	/* With debugging enabled, large batchcount lead to excessively
 	 * long periods with disabled local interrupts. Limit the 
 	 * batchcount
diff -urN linux-2.5.63-bk1/net/8021q/vlan.h linux-2.5.63-bk2/net/8021q/vlan.h
--- linux-2.5.63-bk1/net/8021q/vlan.h	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/net/8021q/vlan.h	Mon Mar 31 12:15:54 2003
@@ -38,7 +38,7 @@
 extern struct vlan_group *vlan_group_hash[VLAN_GRP_HASH_SIZE];
 extern spinlock_t vlan_group_lock;
 
-/*  Find a VLAN device by the MAC address of it's Ethernet device, and
+/*  Find a VLAN device by the MAC address of its Ethernet device, and
  *  it's VLAN ID.  The default configuration is to have VLAN's scope
  *  to be box-wide, so the MAC will be ignored.  The mac will only be
  *  looked at if we are configured to have a separate set of VLANs per
diff -urN linux-2.5.63-bk1/net/core/dev.c linux-2.5.63-bk2/net/core/dev.c
--- linux-2.5.63-bk1/net/core/dev.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/net/core/dev.c	Mon Mar 31 12:15:54 2003
@@ -1215,7 +1215,7 @@
 #ifdef OFFLINE_SAMPLE
 static void sample_queue(unsigned long dummy)
 {
-/* 10 ms 0r 1ms -- i dont care -- JHS */
+/* 10 ms 0r 1ms -- i don't care -- JHS */
 	int next_tick = 1;
 	int cpu = smp_processor_id();
 
diff -urN linux-2.5.63-bk1/net/core/netfilter.c linux-2.5.63-bk2/net/core/netfilter.c
--- linux-2.5.63-bk1/net/core/netfilter.c	Mon Feb 24 11:05:31 2003
+++ linux-2.5.63-bk2/net/core/netfilter.c	Mon Mar 31 12:15:54 2003
@@ -606,7 +606,7 @@
 	struct net_device *dev_src = NULL;
 	int err;
 
-	/* accomodate ip_route_output_slow(), which expects the key src to be
+	/* accommodate ip_route_output_slow(), which expects the key src to be
 	   0 or a local address; however some non-standard hacks like
 	   ipt_REJECT.c:send_reset() can cause packets with foreign
            saddr to be appear on the NF_IP_LOCAL_OUT hook -MB */
diff -urN linux-2.5.63-bk1/net/decnet/dn_dev.c linux-2.5.63-bk2/net/decnet/dn_dev.c
--- linux-2.5.63-bk1/net/decnet/dn_dev.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/net/decnet/dn_dev.c	Mon Mar 31 12:15:54 2003
@@ -18,7 +18,7 @@
  *          Steve Whitehouse : Multiple ifaddr support
  *          Steve Whitehouse : SIOCGIFCONF is now a compile time option
  *          Steve Whitehouse : /proc/sys/net/decnet/conf/<sys>/forwarding
- *          Steve Whitehouse : Removed timer1 - its a user space issue now
+ *          Steve Whitehouse : Removed timer1 - it's a user space issue now
  *         Patrick Caulfield : Fixed router hello message format
  */
 
@@ -807,7 +807,7 @@
  * This is one of those areas where the initial VMS concepts don't really
  * map onto the Linux concepts, and since we introduced multiple addresses
  * per interface we have to cope with slightly odd ways of finding out what
- * "our address" really is. Mostly its not a problem; for this we just guess
+ * "our address" really is. Mostly it's not a problem; for this we just guess
  * a sensible default. Eventually the routing code will take care of all the
  * nasties for us I hope.
  */
diff -urN linux-2.5.63-bk1/net/ipv4/netfilter/ip_conntrack_irc.c linux-2.5.63-bk2/net/ipv4/netfilter/ip_conntrack_irc.c
--- linux-2.5.63-bk1/net/ipv4/netfilter/ip_conntrack_irc.c	Mon Mar 31 12:15:46 2003
+++ linux-2.5.63-bk2/net/ipv4/netfilter/ip_conntrack_irc.c	Mon Mar 31 12:15:54 2003
@@ -107,7 +107,7 @@
 static int help(const struct iphdr *iph, size_t len,
 		struct ip_conntrack *ct, enum ip_conntrack_info ctinfo)
 {
-	/* tcplen not negative guarenteed by ip_conntrack_tcp.c */
+	/* tcplen not negative guaranteed by ip_conntrack_tcp.c */
 	struct tcphdr *tcph = (void *) iph + iph->ihl * 4;
 	const char *data = (const char *) tcph + tcph->doff * 4;
 	const char *_data = data;
diff -urN linux-2.5.63-bk1/net/ipv4/netfilter/ip_nat_irc.c linux-2.5.63-bk2/net/ipv4/netfilter/ip_nat_irc.c
--- linux-2.5.63-bk1/net/ipv4/netfilter/ip_nat_irc.c	Mon Feb 24 11:06:02 2003
+++ linux-2.5.63-bk2/net/ipv4/netfilter/ip_nat_irc.c	Mon Mar 31 12:15:54 2003
@@ -188,7 +188,7 @@
 
 	datalen = (*pskb)->len - iph->ihl * 4 - tcph->doff * 4;
 	LOCK_BH(&ip_irc_lock);
-	/* Check wether the whole IP/address pattern is carried in the payload */
+	/* Check whether the whole IP/address pattern is carried in the payload */
 	if (between(exp->seq + ct_irc_info->len,
 		    ntohl(tcph->seq),
 		    ntohl(tcph->seq) + datalen)) {
diff -urN linux-2.5.63-bk1/net/ipv4/tcp.c linux-2.5.63-bk2/net/ipv4/tcp.c
--- linux-2.5.63-bk1/net/ipv4/tcp.c	Mon Feb 24 11:05:14 2003
+++ linux-2.5.63-bk2/net/ipv4/tcp.c	Mon Mar 31 12:15:54 2003
@@ -172,7 +172,7 @@
  *					ack if state is TCP_CLOSED.
  *		Alan Cox	:	Look up device on a retransmit - routes may
  *					change. Doesn't yet cope with MSS shrink right
- *					but its a start!
+ *					but it's a start!
  *		Marc Tamsky	:	Closing in closing fixes.
  *		Mike Shaver	:	RFC1122 verifications.
  *		Alan Cox	:	rcv_saddr errors.
diff -urN linux-2.5.63-bk1/net/ipv6/ndisc.c linux-2.5.63-bk2/net/ipv6/ndisc.c
--- linux-2.5.63-bk1/net/ipv6/ndisc.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/net/ipv6/ndisc.c	Mon Mar 31 12:15:54 2003
@@ -208,7 +208,7 @@
 		default:
 			/*
 			 * Unknown options must be silently ignored,
-			 * to accomodate future extension to the protocol.
+			 * to accommodate future extension to the protocol.
 			 */
 			ND_PRINTK2(KERN_WARNING
 				   "ndisc_parse_options(): ignored unsupported option; type=%d, len=%d\n",
diff -urN linux-2.5.63-bk1/net/ipx/af_ipx.c linux-2.5.63-bk2/net/ipx/af_ipx.c
--- linux-2.5.63-bk1/net/ipx/af_ipx.c	Mon Feb 24 11:05:11 2003
+++ linux-2.5.63-bk2/net/ipx/af_ipx.c	Mon Mar 31 12:15:54 2003
@@ -684,7 +684,7 @@
 	if (ipx->ipx_source.net != intrfc->if_netnum) {
 		/*
 		 * Unshare the buffer before modifying the count in
-		 * case its a flood or tcpdump
+		 * case it's a flood or tcpdump
 		 */
 		skb = skb_unshare(skb, GFP_ATOMIC);
 		if (!skb)
diff -urN linux-2.5.63-bk1/net/llc/af_llc.c linux-2.5.63-bk2/net/llc/af_llc.c
--- linux-2.5.63-bk1/net/llc/af_llc.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/net/llc/af_llc.c	Mon Mar 31 12:15:54 2003
@@ -301,7 +301,7 @@
 	llc->daddr.lsap = addr->sllc_dsap;
 	memcpy(llc->daddr.mac, addr->sllc_dmac, IFHWADDRLEN);
 	memcpy(&llc->addr, addr, sizeof(llc->addr));
-	/* assign new connection to it's SAP */
+	/* assign new connection to its SAP */
 	llc_sap_assign_sock(sap, sk);
 	rc = sk->zapped = 0;
 out:
diff -urN linux-2.5.63-bk1/net/sched/sch_gred.c linux-2.5.63-bk2/net/sched/sch_gred.c
--- linux-2.5.63-bk1/net/sched/sch_gred.c	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/net/sched/sch_gred.c	Mon Mar 31 12:15:54 2003
@@ -416,7 +416,7 @@
 	memcpy(q->Stab, RTA_DATA(tb[TCA_GRED_STAB-1]), 256);
 
 	if ( table->initd && table->grio) {
-	/* this looks ugly but its not in the fast path */
+	/* this looks ugly but it's not in the fast path */
 		for (i=0;i<table->DPs;i++) {
 			if ((!table->tab[i]) || (i==q->DP) )    
 				continue; 
diff -urN linux-2.5.63-bk1/scripts/README.Menuconfig linux-2.5.63-bk2/scripts/README.Menuconfig
--- linux-2.5.63-bk1/scripts/README.Menuconfig	Mon Feb 24 11:05:30 2003
+++ linux-2.5.63-bk2/scripts/README.Menuconfig	Mon Mar 31 12:15:54 2003
@@ -127,7 +127,7 @@
 source tree is fresh, or changes are patched into it via a kernel
 patch or you do 'make mrproper'.  If changes to lxdialog are patched
 in, most likely the rebuild time will be short.  You may force a
-complete rebuild of lxdialog by changing to it's directory and doing
+complete rebuild of lxdialog by changing to its directory and doing
 'make clean all'
 
 If you use Menuconfig in an XTERM window make sure you have your 
diff -urN linux-2.5.63-bk1/sound/core/device.c linux-2.5.63-bk2/sound/core/device.c
--- linux-2.5.63-bk1/sound/core/device.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/sound/core/device.c	Mon Mar 31 12:15:54 2003
@@ -144,7 +144,7 @@
  * Registers the device which was already created via
  * snd_device_new().  Usually this is called from snd_card_register(),
  * but it can be called later if any new devices are created after
- * invokation of snd_card_register().
+ * invocation of snd_card_register().
  *
  * Returns zero if successful, or a negative error code on failure or if the
  * device not found.
diff -urN linux-2.5.63-bk1/sound/drivers/mtpav.c linux-2.5.63-bk2/sound/drivers/mtpav.c
--- linux-2.5.63-bk1/sound/drivers/mtpav.c	Mon Feb 24 11:05:40 2003
+++ linux-2.5.63-bk2/sound/drivers/mtpav.c	Mon Mar 31 12:15:54 2003
@@ -102,7 +102,7 @@
 /*
  *      defines
  */
-//#define USE_FAKE_MTP //       dont actually read/write to MTP device (for debugging without an actual unit) (does not work yet)
+//#define USE_FAKE_MTP //       don't actually read/write to MTP device (for debugging without an actual unit) (does not work yet)
 
 // parallel port usage masks
 #define SIGS_BYTE 0x08
@@ -763,7 +763,7 @@
 	if (err < 0)
 		goto __error;
 
-	err = snd_card_register(mtp_card->card);	// dont snd_card_register until AFTER all cards reources done!
+	err = snd_card_register(mtp_card->card);	// don't snd_card_register until AFTER all cards reources done!
 
 	//printk("snd_card_register returned %d\n", err);
 	if (err < 0)
diff -urN linux-2.5.63-bk1/sound/i2c/l3/uda1341.c linux-2.5.63-bk2/sound/i2c/l3/uda1341.c
--- linux-2.5.63-bk1/sound/i2c/l3/uda1341.c	Mon Feb 24 11:05:32 2003
+++ linux-2.5.63-bk2/sound/i2c/l3/uda1341.c	Mon Mar 31 12:15:54 2003
@@ -494,7 +494,7 @@
 	
 	DEBUG_NAME(KERN_DEBUG "info_enum where: %d\n", where);
 
-	// this register we dont handle this way
+	// this register we don't handle this way
 	if (!uda1341_enum_items[where])
 		return -EINVAL;
 
diff -urN linux-2.5.63-bk1/sound/isa/wavefront/wavefront_fx.c linux-2.5.63-bk2/sound/isa/wavefront/wavefront_fx.c
--- linux-2.5.63-bk1/sound/isa/wavefront/wavefront_fx.c	Mon Feb 24 11:05:36 2003
+++ linux-2.5.63-bk2/sound/isa/wavefront/wavefront_fx.c	Mon Mar 31 12:15:54 2003
@@ -227,7 +227,7 @@
    This code was developed using DOSEMU. The Turtle Beach SETUPSND
    utility was run with I/O tracing in DOSEMU enabled, and a reconstruction
    of the port I/O done, using the Yamaha faxback document as a guide
-   to add more logic to the code. Its really pretty wierd.
+   to add more logic to the code. Its really pretty weird.
 
    There was an alternative approach of just dumping the whole I/O
    sequence as a series of port/value pairs and a simple loop
@@ -692,7 +692,7 @@
 	return (0);
 }
 
-/* wierd stuff, derived from port I/O tracing with dosemu */
+/* weird stuff, derived from port I/O tracing with dosemu */
 
 static unsigned char page_zero[] __initdata = {
 0x01, 0x7c, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00,
diff -urN linux-2.5.63-bk1/sound/isa/wavefront/wavefront_synth.c linux-2.5.63-bk2/sound/isa/wavefront/wavefront_synth.c
--- linux-2.5.63-bk1/sound/isa/wavefront/wavefront_synth.c	Mon Feb 24 11:05:16 2003
+++ linux-2.5.63-bk2/sound/isa/wavefront/wavefront_synth.c	Mon Mar 31 12:15:54 2003
@@ -518,7 +518,7 @@
 /***********************************************************************
 WaveFront data munging   
 
-Things here are wierd. All data written to the board cannot 
+Things here are weird. All data written to the board cannot 
 have its most significant bit set. Any data item with values 
 potentially > 0x7F (127) must be split across multiple bytes.
 
@@ -527,7 +527,7 @@
 that is represented on the x86 side as an array of bytes. The most
 efficient approach to handling both cases seems to be to use 2
 different functions for munging and 2 for de-munging. This avoids
-wierd casting and worrying about bit-level offsets.
+weird casting and worrying about bit-level offsets.
 
 **********************************************************************/
 
@@ -906,7 +906,7 @@
 
 	if (header->size) {
 
-		/* XXX its a debatable point whether or not RDONLY semantics
+		/* XXX it's a debatable point whether or not RDONLY semantics
 		   on the ROM samples should cover just the sample data or
 		   the sample header. For now, it only covers the sample data,
 		   so anyone is free at all times to rewrite sample headers.
@@ -1034,7 +1034,7 @@
 	shptr = munge_int32 (*((u32 *) &header->hdr.s.sampleEndOffset),
 			     shptr, 4);
 	
-	/* This one is truly wierd. What kind of wierdo decided that in
+	/* This one is truly weird. What kind of weirdo decided that in
 	   a system dominated by 16 and 32 bit integers, they would use
 	   a just 12 bits ?
 	*/
diff -urN linux-2.5.63-bk1/sound/oss/ad1816.c linux-2.5.63-bk2/sound/oss/ad1816.c
--- linux-2.5.63-bk1/sound/oss/ad1816.c	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/sound/oss/ad1816.c	Mon Mar 31 12:15:54 2003
@@ -1227,7 +1227,7 @@
 			sound_free_dma(devc->dma_capture);
 		}
 
-		/* card wont get added if resources could not be allocated
+		/* card won't get added if resources could not be allocated
 		   thus we need not ckeck if allocation was successful */
 		sound_free_dma (devc->dma_playback);
 		free_irq(devc->irq, devc->osp);
diff -urN linux-2.5.63-bk1/sound/oss/cs4232.c linux-2.5.63-bk2/sound/oss/cs4232.c
--- linux-2.5.63-bk1/sound/oss/cs4232.c	Mon Feb 24 11:05:34 2003
+++ linux-2.5.63-bk2/sound/oss/cs4232.c	Mon Mar 31 12:15:54 2003
@@ -127,7 +127,7 @@
 	 * method conflicts with possible PnP support in the OS. For this reason 
 	 * driver is just a temporary kludge.
 	 *
-	 * Also the Cirrus/Crystal method doesnt always work. Try ISA PnP first ;)
+	 * Also the Cirrus/Crystal method doesn't always work. Try ISA PnP first ;)
 	 */
 
 	/*
diff -urN linux-2.5.63-bk1/sound/oss/cs46xx.c linux-2.5.63-bk2/sound/oss/cs46xx.c
--- linux-2.5.63-bk1/sound/oss/cs46xx.c	Mon Feb 24 11:05:05 2003
+++ linux-2.5.63-bk2/sound/oss/cs46xx.c	Mon Mar 31 12:15:54 2003
@@ -1016,7 +1016,7 @@
 	}
 		
 	/*
-	 * ganularity is byte boundry, good part.
+	 * ganularity is byte boundary, good part.
 	 */
 	if(dmabuf->enable & DAC_RUNNING)
 	{
diff -urN linux-2.5.63-bk1/sound/oss/dmasound/dmasound_awacs.c linux-2.5.63-bk2/sound/oss/dmasound/dmasound_awacs.c
--- linux-2.5.63-bk1/sound/oss/dmasound/dmasound_awacs.c	Mon Feb 24 11:05:15 2003
+++ linux-2.5.63-bk2/sound/oss/dmasound/dmasound_awacs.c	Mon Mar 31 12:15:54 2003
@@ -1354,7 +1354,7 @@
 			case AWACS_DACA:
 				wait_ms(10); /* Check this !!! */
 				daca_leave_sleep();
-				break ;		/* dont know how yet */
+				break ;		/* don't know how yet */
 			case AWACS_BURGUNDY:
 				break ;
 			case AWACS_SCREAMER:
@@ -2960,7 +2960,7 @@
 			request_module("i2c-keywest");
 #endif /* CONFIG_KMOD */
 			daca_init();
-			break ;		/* dont know how yet */
+			break ;		/* don't know how yet */
 		case AWACS_BURGUNDY:
 			awacs_burgundy_init();
 			break ;
diff -urN linux-2.5.63-bk1/sound/oss/dmasound/dmasound_core.c linux-2.5.63-bk2/sound/oss/dmasound/dmasound_core.c
--- linux-2.5.63-bk1/sound/oss/dmasound/dmasound_core.c	Mon Feb 24 11:05:10 2003
+++ linux-2.5.63-bk2/sound/oss/dmasound/dmasound_core.c	Mon Mar 31 12:15:54 2003
@@ -1212,7 +1212,7 @@
 		return result ;
 		break ;
 	case SNDCTL_DSP_SPEED:
-		/* changing this on the fly will have wierd effects on the sound.
+		/* changing this on the fly will have weird effects on the sound.
 		   Where there are rate conversions implemented in soft form - it
 		   will cause the _ctx_xxx() functions to be substituted.
 		   However, there doesn't appear to be any reason to dis-allow it from
diff -urN linux-2.5.63-bk1/sound/oss/es1371.c linux-2.5.63-bk2/sound/oss/es1371.c
--- linux-2.5.63-bk1/sound/oss/es1371.c	Mon Mar 31 12:15:47 2003
+++ linux-2.5.63-bk2/sound/oss/es1371.c	Mon Mar 31 12:15:54 2003
@@ -73,7 +73,7 @@
  *                       detect the ES1373 and later parts.
  *                       added AC97 #defines for readability
  *                       added a /proc file system for dumping hardware state
- *                       updated SRC and CODEC w/r functions to accomodate bugs
+ *                       updated SRC and CODEC w/r functions to accommodate bugs
  *                       in some versions of the ES137x chips.
  *    31.08.1999   0.17  add spin_lock_init
  *                       replaced current->state = x with set_current_state(x)
diff -urN linux-2.5.63-bk1/sound/oss/maestro.c linux-2.5.63-bk2/sound/oss/maestro.c
--- linux-2.5.63-bk1/sound/oss/maestro.c	Mon Feb 24 11:05:42 2003
+++ linux-2.5.63-bk2/sound/oss/maestro.c	Mon Mar 31 12:15:55 2003
@@ -252,7 +252,7 @@
 
 /* we try to setup 2^(dsps_order) /dev/dsp devices */
 static int dsps_order=0;
-/* wether or not we mess around with power management */
+/* whether or not we mess around with power management */
 static int use_pm=2; /* set to 1 for force */
 /* clocking for broken hardware - a few laptops seem to use a 50Khz clock
 	ie insmod with clocking=50000 or so */
@@ -292,7 +292,7 @@
 
 
 /* changed so that I could actually find all the
-	references and fix them up.  its a little more readable now. */
+	references and fix them up.  it's a little more readable now. */
 #define ESS_FMT_STEREO	0x01
 #define ESS_FMT_16BIT	0x02
 #define ESS_FMT_MASK	0x03
@@ -804,7 +804,7 @@
 
 	if (read) return val;
 
-	/* oss can have many inputs, maestro cant.  try
+	/* oss can have many inputs, maestro can't.  try
 		to pick the 'new' one */
 
 	if (mask != val) mask &= ~val;
@@ -1518,7 +1518,7 @@
 				pa = virt_to_bus(buffer);
 			} else {
 				/* right channel records its split half.
-				*2 accomodates for rampant shifting earlier */
+				*2 accommodates for rampant shifting earlier */
 				pa = virt_to_bus(buffer + size*2);
 			}
 
@@ -3271,7 +3271,7 @@
 	outb(0x88, iobase+0x1f);
 
 	/* it appears some maestros (dell 7500) only work if these are set,
-		regardless of wether we use the assp or not. */
+		regardless of whether we use the assp or not. */
 
 	outb(0, iobase+0xA4); 
 	outb(3, iobase+0xA2); 
@@ -3507,7 +3507,7 @@
 	 * 		or
 	 *		- we're not a 2e, lesser chipps seem to have problems.
 	 *		- we're not on our _very_ small whitelist.  some implemenetations
-	 *			really dont' like the pm code, others require it.
+	 *			really don't like the pm code, others require it.
 	 *			feel free to expand this as required.
 	 */
 #define SUBSYSTEM_VENDOR(x) (x&0xffff)
diff -urN linux-2.5.63-bk1/sound/oss/maestro3.c linux-2.5.63-bk2/sound/oss/maestro3.c
--- linux-2.5.63-bk1/sound/oss/maestro3.c	Mon Feb 24 11:05:43 2003
+++ linux-2.5.63-bk2/sound/oss/maestro3.c	Mon Mar 31 12:15:55 2003
@@ -1916,8 +1916,8 @@
      * the amazingly complicated prog_dmabuf wants it.
      *
      * pci_alloc_sonsistent guarantees that it won't cross a natural
-     * boundry; the m3 hardware can't have dma cross a 64k bus
-     * address boundry.
+     * boundary; the m3 hardware can't have dma cross a 64k bus
+     * address boundary.
      */
     for (order = 16-PAGE_SHIFT; order >= 1; order--) {
         db->rawbuf = pci_alloc_consistent(pci_dev, PAGE_SIZE << order,
diff -urN linux-2.5.63-bk1/sound/oss/opl3sa2.c linux-2.5.63-bk2/sound/oss/opl3sa2.c
--- linux-2.5.63-bk1/sound/oss/opl3sa2.c	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/sound/oss/opl3sa2.c	Mon Mar 31 12:15:55 2003
@@ -918,7 +918,7 @@
 		break;
 	}
 
-	/* its supposed to automute before suspending, so we wont bother */
+	/* its supposed to automute before suspending, so we won't bother */
 	opl3sa2_read(p->cfg_port, OPL3SA2_PM, &p->reg);
 	opl3sa2_write(p->cfg_port, OPL3SA2_PM, p->reg | pm_mode);
 
diff -urN linux-2.5.63-bk1/sound/oss/trident.c linux-2.5.63-bk2/sound/oss/trident.c
--- linux-2.5.63-bk1/sound/oss/trident.c	Mon Feb 24 11:05:39 2003
+++ linux-2.5.63-bk2/sound/oss/trident.c	Mon Mar 31 12:15:55 2003
@@ -19,6 +19,7 @@
  *	Ching-Ling Lee <cling-li@ali.com.tw> ALi 5451 Audio Core Support 
  *	Matt Wu <mattwu@acersoftech.com.cn> ALi 5451 Audio Core Support
  *	Peter Wächtler <pwaechtler@loewe-komp.de> CyberPro5050 support
+ *      Muli Ben-Yehuda <mulix@mulix.org>
  *
  *
  *	This program is free software; you can redistribute it and/or modify
@@ -81,7 +82,7 @@
  *  v0.14.9a
  *	Aug 6 2001 Alan Cox
  *	0.14.9 crashed on rmmod due to a timer/bh left running. Simplified
- *	the existing logic (the BH doesnt help as ac97 is lock_irqsave)
+ *	the existing logic (the BH doesn't help as ac97 is lock_irqsave)
  *	and used del_timer_sync to clean up
  *	Fixed a problem where the ALi change broke my generic card
  *  v0.14.9
@@ -201,6 +202,7 @@
 #include <linux/interrupt.h>
 #include <linux/pm.h>
 #include <linux/gameport.h>
+#include <linux/kernel.h> 
 #include <asm/uaccess.h>
 #include <asm/hardirq.h>
 #include <asm/io.h>
@@ -538,8 +540,8 @@
 
 	outl(global_control, TRID_REG(card, T4D_LFO_GC_CIR));
 
-	TRDBG("trident: Enable Loop Interrupts, globctl = 0x%08X\n",
-	      inl(TRID_REG(card, T4D_LFO_GC_CIR)));
+	pr_debug("trident: Enable Loop Interrupts, globctl = 0x%08X\n",
+		 inl(TRID_REG(card, T4D_LFO_GC_CIR)));
 
 	return (TRUE);
 }
@@ -552,8 +554,8 @@
 	global_control &= ~(ENDLP_IE | MIDLP_IE);
 	outl(global_control, TRID_REG(card, T4D_LFO_GC_CIR));
 
-	TRDBG("trident: Disabled Loop Interrupts, globctl = 0x%08X\n",
-	      global_control);
+	pr_debug("trident: Disabled Loop Interrupts, globctl = 0x%08X\n",
+		 global_control);
 
 	return (TRUE);
 }
@@ -570,8 +572,8 @@
 
 #ifdef DEBUG
 	reg = inl(TRID_REG(card, addr));
-	TRDBG("trident: enabled IRQ on channel %d, %s = 0x%08x(addr:%X)\n",
-	      channel, addr==T4D_AINTEN_B? "AINTEN_B":"AINTEN_A",reg,addr);
+	pr_debug("trident: enabled IRQ on channel %d, %s = 0x%08x(addr:%X)\n",
+		 channel, addr==T4D_AINTEN_B? "AINTEN_B":"AINTEN_A",reg,addr);
 #endif /* DEBUG */ 
 }
 
@@ -590,8 +592,8 @@
 
 #ifdef DEBUG
 	reg = inl(TRID_REG(card, addr));
-	TRDBG("trident: disabled IRQ on channel %d, %s = 0x%08x(addr:%X)\n",
-	      channel, addr==T4D_AINTEN_B? "AINTEN_B":"AINTEN_A",reg,addr);
+	pr_debug("trident: disabled IRQ on channel %d, %s = 0x%08x(addr:%X)\n",
+		 channel, addr==T4D_AINTEN_B? "AINTEN_B":"AINTEN_A",reg,addr);
 #endif /* DEBUG */ 
 }
 
@@ -609,8 +611,8 @@
 
 #ifdef DEBUG 
 	reg = inl(TRID_REG(card, addr));
-	TRDBG("trident: start voice on channel %d, %s = 0x%08x(addr:%X)\n",
-	      channel, addr==T4D_START_B? "START_B":"START_A",reg,addr);
+	pr_debug("trident: start voice on channel %d, %s = 0x%08x(addr:%X)\n",
+		 channel, addr==T4D_START_B? "START_B":"START_A",reg,addr);
 #endif /* DEBUG */ 
 }
 
@@ -628,8 +630,8 @@
 
 #ifdef DEBUG
 	reg = inl(TRID_REG(card, addr));
-	TRDBG("trident: stop voice on channel %d, %s = 0x%08x(addr:%X)\n",
-	      channel, addr==T4D_STOP_B? "STOP_B":"STOP_A",reg,addr);
+	pr_debug("trident: stop voice on channel %d, %s = 0x%08x(addr:%X)\n",
+		 channel, addr==T4D_STOP_B? "STOP_B":"STOP_A",reg,addr);
 #endif /* DEBUG */ 
 }
 
@@ -647,8 +649,8 @@
 
 #ifdef DEBUG
 	if (reg & mask)
-		TRDBG("trident: channel %d has interrupt, %s = 0x%08x\n",
-		      channel,reg==T4D_AINT_B? "AINT_B":"AINT_A", reg);
+		pr_debug("trident: channel %d has interrupt, %s = 0x%08x\n",
+			 channel,reg==T4D_AINT_B? "AINT_B":"AINT_A", reg);
 #endif /* DEBUG */ 
 	return (reg & mask) ? TRUE : FALSE;
 }
@@ -665,8 +667,8 @@
 
 #ifdef DEBUG
 	reg = inl(TRID_REG(card, T4D_AINT_B));
-	TRDBG("trident: Ack channel %d interrupt, AINT_B = 0x%08x\n",
-	      channel, reg);
+	pr_debug("trident: Ack channel %d interrupt, AINT_B = 0x%08x\n",
+		 channel, reg);
 #endif /* DEBUG */ 
 }
 
@@ -914,7 +916,7 @@
 
 	trident_write_voice_regs(state);
 
-	TRDBG("trident: called trident_set_dac_rate : rate = %d\n", rate);
+	pr_debug("trident: called trident_set_dac_rate : rate = %d\n", rate);
 
 	return rate;
 }
@@ -934,7 +936,7 @@
 
 	trident_write_voice_regs(state);
 
-	TRDBG("trident: called trident_set_adc_rate : rate = %d\n", rate);
+	pr_debug("trident: called trident_set_adc_rate : rate = %d\n", rate);
 
 	return rate;
 }
@@ -978,9 +980,9 @@
 		/* stereo */
 		channel->control |= CHANNEL_STEREO;
 
-	TRDBG("trident: trident_play_setup, LBA = 0x%08x, "
-	      "Delta = 0x%08x, ESO = 0x%08x, Control = 0x%08x\n",
-	      channel->lba, channel->delta, channel->eso, channel->control);
+	pr_debug("trident: trident_play_setup, LBA = 0x%08x, "
+		 "Delta = 0x%08x, ESO = 0x%08x, Control = 0x%08x\n",
+		 channel->lba, channel->delta, channel->eso, channel->control);
 
 	trident_write_voice_regs(state);
 }
@@ -1064,9 +1066,9 @@
 		/* stereo */
 		channel->control |= CHANNEL_STEREO;
 	
-	TRDBG("trident: trident_rec_setup, LBA = 0x%08x, "
-	      "Delat = 0x%08x, ESO = 0x%08x, Control = 0x%08x\n",
-	      channel->lba, channel->delta, channel->eso, channel->control);
+	pr_debug("trident: trident_rec_setup, LBA = 0x%08x, "
+		 "Delta = 0x%08x, ESO = 0x%08x, Control = 0x%08x\n",
+		 channel->lba, channel->delta, channel->eso, channel->control);
 
 	trident_write_voice_regs(state);
 }
@@ -1101,8 +1103,8 @@
 	}
 
 	
-	TRDBG("trident: trident_get_dma_addr: chip reported channel: %d, "
-	      "cso = 0x%04x\n", dmabuf->channel->num, cso);
+	pr_debug("trident: trident_get_dma_addr: chip reported channel: %d, "
+		 "cso = 0x%04x\n", dmabuf->channel->num, cso);
 
 	/* ESO and CSO are in units of Samples, convert to byte offset */
 	cso <<= sample_shift[dmabuf->fmt];
@@ -1211,8 +1213,8 @@
 					    &dmabuf->dma_handle)))
 		return -ENOMEM;
 
-	TRDBG("trident: allocated %ld (order = %d) bytes at %p\n",
-	      PAGE_SIZE << order, order, rawbuf);
+	pr_debug("trident: allocated %ld (order = %d) bytes at %p\n",
+		 PAGE_SIZE << order, order, rawbuf);
 
 	dmabuf->ready  = dmabuf->mapped = 0;
 	dmabuf->rawbuf = rawbuf;
@@ -1349,10 +1351,11 @@
 		/* set the ready flag for the dma buffer */
 		dmabuf->ready = 1;
 
-		TRDBG("trident: prog_dmabuf(%d), sample rate = %d, format = %d, numfrag = %d, "
-		      "fragsize = %d dmasize = %d\n",
-		      dmabuf->channel->num, dmabuf->rate, dmabuf->fmt, dmabuf->numfrag,
-		      dmabuf->fragsize, dmabuf->dmasize);
+		pr_debug("trident: prog_dmabuf(%d), sample rate = %d, "
+			 "format = %d, numfrag = %d, fragsize = %d "
+			 "dmasize = %d\n", dmabuf->channel->num, dmabuf->rate, 
+			 dmabuf->fmt, dmabuf->numfrag, dmabuf->fragsize, 
+			 dmabuf->dmasize);
 	}
 	unlock_set_fmt(state);
 	return 0;
@@ -1704,7 +1707,7 @@
 	/* FIXED: read interrupt status only once */
 	irq_status=inl(TRID_REG(card, T4D_AINT_A) );
 
-	TRDBG("cyber_address_interrupt: irq_status 0x%X\n",irq_status);
+	pr_debug("cyber_address_interrupt: irq_status 0x%X\n",irq_status);
 
 	for (i = 0; i < NR_HW_CH; i++) {
 		channel = 31 - i; 
@@ -1712,7 +1715,7 @@
 			/* clear bit by writing a 1, zeroes are ignored */ 		
 			outl( (1 << channel), TRID_REG(card, T4D_AINT_A));
 		
-			TRDBG("cyber_interrupt: channel %d\n", channel);
+			pr_debug("cyber_interrupt: channel %d\n", channel);
 
 			if ((state = card->states[i]) != NULL) {
 				trident_update_ptr(state);
@@ -1735,7 +1738,7 @@
 	spin_lock(&card->lock);
 	event = inl(TRID_REG(card, T4D_MISCINT));
 
-	TRDBG("trident: trident_interrupt called, MISCINT = 0x%08x\n", event);
+	pr_debug("trident: trident_interrupt called, MISCINT = 0x%08x\n", event);
 
 	if (event & ADDRESS_IRQ) {
 		card->address_interrupt(card);
@@ -1773,7 +1776,7 @@
 	unsigned swptr;
 	int cnt;
 
-	TRDBG("trident: trident_read called, count = %d\n", count);
+	pr_debug("trident: trident_read called, count = %d\n", count);
 
 	VALIDATE_STATE(state);
 	if (ppos != &file->f_pos)
@@ -1827,7 +1830,7 @@
 			   which results in a (potential) buffer overrun. And worse, there is
 			   NOTHING we can do to prevent it. */
 			if (!interruptible_sleep_on_timeout(&dmabuf->wait, tmo)) {
-				TRDBG(KERN_ERR "trident: recording schedule timeout, "
+				pr_debug(KERN_ERR "trident: recording schedule timeout, "
 				      "dmasz %u fragsz %u count %i hwptr %u swptr %u\n",
 				      dmabuf->dmasize, dmabuf->fragsize, dmabuf->count,
 				      dmabuf->hwptr, dmabuf->swptr);
@@ -1885,7 +1888,7 @@
 	unsigned int state_cnt;
 	unsigned int copy_count;
 
-	TRDBG("trident: trident_write called, count = %d\n", count);
+	pr_debug("trident: trident_write called, count = %d\n", count);
 
 	VALIDATE_STATE(state);
 	if (ppos != &file->f_pos)
@@ -1954,7 +1957,7 @@
 			   which results in a (potential) buffer underrun. And worse, there is
 			   NOTHING we can do to prevent it. */
 			if (!interruptible_sleep_on_timeout(&dmabuf->wait, tmo)) {
-				TRDBG(KERN_ERR "trident: playback schedule timeout, "
+				pr_debug(KERN_ERR "trident: playback schedule timeout, "
 				      "dmasz %u fragsz %u count %i hwptr %u swptr %u\n",
 				      dmabuf->dmasize, dmabuf->fragsize, dmabuf->count,
 				      dmabuf->hwptr, dmabuf->swptr);
@@ -2137,7 +2140,7 @@
 	VALIDATE_STATE(state);
 	mapped = ((file->f_mode & FMODE_WRITE) && dmabuf->mapped) ||
 		((file->f_mode & FMODE_READ) && dmabuf->mapped);
-	TRDBG("trident: trident_ioctl, command = %2d, arg = 0x%08x\n",
+	pr_debug("trident: trident_ioctl, command = %2d, arg = 0x%08x\n",
 	      _IOC_NR(cmd), arg ? *(int *)arg : 0);
 
 	switch (cmd) 
@@ -2702,7 +2705,7 @@
 	state->open_mode |= file->f_mode & (FMODE_READ | FMODE_WRITE);
 	up(&card->open_sem);
 
-	TRDBG("trident: open virtual channel %d, hard channel %d\n", 
+	pr_debug("trident: open virtual channel %d, hard channel %d\n", 
               state->virt, dmabuf->channel->num);
 
 	return 0;
@@ -2724,7 +2727,7 @@
 		drain_dac(state, file->f_flags & O_NONBLOCK);
 	}
 
-	TRDBG("trident: closing virtual channel %d, hard channel %d\n", 
+	pr_debug("trident: closing virtual channel %d, hard channel %d\n", 
 	      state->virt, dmabuf->channel->num);
 
 	/* stop DMA state machine and free DMA buffers/channels */
@@ -2923,7 +2926,7 @@
 	}
 	if(!block)
 	{
-		TRDBG("accesscodecsemaphore: try unlock\n");
+		pr_debug("accesscodecsemaphore: try unlock\n");
 		block = 1;
 		goto unlock;
 	}
@@ -3002,7 +3005,7 @@
 		if(ncount <=0)
 			break;
 		if(ncount--==1) {
-			TRDBG("ali_ac97_read :try clear busy flag\n");
+			pr_debug("ali_ac97_read :try clear busy flag\n");
 			aud_reg = inl(TRID_REG(card,  ALI_AC97_WRITE));
 			outl((aud_reg & 0xffff7fff), TRID_REG(card, ALI_AC97_WRITE));
 		}
@@ -3061,7 +3064,7 @@
 		if(ncount <= 0)
 			break;
 		if(ncount-- == 1) {
-			TRDBG("ali_ac97_set :try clear busy flag!!\n");
+			pr_debug("ali_ac97_set :try clear busy flag!!\n");
 			outw(wcontrol & 0x7fff, TRID_REG(card, ALI_AC97_WRITE));
 		}
 		udelay(10);
@@ -3933,8 +3936,10 @@
 		udelay(5000);
 	}
 
-	printk(KERN_ERR "ALi 5451 did not come out of reset.\n");
-	return 1;
+	/* This is non fatal if you have a non PM capable codec.. */
+	printk(KERN_ERR "ALi 5451 did not come out of reset "
+	       "- continuing anyway.\n");
+	return 0;
 }
 
 /* AC97 codec initialisation. */
diff -urN linux-2.5.63-bk1/sound/oss/trident.h linux-2.5.63-bk2/sound/oss/trident.h
--- linux-2.5.63-bk1/sound/oss/trident.h	Mon Feb 24 11:05:04 2003
+++ linux-2.5.63-bk2/sound/oss/trident.h	Mon Mar 31 12:15:55 2003
@@ -360,16 +360,4 @@
 	return r;
 }
 
-#ifdef DEBUG
-
-#define TRDBG(msg, args...) do {          \
-        printk(KERN_DEBUG msg , ##args ); \
-} while (0)
-
-#else /* !defined(DEBUG) */ 
-
-#define TRDBG(msg, args...) do { } while (0)
-
-#endif /* DEBUG */ 
-
 #endif /* __TRID4DWAVE_H */
diff -urN linux-2.5.63-bk1/sound/oss/wavfront.c linux-2.5.63-bk2/sound/oss/wavfront.c
--- linux-2.5.63-bk1/sound/oss/wavfront.c	Mon Feb 24 11:05:33 2003
+++ linux-2.5.63-bk2/sound/oss/wavfront.c	Mon Mar 31 12:15:55 2003
@@ -95,7 +95,7 @@
 
    I consider /dev/sequencer to be an anachronism, but given its
    widespread usage by various Linux MIDI software, it seems worth
-   offering support to it if its not too painful. Instead of using
+   offering support to it if it's not too painful. Instead of using
    /dev/sequencer, I recommend:
 
      for synth programming and patch loading: /dev/synthNN
@@ -1041,7 +1041,7 @@
 
 	if (header->size) {
 
-		/* XXX its a debatable point whether or not RDONLY semantics
+		/* XXX it's a debatable point whether or not RDONLY semantics
 		   on the ROM samples should cover just the sample data or
 		   the sample header. For now, it only covers the sample data,
 		   so anyone is free at all times to rewrite sample headers.
diff -urN linux-2.5.63-bk1/sound/pci/cs46xx/cs46xx_lib.c linux-2.5.63-bk2/sound/pci/cs46xx/cs46xx_lib.c
--- linux-2.5.63-bk1/sound/pci/cs46xx/cs46xx_lib.c	Mon Feb 24 11:05:06 2003
+++ linux-2.5.63-bk2/sound/pci/cs46xx/cs46xx_lib.c	Mon Mar 31 12:15:55 2003
@@ -24,7 +24,7 @@
  *
  *  FINALLY: A credit to the developers Tom and Jordan 
  *           at Cirrus for have helping me out with the DSP, however we
- *           still dont have sufficient documentation and technical
+ *           still don't have sufficient documentation and technical
  *           references to be able to implement all fancy feutures
  *           supported by the cs46xx DSP's. 
  *           Benny <benny@hostmobility.com>
@@ -2401,7 +2401,7 @@
 		schedule_timeout(HZ/100);
 	} while (time_after_eq(end_time, jiffies));
 
-	snd_printk("CS46xx secondary codec dont respond!\n");  
+	snd_printk("CS46xx secondary codec don't respond!\n");  
 }
 #endif
 
diff -urN linux-2.5.63-bk1/sound/pci/cs46xx/dsp_spos_scb_lib.c linux-2.5.63-bk2/sound/pci/cs46xx/dsp_spos_scb_lib.c
--- linux-2.5.63-bk1/sound/pci/cs46xx/dsp_spos_scb_lib.c	Mon Feb 24 11:05:44 2003
+++ linux-2.5.63-bk2/sound/pci/cs46xx/dsp_spos_scb_lib.c	Mon Mar 31 12:15:55 2003
@@ -181,7 +181,7 @@
 		      (ins->scbs + scb->index) == scb), return );
 
 #if 0
-	/* cant remove a SCB with childs before 
+	/* can't remove a SCB with childs before 
 	   removing childs first  */
 	snd_assert ( (scb->sub_list_ptr == ins->the_null_scb &&
 		      scb->next_scb_ptr == ins->the_null_scb),
@@ -1540,7 +1540,7 @@
 		cs46xx_dsp_enable_spdif_hw (chip);
 	}
 
-	/* dont touch anything if SPDIF is open */
+	/* don't touch anything if SPDIF is open */
 	if ( ins->spdif_status_out & DSP_SPDIF_STATUS_PLAYBACK_OPEN) {
 		/* when cs46xx_iec958_post_close(...) is called it
 		   will call this function if necessary depending on
@@ -1584,7 +1584,7 @@
 {
 	dsp_spos_instance_t * ins = chip->dsp_spos_instance;
 
-	/* dont touch anything if SPDIF is open */
+	/* don't touch anything if SPDIF is open */
 	if ( ins->spdif_status_out & DSP_SPDIF_STATUS_PLAYBACK_OPEN) {
 		ins->spdif_status_out &= ~DSP_SPDIF_STATUS_OUTPUT_ENABLED;
 		return -EBUSY;
diff -urN linux-2.5.63-bk1/sound/pci/es1968.c linux-2.5.63-bk2/sound/pci/es1968.c
--- linux-2.5.63-bk1/sound/pci/es1968.c	Mon Feb 24 11:05:38 2003
+++ linux-2.5.63-bk2/sound/pci/es1968.c	Mon Mar 31 12:15:55 2003
@@ -2329,7 +2329,7 @@
 	outb(0x88, iobase+0x1f);
 
 	/* it appears some maestros (dell 7500) only work if these are set,
-	   regardless of wether we use the assp or not. */
+	   regardless of whether we use the assp or not. */
 
 	outb(0, iobase + ASSP_CONTROL_B);
 	outb(3, iobase + ASSP_CONTROL_A);	/* M: Reserved bits... */
diff -urN linux-2.5.63-bk1/sound/sound_core.c linux-2.5.63-bk2/sound/sound_core.c
--- linux-2.5.63-bk1/sound/sound_core.c	Mon Feb 24 11:05:47 2003
+++ linux-2.5.63-bk2/sound/sound_core.c	Mon Mar 31 12:15:55 2003
@@ -14,7 +14,7 @@
  *                         --------------------
  * 
  *	Top level handler for the sound subsystem. Various devices can
- *	plug into this. The fact they dont all go via OSS doesn't mean 
+ *	plug into this. The fact they don't all go via OSS doesn't mean 
  *	they don't have to implement the OSS API. There is a lot of logic
  *	to keeping much of the OSS weight out of the code in a compatibility
  *	module, but it's up to the driver to rember to load it...
