r4187 - in dists/trunk/linux-2.6/debian: . patches-arch

Christian T. Steigies cts at costa.debian.org
Tue Sep 13 22:30:59 UTC 2005


Author: cts
Date: 2005-09-13 22:30:58 +0000 (Tue, 13 Sep 2005)
New Revision: 4187

Modified:
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/patches-arch/m68k.diff
Log:
update m68k.diff for linux-2.6.13



Modified: dists/trunk/linux-2.6/debian/changelog
===================================================================
--- dists/trunk/linux-2.6/debian/changelog	2005-09-13 21:50:53 UTC (rev 4186)
+++ dists/trunk/linux-2.6/debian/changelog	2005-09-13 22:30:58 UTC (rev 4187)
@@ -29,6 +29,11 @@
   * Move audit and preempt settings to core config file.
   * Fix powerpc configuration.
 
+  [ Christian T. Steigies ]
+  * update m68k.diff for linux-2.6.13
+  * add m68k-42_dma.patch and m68k-sonic.patch that will be in upstream 2.6.14
+    (which makes sun3 build fail, needs fixing)
+
  -- Bastian Blank <waldi at debian.org>  Mon, 12 Sep 2005 19:01:53 +0000
 
 linux-2.6 (2.6.12-6) unstable; urgency=high

Modified: dists/trunk/linux-2.6/debian/patches-arch/m68k.diff
===================================================================
--- dists/trunk/linux-2.6/debian/patches-arch/m68k.diff	2005-09-13 21:50:53 UTC (rev 4186)
+++ dists/trunk/linux-2.6/debian/patches-arch/m68k.diff	2005-09-13 22:30:58 UTC (rev 4187)
@@ -1,6 +1,6 @@
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/Makefile linux-2.6.12/Makefile
---- linux-2.6.12-i386/Makefile	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/Makefile	2005-06-19 16:31:23.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/Makefile linux-2.6.13/Makefile
+--- linux-2.6.13-i386/Makefile	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/Makefile	2005-08-30 16:30:50.000000000 +0200
 @@ -190,7 +190,7 @@
  # Default value for CROSS_COMPILE is not to prefix executables
  # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
@@ -10,9 +10,9 @@
  CROSS_COMPILE	?=
  
  # Architecture as present in compile.h
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/fpsp040/skeleton.S linux-2.6.12/arch/m68k/fpsp040/skeleton.S
---- linux-2.6.12-i386/arch/m68k/fpsp040/skeleton.S	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/fpsp040/skeleton.S	2005-05-30 16:31:21.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/fpsp040/skeleton.S linux-2.6.13/arch/m68k/fpsp040/skeleton.S
+--- linux-2.6.13-i386/arch/m68k/fpsp040/skeleton.S	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/fpsp040/skeleton.S	2005-05-30 16:31:21.000000000 +0200
 @@ -381,10 +381,8 @@
  .Lnotkern:
  	SAVE_ALL_INT
@@ -26,9 +26,9 @@
  
  |
  |	mem_write --- write to user or supervisor address space
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/ifpsp060/iskeleton.S linux-2.6.12/arch/m68k/ifpsp060/iskeleton.S
---- linux-2.6.12-i386/arch/m68k/ifpsp060/iskeleton.S	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/ifpsp060/iskeleton.S	2005-05-30 16:31:22.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/ifpsp060/iskeleton.S linux-2.6.13/arch/m68k/ifpsp060/iskeleton.S
+--- linux-2.6.13-i386/arch/m68k/ifpsp060/iskeleton.S	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/ifpsp060/iskeleton.S	2005-05-30 16:31:22.000000000 +0200
 @@ -75,10 +75,8 @@
  .Lnotkern:
  	SAVE_ALL_INT
@@ -42,9 +42,9 @@
  
  |
  | _060_real_chk():
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kernel/asm-offsets.c linux-2.6.12/arch/m68k/kernel/asm-offsets.c
---- linux-2.6.12-i386/arch/m68k/kernel/asm-offsets.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/kernel/asm-offsets.c	2005-05-30 16:31:22.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/asm-offsets.c linux-2.6.13/arch/m68k/kernel/asm-offsets.c
+--- linux-2.6.13-i386/arch/m68k/kernel/asm-offsets.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/asm-offsets.c	2005-05-30 16:31:22.000000000 +0200
 @@ -25,12 +25,8 @@
  	DEFINE(TASK_STATE, offsetof(struct task_struct, state));
  	DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
@@ -70,9 +70,9 @@
  	/* offsets into the pt_regs */
  	DEFINE(PT_D0, offsetof(struct pt_regs, d0));
  	DEFINE(PT_ORIG_D0, offsetof(struct pt_regs, orig_d0));
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kernel/bios32.c linux-2.6.12/arch/m68k/kernel/bios32.c
---- linux-2.6.12-i386/arch/m68k/kernel/bios32.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/kernel/bios32.c	2004-10-20 16:38:00.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/bios32.c linux-2.6.13/arch/m68k/kernel/bios32.c
+--- linux-2.6.13-i386/arch/m68k/kernel/bios32.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/bios32.c	2004-10-20 16:38:00.000000000 +0200
 @@ -285,7 +285,7 @@
  
  	DBG_DEVS(("layout_bus: starting bus %d\n", bus->number));
@@ -82,9 +82,9 @@
  		return;
  
  	/*
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kernel/entry.S linux-2.6.12/arch/m68k/kernel/entry.S
---- linux-2.6.12-i386/arch/m68k/kernel/entry.S	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/kernel/entry.S	2005-05-30 16:31:22.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/entry.S linux-2.6.13/arch/m68k/kernel/entry.S
+--- linux-2.6.13-i386/arch/m68k/kernel/entry.S	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/entry.S	2005-05-30 16:31:22.000000000 +0200
 @@ -44,9 +44,7 @@
  
  #include <asm/offsets.h>
@@ -249,41 +249,43 @@
  	pea	ret_from_exception
  	jra	do_softirq
  
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kernel/m68k_ksyms.c linux-2.6.12/arch/m68k/kernel/m68k_ksyms.c
---- linux-2.6.12-i386/arch/m68k/kernel/m68k_ksyms.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/kernel/m68k_ksyms.c	2004-10-20 16:38:00.000000000 +0200
-@@ -46,6 +46,7 @@
- EXPORT_SYMBOL(iounmap);
- EXPORT_SYMBOL(kernel_set_cachemode);
- #endif /* !CONFIG_SUN3 */
-+EXPORT_SYMBOL(flush_icache_user_range);
- EXPORT_SYMBOL(m68k_debug_device);
- EXPORT_SYMBOL(mach_hwclk);
- EXPORT_SYMBOL(mach_get_ss);
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kernel/process.c linux-2.6.12/arch/m68k/kernel/process.c
---- linux-2.6.12-i386/arch/m68k/kernel/process.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/kernel/process.c	2004-10-20 16:38:00.000000000 +0200
-@@ -245,7 +245,7 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/m68k_ksyms.c linux-2.6.13/arch/m68k/kernel/m68k_ksyms.c
+--- linux-2.6.13-i386/arch/m68k/kernel/m68k_ksyms.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/m68k_ksyms.c	2005-08-30 16:31:36.000000000 +0200
+@@ -74,9 +74,6 @@
+ EXPORT_SYMBOL(__ashldi3);
+ EXPORT_SYMBOL(__ashrdi3);
+ EXPORT_SYMBOL(__lshrdi3);
+-EXPORT_SYMBOL(memcpy);
+-EXPORT_SYMBOL(memset);
+-EXPORT_SYMBOL(memcmp);
+ EXPORT_SYMBOL(memscan);
+ EXPORT_SYMBOL(__muldi3);
+ 
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/process.c linux-2.6.13/arch/m68k/kernel/process.c
+--- linux-2.6.13-i386/arch/m68k/kernel/process.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/process.c	2005-08-30 16:31:36.000000000 +0200
+@@ -239,7 +239,7 @@
  	unsigned long stack_offset, *retp;
  
  	stack_offset = THREAD_SIZE - sizeof(struct pt_regs);
 -	childregs = (struct pt_regs *) ((unsigned long) (p->thread_info) + stack_offset);
-+	childregs = (struct pt_regs *) ((unsigned long) (p->stack) + stack_offset);
++	childregs = (struct pt_regs *) ((unsigned long)p->stack + stack_offset);
  
  	*childregs = *regs;
  	childregs->d0 = 0;
-@@ -390,7 +390,7 @@
+@@ -384,7 +384,7 @@
  	if (!p || p == current || p->state == TASK_RUNNING)
  		return 0;
  
 -	stack_page = (unsigned long)(p->thread_info);
-+	stack_page = (unsigned long)(p->stack);
++	stack_page = (unsigned long)p->stack;
  	fp = ((struct switch_stack *)p->thread.ksp)->a6;
  	do {
  		if (fp < stack_page+sizeof(struct thread_info) ||
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kernel/ptrace.c linux-2.6.12/arch/m68k/kernel/ptrace.c
---- linux-2.6.12-i386/arch/m68k/kernel/ptrace.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/kernel/ptrace.c	2005-06-19 16:32:04.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/kernel/ptrace.c linux-2.6.13/arch/m68k/kernel/ptrace.c
+--- linux-2.6.13-i386/arch/m68k/kernel/ptrace.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/kernel/ptrace.c	2005-06-19 16:32:04.000000000 +0200
 @@ -95,7 +95,7 @@
  	if (regno == PT_USP)
  		addr = &task->thread.usp;
@@ -741,9 +743,425 @@
  	ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
  				 ? 0x80 : 0));
  	/*
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/Makefile linux-2.6.12/arch/m68k/mm/Makefile
---- linux-2.6.12-i386/arch/m68k/mm/Makefile	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/mm/Makefile	2004-02-06 14:59:40.000000000 +0100
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/Makefile linux-2.6.13/arch/m68k/lib/Makefile
+--- linux-2.6.13-i386/arch/m68k/lib/Makefile	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/lib/Makefile	2005-08-30 16:31:36.000000000 +0200
+@@ -5,4 +5,4 @@
+ EXTRA_AFLAGS := -traditional
+ 
+ lib-y		:= ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \
+-			checksum.o memcmp.o memcpy.o memset.o semaphore.o
++			checksum.o string.o semaphore.o
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/memcmp.c linux-2.6.13/arch/m68k/lib/memcmp.c
+--- linux-2.6.13-i386/arch/m68k/lib/memcmp.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/lib/memcmp.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,11 +0,0 @@
+-#include <linux/types.h>
+-
+-int memcmp(const void * cs,const void * ct,size_t count)
+-{
+-  const unsigned char *su1, *su2;
+-
+-  for( su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
+-    if (*su1 != *su2)
+-      return((*su1 < *su2) ? -1 : +1);
+-  return(0);
+-}
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/memcpy.c linux-2.6.13/arch/m68k/lib/memcpy.c
+--- linux-2.6.13-i386/arch/m68k/lib/memcpy.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/lib/memcpy.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,75 +0,0 @@
+-#include <linux/types.h>
+-
+-void * memcpy(void * to, const void * from, size_t n)
+-{
+-  void *xto = to;
+-  size_t temp, temp1;
+-
+-  if (!n)
+-    return xto;
+-  if ((long) to & 1)
+-    {
+-      char *cto = to;
+-      const char *cfrom = from;
+-      *cto++ = *cfrom++;
+-      to = cto;
+-      from = cfrom;
+-      n--;
+-    }
+-  if (n > 2 && (long) to & 2)
+-    {
+-      short *sto = to;
+-      const short *sfrom = from;
+-      *sto++ = *sfrom++;
+-      to = sto;
+-      from = sfrom;
+-      n -= 2;
+-    }
+-  temp = n >> 2;
+-  if (temp)
+-    {
+-      long *lto = to;
+-      const long *lfrom = from;
+-
+-      __asm__ __volatile__("movel %2,%3\n\t"
+-			   "andw  #7,%3\n\t"
+-			   "lsrl  #3,%2\n\t"
+-			   "negw  %3\n\t"
+-			   "jmp   %%pc@(1f,%3:w:2)\n\t"
+-			   "4:\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "movel %0 at +,%1 at +\n\t"
+-			   "1:\t"
+-			   "dbra  %2,4b\n\t"
+-			   "clrw  %2\n\t"
+-			   "subql #1,%2\n\t"
+-			   "jpl   4b\n\t"
+-			   : "=a" (lfrom), "=a" (lto), "=d" (temp),
+-			   "=&d" (temp1)
+-			   : "0" (lfrom), "1" (lto), "2" (temp)
+-			   );
+-      to = lto;
+-      from = lfrom;
+-    }
+-  if (n & 2)
+-    {
+-      short *sto = to;
+-      const short *sfrom = from;
+-      *sto++ = *sfrom++;
+-      to = sto;
+-      from = sfrom;
+-    }
+-  if (n & 1)
+-    {
+-      char *cto = to;
+-      const char *cfrom = from;
+-      *cto = *cfrom;
+-    }
+-  return xto;
+-}
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/memset.c linux-2.6.13/arch/m68k/lib/memset.c
+--- linux-2.6.13-i386/arch/m68k/lib/memset.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/lib/memset.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,68 +0,0 @@
+-#include <linux/types.h>
+-
+-void * memset(void * s, int c, size_t count)
+-{
+-  void *xs = s;
+-  size_t temp, temp1;
+-
+-  if (!count)
+-    return xs;
+-  c &= 0xff;
+-  c |= c << 8;
+-  c |= c << 16;
+-  if ((long) s & 1)
+-    {
+-      char *cs = s;
+-      *cs++ = c;
+-      s = cs;
+-      count--;
+-    }
+-  if (count > 2 && (long) s & 2)
+-    {
+-      short *ss = s;
+-      *ss++ = c;
+-      s = ss;
+-      count -= 2;
+-    }
+-  temp = count >> 2;
+-  if (temp)
+-    {
+-      long *ls = s;
+-
+-      __asm__ __volatile__("movel %1,%2\n\t"
+-			   "andw  #7,%2\n\t"
+-			   "lsrl  #3,%1\n\t"
+-			   "negw  %2\n\t"
+-			   "jmp   %%pc@(2f,%2:w:2)\n\t"
+-			   "1:\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "movel %3,%0 at +\n\t"
+-			   "2:\t"
+-			   "dbra  %1,1b\n\t"
+-			   "clrw  %1\n\t"
+-			   "subql #1,%1\n\t"
+-			   "jpl   1b\n\t"
+-			   : "=a" (ls), "=d" (temp), "=&d" (temp1)
+-			   : "d" (c), "0" (ls), "1" (temp)
+-			   );
+-      s = ls;
+-    }
+-  if (count & 2)
+-    {
+-      short *ss = s;
+-      *ss++ = c;
+-      s = ss;
+-    }
+-  if (count & 1)
+-    {
+-      char *cs = s;
+-      *cs = c;
+-    }
+-  return xs;
+-}
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/lib/string.c linux-2.6.13/arch/m68k/lib/string.c
+--- linux-2.6.13-i386/arch/m68k/lib/string.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/arch/m68k/lib/string.c	2005-08-30 13:26:30.000000000 +0200
+@@ -0,0 +1,237 @@
++
++#include <linux/types.h>
++#include <linux/module.h>
++
++void *memset(void *s, int c, size_t count)
++{
++	void *xs = s;
++	size_t temp, temp1;
++
++	if (!count)
++		return xs;
++	c &= 0xff;
++	c |= c << 8;
++	c |= c << 16;
++	if ((long)s & 1) {
++		char *cs = s;
++		*cs++ = c;
++		s = cs;
++		count--;
++	}
++	if (count > 2 && (long)s & 2) {
++		short *ss = s;
++		*ss++ = c;
++		s = ss;
++		count -= 2;
++	}
++	temp = count >> 2;
++	if (temp) {
++		long *ls = s;
++
++		asm volatile (
++			"	movel %1,%2\n"
++			"	andw  #7,%2\n"
++			"	lsrl  #3,%1\n"
++			"	negw  %2\n"
++			"	jmp   %%pc@(2f,%2:w:2)\n"
++			"1:	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"	movel %3,%0 at +\n"
++			"2:	dbra  %1,1b\n"
++			"	clrw  %1\n"
++			"	subql #1,%1\n"
++			"	jpl   1b"
++			: "=a" (ls), "=d" (temp), "=&d" (temp1)
++			: "d" (c), "0" (ls), "1" (temp));
++		s = ls;
++	}
++	if (count & 2) {
++		short *ss = s;
++		*ss++ = c;
++		s = ss;
++	}
++	if (count & 1) {
++		char *cs = s;
++		*cs = c;
++	}
++	return xs;
++}
++EXPORT_SYMBOL(memset);
++
++void *memcpy(void *to, const void *from, size_t n)
++{
++	void *xto = to;
++	size_t temp, temp1;
++
++	if (!n)
++		return xto;
++	if ((long)to & 1) {
++		char *cto = to;
++		const char *cfrom = from;
++		*cto++ = *cfrom++;
++		to = cto;
++		from = cfrom;
++		n--;
++	}
++	if (n > 2 && (long)to & 2) {
++		short *sto = to;
++		const short *sfrom = from;
++		*sto++ = *sfrom++;
++		to = sto;
++		from = sfrom;
++		n -= 2;
++	}
++	temp = n >> 2;
++	if (temp) {
++		long *lto = to;
++		const long *lfrom = from;
++
++		asm volatile (
++			"	movel %2,%3\n"
++			"	andw  #7,%3\n"
++			"	lsrl  #3,%2\n"
++			"	negw  %3\n"
++			"	jmp   %%pc@(1f,%3:w:2)\n"
++			"4:	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"	movel %0 at +,%1 at +\n"
++			"1:	dbra  %2,4b\n"
++			"	clrw  %2\n"
++			"	subql #1,%2\n"
++			"	jpl   4b"
++			: "=a" (lfrom), "=a" (lto), "=d" (temp), "=&d" (temp1)
++			: "0" (lfrom), "1" (lto), "2" (temp));
++		to = lto;
++		from = lfrom;
++	}
++	if (n & 2) {
++		short *sto = to;
++		const short *sfrom = from;
++		*sto++ = *sfrom++;
++		to = sto;
++		from = sfrom;
++	}
++	if (n & 1) {
++		char *cto = to;
++		const char *cfrom = from;
++		*cto = *cfrom;
++	}
++	return xto;
++}
++EXPORT_SYMBOL(memcpy);
++
++void *memmove(void *dest, const void *src, size_t n)
++{
++	void *xdest = dest;
++	size_t temp;
++
++	if (!n)
++		return xdest;
++
++	if (dest < src) {
++		if ((long)dest & 1) {
++			char *cdest = dest;
++			const char *csrc = src;
++			*cdest++ = *csrc++;
++			dest = cdest;
++			src = csrc;
++			n--;
++		}
++		if (n > 2 && (long)dest & 2) {
++			short *sdest = dest;
++			const short *ssrc = src;
++			*sdest++ = *ssrc++;
++			dest = sdest;
++			src = ssrc;
++			n -= 2;
++		}
++		temp = n >> 2;
++		if (temp) {
++			long *ldest = dest;
++			const long *lsrc = src;
++			temp--;
++			do
++				*ldest++ = *lsrc++;
++			while (temp--);
++			dest = ldest;
++			src = lsrc;
++		}
++		if (n & 2) {
++			short *sdest = dest;
++			const short *ssrc = src;
++			*sdest++ = *ssrc++;
++			dest = sdest;
++			src = ssrc;
++		}
++		if (n & 1) {
++			char *cdest = dest;
++			const char *csrc = src;
++			*cdest = *csrc;
++		}
++	} else {
++		dest = (char *)dest + n;
++		src = (const char *)src + n;
++		if ((long)dest & 1) {
++			char *cdest = dest;
++			const char *csrc = src;
++			*--cdest = *--csrc;
++			dest = cdest;
++			src = csrc;
++			n--;
++		}
++		if (n > 2 && (long)dest & 2) {
++			short *sdest = dest;
++			const short *ssrc = src;
++			*--sdest = *--ssrc;
++			dest = sdest;
++			src = ssrc;
++			n -= 2;
++		}
++		temp = n >> 2;
++		if (temp) {
++			long *ldest = dest;
++			const long *lsrc = src;
++			temp--;
++			do
++				*--ldest = *--lsrc;
++			while (temp--);
++			dest = ldest;
++			src = lsrc;
++		}
++		if (n & 2) {
++			short *sdest = dest;
++			const short *ssrc = src;
++			*--sdest = *--ssrc;
++			dest = sdest;
++			src = ssrc;
++		}
++		if (n & 1) {
++			char *cdest = dest;
++			const char *csrc = src;
++			*--cdest = *--csrc;
++		}
++	}
++	return xdest;
++}
++EXPORT_SYMBOL(memmove);
++
++int memcmp(const void *cs, const void *ct, size_t count)
++{
++	const unsigned char *su1, *su2;
++
++	for (su1 = cs, su2 = ct; count > 0; ++su1, ++su2, count--)
++		if (*su1 != *su2)
++			return *su1 < *su2 ? -1 : +1;
++	return 0;
++}
++EXPORT_SYMBOL(memcmp);
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mm/Makefile linux-2.6.13/arch/m68k/mm/Makefile
+--- linux-2.6.13-i386/arch/m68k/mm/Makefile	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/mm/Makefile	2004-02-06 14:59:40.000000000 +0100
 @@ -2,7 +2,7 @@
  # Makefile for the linux m68k-specific parts of the memory manager.
  #
@@ -753,10 +1171,10 @@
  
  obj-$(CONFIG_MMU_MOTOROLA)	+= kmap.o memory.o motorola.o
  obj-$(CONFIG_MMU_SUN3)		+= sun3kmap.o sun3mmu.o
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/cache.c linux-2.6.12/arch/m68k/mm/cache.c
---- linux-2.6.12-i386/arch/m68k/mm/cache.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.12/arch/m68k/mm/cache.c	2004-04-05 16:34:15.000000000 +0200
-@@ -0,0 +1,160 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mm/cache.c linux-2.6.13/arch/m68k/mm/cache.c
+--- linux-2.6.13-i386/arch/m68k/mm/cache.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/arch/m68k/mm/cache.c	2005-08-30 16:31:37.000000000 +0200
+@@ -0,0 +1,118 @@
 +/*
 + *  linux/arch/m68k/mm/cache.c
 + *
@@ -765,18 +1183,16 @@
 + *  Copyright (C) 1995  Hamish Macdonald
 + */
 +
++#include <linux/module.h>
 +#include <asm/pgalloc.h>
 +#include <asm/traps.h>
 +
 +
-+static unsigned long virt_to_phys_slow(unsigned long vaddr, mm_segment_t fs)
++static unsigned long virt_to_phys_slow(unsigned long vaddr)
 +{
 +	if (CPU_IS_060) {
-+		mm_segment_t old_fs = get_fs();
 +		unsigned long paddr;
 +
-+		set_fs(fs);
-+
 +		/* The PLPAR instruction causes an access error if the translation
 +		 * is not possible. To catch this we use the same exception mechanism
 +		 * as for user space accesses in <asm/uaccess.h>. */
@@ -795,21 +1211,16 @@
 +			      ".previous"
 +			      : "=a" (paddr)
 +			      : "0" (vaddr));
-+		set_fs(old_fs);
 +		return paddr;
 +	} else if (CPU_IS_040) {
-+		mm_segment_t old_fs = get_fs();
 +		unsigned long mmusr;
 +
-+		set_fs(fs);
-+
 +		asm volatile (".chip 68040\n\t"
 +			      "ptestr (%1)\n\t"
 +			      "movec %%mmusr, %0\n\t"
 +			      ".chip 68k"
 +			      : "=r" (mmusr)
 +			      : "a" (vaddr));
-+		set_fs(old_fs);
 +
 +		if (mmusr & MMU_R_040)
 +			return (mmusr & PAGE_MASK) | (vaddr & ~PAGE_MASK);
@@ -820,7 +1231,7 @@
 +		asm volatile ("ptestr %3,%2@,#7,%0\n\t"
 +			      "pmove %%psr,%1@"
 +			      : "=a&" (descaddr)
-+			      : "a" (&mmusr), "a" (vaddr), "d" (fs.seg));
++			      : "a" (&mmusr), "a" (vaddr), "d" (get_fs().seg));
 +		if (mmusr & (MMU_I|MMU_B|MMU_L))
 +			return 0;
 +		descaddr = phys_to_virt((unsigned long)descaddr);
@@ -840,43 +1251,7 @@
 +/* RZ: use cpush %bc instead of cpush %dc, cinv %ic */
 +void flush_icache_range(unsigned long address, unsigned long endaddr)
 +{
-+	if (CPU_IS_040_OR_060) {
-+		address &= PAGE_MASK;
 +
-+		if (address >= PAGE_OFFSET && address < (unsigned long)high_memory) {
-+			do {
-+				asm volatile ("nop\n\t"
-+					      ".chip 68040\n\t"
-+					      "cpushp %%bc,(%0)\n\t"
-+					      ".chip 68k"
-+					      : : "a" (virt_to_phys((void *)address)));
-+				address += PAGE_SIZE;
-+			} while (address < endaddr);
-+		} else {
-+			do {
-+				asm volatile ("nop\n\t"
-+					      ".chip 68040\n\t"
-+					      "cpushp %%bc,(%0)\n\t"
-+					      ".chip 68k"
-+					      : : "a" (virt_to_phys_slow(address, KERNEL_DS)));
-+				address += PAGE_SIZE;
-+			} while (address < endaddr);
-+		}
-+	} else {
-+		unsigned long tmp;
-+		asm volatile ("movec %%cacr,%0\n\t"
-+			      "orw %1,%0\n\t"
-+			      "movec %0,%%cacr"
-+			      : "=&d" (tmp)
-+			      : "di" (FLUSH_I));
-+	}
-+}
-+
-+void flush_icache_user_range(void *addr, unsigned long size)
-+{
-+	unsigned long address = (unsigned long)addr;
-+	unsigned long endaddr = address + size;
-+
 +	if (CPU_IS_040_OR_060) {
 +		address &= PAGE_MASK;
 +
@@ -885,7 +1260,7 @@
 +				      ".chip 68040\n\t"
 +				      "cpushp %%bc,(%0)\n\t"
 +				      ".chip 68k"
-+				      : : "a" (virt_to_phys_slow(address, get_fs())));
++				      : : "a" (virt_to_phys_slow(address)));
 +			address += PAGE_SIZE;
 +		} while (address < endaddr);
 +	} else {
@@ -897,9 +1272,10 @@
 +			      : "di" (FLUSH_I));
 +	}
 +}
++EXPORT_SYMBOL(flush_icache_range);
 +
-+void flush_icache_user_page(struct vm_area_struct *vma, struct page *page,
-+			    unsigned long addr, int len)
++void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
++			     unsigned long addr, int len)
 +{
 +	if (CPU_IS_040_OR_060) {
 +		asm volatile ("nop\n\t"
@@ -917,9 +1293,9 @@
 +	}
 +}
 +
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/memory.c linux-2.6.12/arch/m68k/mm/memory.c
---- linux-2.6.12-i386/arch/m68k/mm/memory.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/arch/m68k/mm/memory.c	2004-10-03 16:35:42.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/arch/m68k/mm/memory.c linux-2.6.13/arch/m68k/mm/memory.c
+--- linux-2.6.13-i386/arch/m68k/mm/memory.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/arch/m68k/mm/memory.c	2004-10-03 16:35:42.000000000 +0200
 @@ -354,110 +354,6 @@
  #endif
  }
@@ -1031,11 +1407,11 @@
  #ifndef CONFIG_SINGLE_MEMORY_CHUNK
  int mm_end_of_chunk (unsigned long addr, int len)
  {
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/block/swim3.c linux-2.6.12/drivers/block/swim3.c
---- linux-2.6.12-i386/drivers/block/swim3.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/block/swim3.c	2005-04-25 23:08:32.000000000 +0200
-@@ -302,7 +302,7 @@
- 			continue;
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/block/swim3.c linux-2.6.13/drivers/block/swim3.c
+--- linux-2.6.13-i386/drivers/block/swim3.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/block/swim3.c	2005-08-30 16:32:28.000000000 +0200
+@@ -304,7 +304,7 @@
+ #endif /* CONFIG_PMAC_MEDIABAY */
  		start_request(&floppy_states[i]);
  	}
 -	sti();
@@ -1043,7 +1419,7 @@
  }
  
  static void start_request(struct floppy_state *fs)
-@@ -368,7 +368,7 @@
+@@ -370,7 +370,7 @@
  {
  	unsigned long flags;
  
@@ -1052,7 +1428,7 @@
  	if (fs->timeout_pending)
  		del_timer(&fs->timeout);
  	fs->timeout.expires = jiffies + nticks;
-@@ -376,7 +376,7 @@
+@@ -378,7 +378,7 @@
  	fs->timeout.data = (unsigned long) fs;
  	add_timer(&fs->timeout);
  	fs->timeout_pending = 1;
@@ -1061,7 +1437,7 @@
  }
  
  static inline void scan_track(struct floppy_state *fs)
-@@ -788,14 +788,13 @@
+@@ -790,14 +790,13 @@
  {
  	unsigned long flags;
  
@@ -1078,7 +1454,7 @@
  				return -EINTR;
  			}
  			interruptible_sleep_on(&fs->wait);
-@@ -803,7 +802,7 @@
+@@ -805,7 +804,7 @@
  		--fs->wanted;
  	}
  	fs->state = state;
@@ -1087,7 +1463,7 @@
  	return 0;
  }
  
-@@ -811,11 +810,10 @@
+@@ -813,11 +812,10 @@
  {
  	unsigned long flags;
  
@@ -1101,9 +1477,9 @@
  }
  
  static int fd_eject(struct floppy_state *fs)
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/char/16c552.h linux-2.6.12/drivers/char/16c552.h
---- linux-2.6.12-i386/drivers/char/16c552.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.12/drivers/char/16c552.h	2001-10-22 11:34:32.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/16c552.h linux-2.6.13/drivers/char/16c552.h
+--- linux-2.6.13-i386/drivers/char/16c552.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/drivers/char/16c552.h	2001-10-22 11:34:32.000000000 +0200
 @@ -0,0 +1,165 @@
 +/*
 + * Definitions for the 16c552 DACE
@@ -1270,9 +1646,9 @@
 +};
 +
 +#endif
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/char/ioext.h linux-2.6.12/drivers/char/ioext.h
---- linux-2.6.12-i386/drivers/char/ioext.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.12/drivers/char/ioext.h	2001-10-22 11:34:32.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/ioext.h linux-2.6.13/drivers/char/ioext.h
+--- linux-2.6.13-i386/drivers/char/ioext.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/drivers/char/ioext.h	2001-10-22 11:34:32.000000000 +0200
 @@ -0,0 +1,108 @@
 +/*
 + * Shared data structure for GVP IO-Extender support.
@@ -1382,9 +1758,9 @@
 +extern struct lp_struct ioext_lp_table[1];
 +
 +#endif
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/char/mc68681.h linux-2.6.12/drivers/char/mc68681.h
---- linux-2.6.12-i386/drivers/char/mc68681.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.12/drivers/char/mc68681.h	2001-10-22 11:34:32.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/mc68681.h linux-2.6.13/drivers/char/mc68681.h
+--- linux-2.6.13-i386/drivers/char/mc68681.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/drivers/char/mc68681.h	2001-10-22 11:34:32.000000000 +0200
 @@ -0,0 +1,131 @@
 +#ifndef _MC68681_H_
 +#define _MC68681_H_
@@ -1517,9 +1893,9 @@
 +
 +
 +#endif
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/char/plip_ioext.c linux-2.6.12/drivers/char/plip_ioext.c
---- linux-2.6.12-i386/drivers/char/plip_ioext.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.12/drivers/char/plip_ioext.c	2004-10-25 16:38:25.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/char/plip_ioext.c linux-2.6.13/drivers/char/plip_ioext.c
+--- linux-2.6.13-i386/drivers/char/plip_ioext.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.13/drivers/char/plip_ioext.c	2004-10-25 16:38:25.000000000 +0200
 @@ -0,0 +1,1058 @@
 +/*
 + * plip_ioext: A parallel port "network" driver for GVP IO-Extender.
@@ -2579,9 +2955,9 @@
 +
 +	return 0;
 +}
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/ide/ide-iops.c linux-2.6.12/drivers/ide/ide-iops.c
---- linux-2.6.12-i386/drivers/ide/ide-iops.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/ide/ide-iops.c	2005-06-19 16:33:16.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/ide/ide-iops.c linux-2.6.13/drivers/ide/ide-iops.c
+--- linux-2.6.13-i386/drivers/ide/ide-iops.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/ide/ide-iops.c	2005-08-30 16:32:55.000000000 +0200
 @@ -341,6 +341,23 @@
  	int i;
  	u16 *stringcast;
@@ -2606,9 +2982,77 @@
  	id->config         = __le16_to_cpu(id->config);
  	id->cyls           = __le16_to_cpu(id->cyls);
  	id->reserved2      = __le16_to_cpu(id->reserved2);
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/macintosh/adb.c linux-2.6.12/drivers/macintosh/adb.c
---- linux-2.6.12-i386/drivers/macintosh/adb.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/macintosh/adb.c	2005-06-19 16:33:31.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/ide/legacy/gayle.c linux-2.6.13/drivers/ide/legacy/gayle.c
+--- linux-2.6.13-i386/drivers/ide/legacy/gayle.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/ide/legacy/gayle.c	2005-09-02 16:32:11.000000000 +0200
+@@ -161,6 +161,7 @@
+ 	base = (unsigned long)ZTWO_VADDR(phys_base);
+ 	ctrlport = GAYLE_HAS_CONTROL_REG ? (base + GAYLE_CONTROL) : 0;
+ 
++	memset(&hw, 0, sizeof(hw));
+ 	ide_setup_ports(&hw, base, gayle_offsets,
+ 			ctrlport, irqport, ack_intr,
+ //			&gayle_iops,
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/keyboard/Kconfig linux-2.6.13/drivers/input/keyboard/Kconfig
+--- linux-2.6.13-i386/drivers/input/keyboard/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/input/keyboard/Kconfig	2005-08-30 16:33:05.000000000 +0200
+@@ -154,7 +154,7 @@
+ 
+ config KEYBOARD_HIL_OLD
+ 	tristate "HP HIL keyboard support (simple driver)"
+-	depends on GSC
++	depends on GSC || HP300
+ 	default y
+ 	help
+ 	  The "Human Interface Loop" is a older, 8-channel USB-like
+@@ -171,7 +171,7 @@
+ 
+ config KEYBOARD_HIL
+ 	tristate "HP HIL keyboard support"
+-	depends on GSC
++	depends on GSC || HP300
+ 	default y
+ 	select HP_SDC
+ 	select HIL_MLC
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/misc/Kconfig linux-2.6.13/drivers/input/misc/Kconfig
+--- linux-2.6.13-i386/drivers/input/misc/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/input/misc/Kconfig	2005-08-30 16:33:05.000000000 +0200
+@@ -51,7 +51,7 @@
+ 
+ config HP_SDC_RTC
+ 	tristate "HP SDC Real Time Clock"       
+-	depends on GSC
++	depends on GSC || HP300
+ 	select HP_SDC
+ 	help
+ 	  Say Y here if you want to support the built-in real time clock
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/mouse/Kconfig linux-2.6.13/drivers/input/mouse/Kconfig
+--- linux-2.6.13-i386/drivers/input/mouse/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/input/mouse/Kconfig	2005-08-30 16:33:05.000000000 +0200
+@@ -129,7 +129,7 @@
+ 
+ config MOUSE_HIL
+ 	tristate "HIL pointers (mice etc)."     
+-	depends on GSC
++	depends on GSC || HP300
+ 	select HP_SDC
+ 	select HIL_MLC
+ 	help
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/input/serio/Kconfig linux-2.6.13/drivers/input/serio/Kconfig
+--- linux-2.6.13-i386/drivers/input/serio/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/input/serio/Kconfig	2005-08-30 16:33:05.000000000 +0200
+@@ -112,7 +112,7 @@
+ 
+ config HP_SDC
+ 	tristate "HP System Device Controller i8042 Support"
+-	depends on GSC && SERIO
++	depends on (GSC || HP300) && SERIO
+ 	default y
+ 	---help---
+ 	  This option enables supports for the the "System Device
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/macintosh/adb.c linux-2.6.13/drivers/macintosh/adb.c
+--- linux-2.6.13-i386/drivers/macintosh/adb.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/macintosh/adb.c	2005-08-30 16:33:07.000000000 +0200
 @@ -476,13 +476,15 @@
  		use_sreq = 1;
  	} else
@@ -2628,9 +3072,9 @@
  	va_end(list);
  
  	if (flags & ADBREQ_NOSEND)
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/net/Kconfig linux-2.6.12/drivers/net/Kconfig
---- linux-2.6.12-i386/drivers/net/Kconfig	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/net/Kconfig	2005-06-19 16:33:45.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/net/Kconfig linux-2.6.13/drivers/net/Kconfig
+--- linux-2.6.13-i386/drivers/net/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/net/Kconfig	2005-08-30 16:33:24.000000000 +0200
 @@ -294,7 +294,7 @@
  
  config MAC89x0
@@ -2640,9 +3084,9 @@
  	---help---
  	  Support for CS89x0 chipset based Ethernet cards.  If you have a
  	  Nubus or LC-PDS network (Ethernet) card of this type, say Y and
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/net/mac89x0.c linux-2.6.12/drivers/net/mac89x0.c
---- linux-2.6.12-i386/drivers/net/mac89x0.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/net/mac89x0.c	2004-12-30 16:38:24.000000000 +0100
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/net/mac89x0.c linux-2.6.13/drivers/net/mac89x0.c
+--- linux-2.6.13-i386/drivers/net/mac89x0.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/net/mac89x0.c	2004-12-30 16:38:24.000000000 +0100
 @@ -128,7 +128,7 @@
  extern void reset_chip(struct net_device *dev);
  #endif
@@ -2792,9 +3236,9 @@
  	printk("%s: Setting MAC address to ", dev->name);
  	for (i = 0; i < 6; i++)
  		printk(" %2.2x", dev->dev_addr[i] = ((unsigned char *)addr)[i]);
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/53c7xx.c linux-2.6.12/drivers/scsi/53c7xx.c
---- linux-2.6.12-i386/drivers/scsi/53c7xx.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/53c7xx.c	2005-06-19 16:34:18.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/53c7xx.c linux-2.6.13/drivers/scsi/53c7xx.c
+--- linux-2.6.13-i386/drivers/scsi/53c7xx.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/53c7xx.c	2005-06-19 16:34:18.000000000 +0200
 @@ -307,7 +307,7 @@
  
  static int check_address (unsigned long addr, int size);
@@ -4062,9 +4506,9 @@
      for (cmd = (struct NCR53c7x0_cmd *) hostdata->free; cmd; cmd = tmp, 
  	--hostdata->num_cmds) {
  	tmp = (struct NCR53c7x0_cmd *) cmd->next;
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/53c7xx.h linux-2.6.12/drivers/scsi/53c7xx.h
---- linux-2.6.12-i386/drivers/scsi/53c7xx.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/53c7xx.h	2004-10-30 16:35:43.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/53c7xx.h linux-2.6.13/drivers/scsi/53c7xx.h
+--- linux-2.6.13-i386/drivers/scsi/53c7xx.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/53c7xx.h	2004-10-30 16:35:43.000000000 +0200
 @@ -997,7 +997,7 @@
      u32 *dsa;			/* What's in the DSA register now (virt) */
  /* 
@@ -4146,10 +4590,10 @@
  
  #endif /* NCR53c710_C */
  #endif /* NCR53c710_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/Kconfig linux-2.6.12/drivers/scsi/Kconfig
---- linux-2.6.12-i386/drivers/scsi/Kconfig	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/Kconfig	2005-06-19 16:34:18.000000000 +0200
-@@ -1631,7 +1631,7 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/Kconfig linux-2.6.13/drivers/scsi/Kconfig
+--- linux-2.6.13-i386/drivers/scsi/Kconfig	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/Kconfig	2005-08-30 16:33:54.000000000 +0200
+@@ -1627,7 +1627,7 @@
  
  config SCSI_AMIGA7XX
  	bool "Amiga NCR53c710 SCSI support (EXPERIMENTAL)"
@@ -4158,7 +4602,7 @@
  	help
  	  Support for various NCR53c710-based SCSI controllers on the Amiga.
  	  This includes:
-@@ -1728,7 +1728,7 @@
+@@ -1724,7 +1724,7 @@
  
  config MVME16x_SCSI
  	bool "NCR53C710 SCSI driver for MVME16x"
@@ -4167,7 +4611,7 @@
  	help
  	  The Motorola MVME162, 166, 167, 172 and 177 boards use the NCR53C710
  	  SCSI controller chip.  Almost everyone using one of these boards
-@@ -1736,7 +1736,7 @@
+@@ -1732,7 +1732,7 @@
  
  config BVME6000_SCSI
  	bool "NCR53C710 SCSI driver for BVME6000"
@@ -4176,9 +4620,9 @@
  	help
  	  The BVME4000 and BVME6000 boards from BVM Ltd use the NCR53C710
  	  SCSI controller chip.  Almost everyone using one of these boards
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/NCR5380.c linux-2.6.12/drivers/scsi/NCR5380.c
---- linux-2.6.12-i386/drivers/scsi/NCR5380.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/NCR5380.c	2005-06-19 16:34:18.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/NCR5380.c linux-2.6.13/drivers/scsi/NCR5380.c
+--- linux-2.6.13-i386/drivers/scsi/NCR5380.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/NCR5380.c	2005-08-30 16:33:54.000000000 +0200
 @@ -346,6 +346,7 @@
  	return -ETIMEDOUT;
  }
@@ -4195,9 +4639,9 @@
  static struct {
  	unsigned char mask;
  	const char *name;
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/amiga7xx.c linux-2.6.12/drivers/scsi/amiga7xx.c
---- linux-2.6.12-i386/drivers/scsi/amiga7xx.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/amiga7xx.c	2004-10-30 16:35:43.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/amiga7xx.c linux-2.6.13/drivers/scsi/amiga7xx.c
+--- linux-2.6.13-i386/drivers/scsi/amiga7xx.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/amiga7xx.c	2004-10-30 16:35:43.000000000 +0200
 @@ -27,8 +27,14 @@
  #include "scsi.h"
  #include <scsi/scsi_host.h>
@@ -4237,9 +4681,9 @@
  	.can_queue		= 24,
  	.this_id		= 7,
  	.sg_tablesize		= 63,
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/amiga7xx.h linux-2.6.12/drivers/scsi/amiga7xx.h
---- linux-2.6.12-i386/drivers/scsi/amiga7xx.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/amiga7xx.h	1970-01-01 01:00:00.000000000 +0100
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/amiga7xx.h linux-2.6.13/drivers/scsi/amiga7xx.h
+--- linux-2.6.13-i386/drivers/scsi/amiga7xx.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/amiga7xx.h	1970-01-01 01:00:00.000000000 +0100
 @@ -1,23 +0,0 @@
 -#ifndef AMIGA7XX_H
 -
@@ -4264,9 +4708,9 @@
 -#include <scsi/scsicam.h>
 -
 -#endif /* AMIGA7XX_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/bvme6000.c linux-2.6.12/drivers/scsi/bvme6000.c
---- linux-2.6.12-i386/drivers/scsi/bvme6000.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/bvme6000.c	2004-10-30 16:35:43.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/bvme6000.c linux-2.6.13/drivers/scsi/bvme6000.c
+--- linux-2.6.13-i386/drivers/scsi/bvme6000.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/bvme6000.c	2004-10-30 16:35:43.000000000 +0200
 @@ -19,10 +19,16 @@
  #include "scsi.h"
  #include <scsi/scsi_host.h>
@@ -4308,9 +4752,9 @@
  	.can_queue		= 24,
  	.this_id		= 7,
  	.sg_tablesize		= 63,
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/bvme6000.h linux-2.6.12/drivers/scsi/bvme6000.h
---- linux-2.6.12-i386/drivers/scsi/bvme6000.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/bvme6000.h	1970-01-01 01:00:00.000000000 +0100
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/bvme6000.h linux-2.6.13/drivers/scsi/bvme6000.h
+--- linux-2.6.13-i386/drivers/scsi/bvme6000.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/bvme6000.h	1970-01-01 01:00:00.000000000 +0100
 @@ -1,24 +0,0 @@
 -#ifndef BVME6000_SCSI_H
 -#define BVME6000_SCSI_H
@@ -4336,9 +4780,9 @@
 -#include <scsi/scsicam.h>
 -
 -#endif /* BVME6000_SCSI_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/mvme16x.c linux-2.6.12/drivers/scsi/mvme16x.c
---- linux-2.6.12-i386/drivers/scsi/mvme16x.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/mvme16x.c	2004-10-30 16:35:43.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/mvme16x.c linux-2.6.13/drivers/scsi/mvme16x.c
+--- linux-2.6.13-i386/drivers/scsi/mvme16x.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/mvme16x.c	2004-10-30 16:35:43.000000000 +0200
 @@ -17,10 +17,16 @@
  #include "scsi.h"
  #include <scsi/scsi_host.h>
@@ -4380,9 +4824,9 @@
  	.can_queue		= 24,
  	.this_id		= 7,
  	.sg_tablesize		= 63,
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/mvme16x.h linux-2.6.12/drivers/scsi/mvme16x.h
---- linux-2.6.12-i386/drivers/scsi/mvme16x.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/drivers/scsi/mvme16x.h	1970-01-01 01:00:00.000000000 +0100
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/drivers/scsi/mvme16x.h linux-2.6.13/drivers/scsi/mvme16x.h
+--- linux-2.6.13-i386/drivers/scsi/mvme16x.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/drivers/scsi/mvme16x.h	1970-01-01 01:00:00.000000000 +0100
 @@ -1,24 +0,0 @@
 -#ifndef MVME16x_SCSI_H
 -#define MVME16x_SCSI_H
@@ -4408,60 +4852,9 @@
 -#include <scsi/scsicam.h>
 -
 -#endif /* MVME16x_SCSI_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/fs/binfmt_aout.c linux-2.6.12/fs/binfmt_aout.c
---- linux-2.6.12-i386/fs/binfmt_aout.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/fs/binfmt_aout.c	2005-06-19 16:35:04.000000000 +0200
-@@ -368,8 +368,9 @@
- 			send_sig(SIGKILL, current, 0);
- 			return error;
- 		}
--			 
--		flush_icache_range(text_addr, text_addr+ex.a_text+ex.a_data);
-+
-+		flush_icache_user_range((void *)text_addr,
-+					ex.a_text + ex.a_data);
- 	} else {
- 		static unsigned long error_time, error_time2;
- 		if ((ex.a_text & 0xfff || ex.a_data & 0xfff) &&
-@@ -396,9 +397,8 @@
- 			bprm->file->f_op->read(bprm->file,
- 					(char __user *)N_TXTADDR(ex),
- 					ex.a_text+ex.a_data, &pos);
--			flush_icache_range((unsigned long) N_TXTADDR(ex),
--					   (unsigned long) N_TXTADDR(ex) +
--					   ex.a_text+ex.a_data);
-+			flush_icache_user_range((void *)N_TXTADDR(ex),
-+						ex.a_text + ex.a_data);
- 			goto beyond_if;
- 		}
- 
-@@ -503,8 +503,8 @@
- 		
- 		file->f_op->read(file, (char __user *)start_addr,
- 			ex.a_text + ex.a_data, &pos);
--		flush_icache_range((unsigned long) start_addr,
--				   (unsigned long) start_addr + ex.a_text + ex.a_data);
-+		flush_icache_user_range((void *)start_addr,
-+					ex.a_text + ex.a_data);
- 
- 		retval = 0;
- 		goto out;
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/fs/binfmt_elf.c linux-2.6.12/fs/binfmt_elf.c
---- linux-2.6.12-i386/fs/binfmt_elf.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/fs/binfmt_elf.c	2005-06-19 16:35:04.000000000 +0200
-@@ -471,8 +471,7 @@
- 		goto out;
- 	if (interpreter->f_op->read(interpreter, addr, text_data, &offset) < 0)
- 		goto out;
--	flush_icache_range((unsigned long)addr,
--	                   (unsigned long)addr + text_data);
-+	flush_icache_user_range(addr, text_data);
- 
- 
- 	down_write(&current->mm->mmap_sem);	
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/fs/fat/inode.c linux-2.6.12/fs/fat/inode.c
---- linux-2.6.12-i386/fs/fat/inode.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/fs/fat/inode.c	2005-06-19 16:35:11.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/fs/fat/inode.c linux-2.6.13/fs/fat/inode.c
+--- linux-2.6.13-i386/fs/fat/inode.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/fs/fat/inode.c	2005-08-30 16:35:05.000000000 +0200
 @@ -11,12 +11,14 @@
   */
  
@@ -4557,10 +4950,10 @@
  
  	/* check that FAT table does not overflow */
  	fat_clusters = sbi->fat_length * sb->s_blocksize * 8 / sbi->fat_bits;
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68k/cacheflush.h linux-2.6.12/include/asm-m68k/cacheflush.h
---- linux-2.6.12-i386/include/asm-m68k/cacheflush.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/asm-m68k/cacheflush.h	2005-06-19 16:35:42.000000000 +0200
-@@ -130,20 +130,26 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/cacheflush.h linux-2.6.13/include/asm-m68k/cacheflush.h
+--- linux-2.6.13-i386/include/asm-m68k/cacheflush.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/cacheflush.h	2005-08-30 16:36:03.000000000 +0200
+@@ -130,20 +130,25 @@
  #define flush_dcache_mmap_lock(mapping)		do { } while (0)
  #define flush_dcache_mmap_unlock(mapping)	do { } while (0)
  #define flush_icache_page(vma, page)	__flush_page_to_ram(page_address(page))
@@ -4578,18 +4971,17 @@
 -		memcpy(dst, src, len);				\
 -	} while (0)
  
-+extern void flush_icache_user_page(struct vm_area_struct *vma, struct page *page,
-+				   unsigned long addr, int len);
++extern void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
++				    unsigned long addr, int len);
  extern void flush_icache_range(unsigned long address, unsigned long endaddr);
-+extern void flush_icache_user_range(void *address, unsigned long size);
-+
+ 
 +static inline void copy_to_user_page(struct vm_area_struct *vma,
 +				     struct page *page, unsigned long vaddr,
 +				     void *dst, void *src, int len)
 +{
 +	flush_cache_page(vma, vaddr, page_to_pfn(page));
 +	memcpy(dst, src, len);
-+	flush_icache_user_page(vma, page, vaddr, len);
++	flush_icache_user_range(vma, page, vaddr, len);
 +}
 +static inline void copy_from_user_page(struct vm_area_struct *vma,
 +				       struct page *page, unsigned long vaddr,
@@ -4598,11 +4990,11 @@
 +	flush_cache_page(vma, vaddr, page_to_pfn(page));
 +	memcpy(dst, src, len);
 +}
- 
++
  #endif /* _M68K_CACHEFLUSH_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68k/io.h linux-2.6.12/include/asm-m68k/io.h
---- linux-2.6.12-i386/include/asm-m68k/io.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/asm-m68k/io.h	2005-06-19 16:35:42.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/io.h linux-2.6.13/include/asm-m68k/io.h
+--- linux-2.6.13-i386/include/asm-m68k/io.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/io.h	2005-06-19 16:35:42.000000000 +0200
 @@ -324,8 +324,6 @@
  #define writel(val,addr) out_le32((addr),(val))
  #endif
@@ -4612,9 +5004,9 @@
  static inline void *ioremap(unsigned long physaddr, unsigned long size)
  {
  	return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68k/processor.h linux-2.6.12/include/asm-m68k/processor.h
---- linux-2.6.12-i386/include/asm-m68k/processor.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/asm-m68k/processor.h	2005-05-30 16:33:26.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/processor.h linux-2.6.13/include/asm-m68k/processor.h
+--- linux-2.6.13-i386/include/asm-m68k/processor.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/processor.h	2005-05-30 16:33:26.000000000 +0200
 @@ -14,6 +14,7 @@
  #define current_text_addr() ({ __label__ _l; _l: &&_l;})
  
@@ -4650,21 +5042,449 @@
  };
  
  #define INIT_THREAD  {							\
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68k/serial.h linux-2.6.12/include/asm-m68k/serial.h
---- linux-2.6.12-i386/include/asm-m68k/serial.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/asm-m68k/serial.h	2004-07-12 16:39:26.000000000 +0200
-@@ -74,6 +74,8 @@
- #define EXTRA_SERIAL_PORT_DEFNS
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/serial.h linux-2.6.13/include/asm-m68k/serial.h
+--- linux-2.6.13-i386/include/asm-m68k/serial.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/serial.h	2005-08-30 16:36:03.000000000 +0200
+@@ -26,9 +26,11 @@
+ #define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
  #endif
  
 +#ifdef CONFIG_ISA
- #define SERIAL_PORT_DFNS		\
- 	STD_SERIAL_PORT_DEFNS		\
- 	EXTRA_SERIAL_PORT_DEFNS
+ #define SERIAL_PORT_DFNS			\
+ 	/* UART CLK   PORT IRQ     FLAGS        */			\
+ 	{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },	/* ttyS0 */	\
+ 	{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },	/* ttyS1 */	\
+ 	{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },	/* ttyS2 */	\
+ 	{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },	/* ttyS3 */
 +#endif
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68k/thread_info.h linux-2.6.12/include/asm-m68k/thread_info.h
---- linux-2.6.12-i386/include/asm-m68k/thread_info.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/asm-m68k/thread_info.h	2005-05-31 16:33:46.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/string.h linux-2.6.13/include/asm-m68k/string.h
+--- linux-2.6.13-i386/include/asm-m68k/string.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/string.h	2005-08-30 16:36:03.000000000 +0200
+@@ -80,43 +80,6 @@
+   return( (char *) s);
+ }
+ 
+-#if 0
+-#define __HAVE_ARCH_STRPBRK
+-static inline char *strpbrk(const char *cs,const char *ct)
+-{
+-  const char *sc1,*sc2;
+-
+-  for( sc1 = cs; *sc1 != '\0'; ++sc1)
+-    for( sc2 = ct; *sc2 != '\0'; ++sc2)
+-      if (*sc1 == *sc2)
+-	return((char *) sc1);
+-  return( NULL );
+-}
+-#endif
+-
+-#if 0
+-#define __HAVE_ARCH_STRSPN
+-static inline size_t strspn(const char *s, const char *accept)
+-{
+-  const char *p;
+-  const char *a;
+-  size_t count = 0;
+-
+-  for (p = s; *p != '\0'; ++p)
+-    {
+-      for (a = accept; *a != '\0'; ++a)
+-        if (*p == *a)
+-          break;
+-      if (*a == '\0')
+-        return count;
+-      else
+-        ++count;
+-    }
+-
+-  return count;
+-}
+-#endif
+-
+ /* strstr !! */
+ 
+ #define __HAVE_ARCH_STRLEN
+@@ -173,370 +136,18 @@
+ }
+ 
+ #define __HAVE_ARCH_MEMSET
+-/*
+- * This is really ugly, but its highly optimizatiable by the
+- * compiler and is meant as compensation for gcc's missing
+- * __builtin_memset(). For the 680[23]0	it might be worth considering
+- * the optimal number of misaligned writes compared to the number of
+- * tests'n'branches needed to align the destination address. The
+- * 680[46]0 doesn't really care due to their copy-back caches.
+- *						10/09/96 - Jes Sorensen
+- */
+-static inline void * __memset_g(void * s, int c, size_t count)
+-{
+-  void *xs = s;
+-  size_t temp;
+-
+-  if (!count)
+-    return xs;
+-
+-  c &= 0xff;
+-  c |= c << 8;
+-  c |= c << 16;
+-
+-  if (count < 36){
+-	  long *ls = s;
+-
+-	  switch(count){
+-	  case 32: case 33: case 34: case 35:
+-		  *ls++ = c;
+-	  case 28: case 29: case 30: case 31:
+-		  *ls++ = c;
+-	  case 24: case 25: case 26: case 27:
+-		  *ls++ = c;
+-	  case 20: case 21: case 22: case 23:
+-		  *ls++ = c;
+-	  case 16: case 17: case 18: case 19:
+-		  *ls++ = c;
+-	  case 12: case 13: case 14: case 15:
+-		  *ls++ = c;
+-	  case 8: case 9: case 10: case 11:
+-		  *ls++ = c;
+-	  case 4: case 5: case 6: case 7:
+-		  *ls++ = c;
+-		  break;
+-	  default:
+-		  break;
+-	  }
+-	  s = ls;
+-	  if (count & 0x02){
+-		  short *ss = s;
+-		  *ss++ = c;
+-		  s = ss;
+-	  }
+-	  if (count & 0x01){
+-		  char *cs = s;
+-		  *cs++ = c;
+-		  s = cs;
+-	  }
+-	  return xs;
+-  }
+-
+-  if ((long) s & 1)
+-    {
+-      char *cs = s;
+-      *cs++ = c;
+-      s = cs;
+-      count--;
+-    }
+-  if (count > 2 && (long) s & 2)
+-    {
+-      short *ss = s;
+-      *ss++ = c;
+-      s = ss;
+-      count -= 2;
+-    }
+-  temp = count >> 2;
+-  if (temp)
+-    {
+-      long *ls = s;
+-      temp--;
+-      do
+-	*ls++ = c;
+-      while (temp--);
+-      s = ls;
+-    }
+-  if (count & 2)
+-    {
+-      short *ss = s;
+-      *ss++ = c;
+-      s = ss;
+-    }
+-  if (count & 1)
+-    {
+-      char *cs = s;
+-      *cs = c;
+-    }
+-  return xs;
+-}
+-
+-/*
+- * __memset_page assumes that data is longword aligned. Most, if not
+- * all, of these page sized memsets are performed on page aligned
+- * areas, thus we do not need to check if the destination is longword
+- * aligned. Of course we suffer a serious performance loss if this is
+- * not the case but I think the risk of this ever happening is
+- * extremely small. We spend a lot of time clearing pages in
+- * get_empty_page() so I think it is worth it anyway. Besides, the
+- * 680[46]0 do not really care about misaligned writes due to their
+- * copy-back cache.
+- *
+- * The optimized case for the 680[46]0 is implemented using the move16
+- * instruction. My tests showed that this implementation is 35-45%
+- * faster than the original implementation using movel, the only
+- * caveat is that the destination address must be 16-byte aligned.
+- *                                            01/09/96 - Jes Sorensen
+- */
+-static inline void * __memset_page(void * s,int c,size_t count)
+-{
+-  unsigned long data, tmp;
+-  void *xs = s;
+-
+-  c = c & 255;
+-  data = c | (c << 8);
+-  data |= data << 16;
+-
+-#ifdef CPU_M68040_OR_M68060_ONLY
+-
+-  if (((unsigned long) s) & 0x0f)
+-	  __memset_g(s, c, count);
+-  else{
+-	  unsigned long *sp = s;
+-	  *sp++ = data;
+-	  *sp++ = data;
+-	  *sp++ = data;
+-	  *sp++ = data;
+-
+-	  __asm__ __volatile__("1:\t"
+-			       ".chip 68040\n\t"
+-			       "move16 %2 at +,%0 at +\n\t"
+-			       ".chip 68k\n\t"
+-			       "subqw  #8,%2\n\t"
+-			       "subqw  #8,%2\n\t"
+-			       "dbra   %1,1b\n\t"
+-			       : "=a" (sp), "=d" (tmp)
+-			       : "a" (s), "0" (sp), "1" ((count - 16) / 16 - 1)
+-			       );
+-  }
+-
+-#else
+-  __asm__ __volatile__("1:\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "movel %2,%0 at +\n\t"
+-		       "dbra  %1,1b\n\t"
+-		       : "=a" (s), "=d" (tmp)
+-		       : "d" (data), "0" (s), "1" (count / 32 - 1)
+-		       );
+-#endif
+-
+-  return xs;
+-}
+-
+-extern void *memset(void *,int,__kernel_size_t);
+-
+-#define __memset_const(s,c,count) \
+-((count==PAGE_SIZE) ? \
+-  __memset_page((s),(c),(count)) : \
+-  __memset_g((s),(c),(count)))
+-
+-#define memset(s, c, count) \
+-(__builtin_constant_p(count) ? \
+- __memset_const((s),(c),(count)) : \
+- __memset_g((s),(c),(count)))
++extern void *memset(void *, int, __kernel_size_t);
++#define memset(d, c, n) __builtin_memset(d, c, n)
+ 
+ #define __HAVE_ARCH_MEMCPY
+-extern void * memcpy(void *, const void *, size_t );
+-/*
+- * __builtin_memcpy() does not handle page-sized memcpys very well,
+- * thus following the same assumptions as for page-sized memsets, this
+- * function copies page-sized areas using an unrolled loop, without
+- * considering alignment.
+- *
+- * For the 680[46]0 only kernels we use the move16 instruction instead
+- * as it writes through the data-cache, invalidating the cache-lines
+- * touched. In this way we do not use up the entire data-cache (well,
+- * half of it on the 68060) by copying a page. An unrolled loop of two
+- * move16 instructions seem to the fastest. The only caveat is that
+- * both source and destination must be 16-byte aligned, if not we fall
+- * back to the generic memcpy function.  - Jes
+- */
+-static inline void * __memcpy_page(void * to, const void * from, size_t count)
+-{
+-  unsigned long tmp;
+-  void *xto = to;
+-
+-#ifdef CPU_M68040_OR_M68060_ONLY
+-
+-  if (((unsigned long) to | (unsigned long) from) & 0x0f)
+-	  return memcpy(to, from, count);
+-
+-  __asm__ __volatile__("1:\t"
+-		       ".chip 68040\n\t"
+-		       "move16 %1 at +,%0 at +\n\t"
+-		       "move16 %1 at +,%0 at +\n\t"
+-		       ".chip 68k\n\t"
+-		       "dbra  %2,1b\n\t"
+-		       : "=a" (to), "=a" (from), "=d" (tmp)
+-		       : "0" (to), "1" (from) , "2" (count / 32 - 1)
+-		       );
+-#else
+-  __asm__ __volatile__("1:\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "movel %1 at +,%0 at +\n\t"
+-		       "dbra  %2,1b\n\t"
+-		       : "=a" (to), "=a" (from), "=d" (tmp)
+-		       : "0" (to), "1" (from) , "2" (count / 32 - 1)
+-		       );
+-#endif
+-  return xto;
+-}
+-
+-#define __memcpy_const(to, from, n) \
+-((n==PAGE_SIZE) ? \
+-  __memcpy_page((to),(from),(n)) : \
+-  __builtin_memcpy((to),(from),(n)))
+-
+-#define memcpy(to, from, n) \
+-(__builtin_constant_p(n) ? \
+- __memcpy_const((to),(from),(n)) : \
+- memcpy((to),(from),(n)))
++extern void *memcpy(void *, const void *, __kernel_size_t);
++#define memcpy(d, s, n) __builtin_memcpy(d, s, n)
+ 
+ #define __HAVE_ARCH_MEMMOVE
+-static inline void * memmove(void * dest,const void * src, size_t n)
+-{
+-  void *xdest = dest;
+-  size_t temp;
+-
+-  if (!n)
+-    return xdest;
+-
+-  if (dest < src)
+-    {
+-      if ((long) dest & 1)
+-	{
+-	  char *cdest = dest;
+-	  const char *csrc = src;
+-	  *cdest++ = *csrc++;
+-	  dest = cdest;
+-	  src = csrc;
+-	  n--;
+-	}
+-      if (n > 2 && (long) dest & 2)
+-	{
+-	  short *sdest = dest;
+-	  const short *ssrc = src;
+-	  *sdest++ = *ssrc++;
+-	  dest = sdest;
+-	  src = ssrc;
+-	  n -= 2;
+-	}
+-      temp = n >> 2;
+-      if (temp)
+-	{
+-	  long *ldest = dest;
+-	  const long *lsrc = src;
+-	  temp--;
+-	  do
+-	    *ldest++ = *lsrc++;
+-	  while (temp--);
+-	  dest = ldest;
+-	  src = lsrc;
+-	}
+-      if (n & 2)
+-	{
+-	  short *sdest = dest;
+-	  const short *ssrc = src;
+-	  *sdest++ = *ssrc++;
+-	  dest = sdest;
+-	  src = ssrc;
+-	}
+-      if (n & 1)
+-	{
+-	  char *cdest = dest;
+-	  const char *csrc = src;
+-	  *cdest = *csrc;
+-	}
+-    }
+-  else
+-    {
+-      dest = (char *) dest + n;
+-      src = (const char *) src + n;
+-      if ((long) dest & 1)
+-	{
+-	  char *cdest = dest;
+-	  const char *csrc = src;
+-	  *--cdest = *--csrc;
+-	  dest = cdest;
+-	  src = csrc;
+-	  n--;
+-	}
+-      if (n > 2 && (long) dest & 2)
+-	{
+-	  short *sdest = dest;
+-	  const short *ssrc = src;
+-	  *--sdest = *--ssrc;
+-	  dest = sdest;
+-	  src = ssrc;
+-	  n -= 2;
+-	}
+-      temp = n >> 2;
+-      if (temp)
+-	{
+-	  long *ldest = dest;
+-	  const long *lsrc = src;
+-	  temp--;
+-	  do
+-	    *--ldest = *--lsrc;
+-	  while (temp--);
+-	  dest = ldest;
+-	  src = lsrc;
+-	}
+-      if (n & 2)
+-	{
+-	  short *sdest = dest;
+-	  const short *ssrc = src;
+-	  *--sdest = *--ssrc;
+-	  dest = sdest;
+-	  src = ssrc;
+-	}
+-      if (n & 1)
+-	{
+-	  char *cdest = dest;
+-	  const char *csrc = src;
+-	  *--cdest = *--csrc;
+-	}
+-    }
+-  return xdest;
+-}
++extern void *memmove(void *, const void *, __kernel_size_t);
+ 
+ #define __HAVE_ARCH_MEMCMP
+-extern int memcmp(const void * ,const void * ,size_t );
+-#define memcmp(cs, ct, n) \
+-(__builtin_constant_p(n) ? \
+- __builtin_memcmp((cs),(ct),(n)) : \
+- memcmp((cs),(ct),(n)))
+-
+-#define __HAVE_ARCH_MEMCHR
+-static inline void *memchr(const void *cs, int c, size_t count)
+-{
+-	/* Someone else can optimize this, I don't care - tonym at mac.linux-m68k.org */
+-	unsigned char *ret = (unsigned char *)cs;
+-	for(;count>0;count--,ret++)
+-		if(*ret == c) return ret;
+-
+-	return NULL;
+-}
++extern int memcmp(const void *, const void *, __kernel_size_t);
++#define memcmp(d, s, n) __builtin_memcmp(d, s, n)
+ 
+ #endif /* _M68K_STRING_H_ */
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/asm-m68k/thread_info.h linux-2.6.13/include/asm-m68k/thread_info.h
+--- linux-2.6.13-i386/include/asm-m68k/thread_info.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/asm-m68k/thread_info.h	2005-08-30 16:36:04.000000000 +0200
 @@ -2,17 +2,15 @@
  #define _ASM_M68K_THREAD_INFO_H
  
@@ -4676,7 +5496,7 @@
  	struct task_struct	*task;		/* main task structure */
 +	unsigned long		flags;
  	struct exec_domain	*exec_domain;	/* execution domain */
- 	__s32			preempt_count; /* 0 => preemptable, <0 => BUG */
+ 	int			preempt_count;	/* 0 => preemptable, <0 => BUG */
  	__u32 cpu; /* should always be 0 on m68k */
  	struct restart_block    restart_block;
 -
@@ -4794,9 +5614,9 @@
 +#define TIF_MEMDIE		16
  
  #endif	/* _ASM_M68K_THREAD_INFO_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/adb.h linux-2.6.12/include/linux/adb.h
---- linux-2.6.12-i386/include/linux/adb.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/linux/adb.h	2003-03-25 20:25:16.000000000 +0100
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/linux/adb.h linux-2.6.13/include/linux/adb.h
+--- linux-2.6.13-i386/include/linux/adb.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/linux/adb.h	2003-03-25 20:25:16.000000000 +0100
 @@ -76,6 +76,7 @@
  #define ADBREQ_REPLY	1	/* expect reply */
  #define ADBREQ_SYNC	2	/* poll until done */
@@ -4805,10 +5625,10 @@
  
  /* Messages sent thru the client_list notifier. You should NOT stop
     the operation, at least not with this version */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/bootmem.h linux-2.6.12/include/linux/bootmem.h
---- linux-2.6.12-i386/include/linux/bootmem.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/linux/bootmem.h	2005-04-25 23:13:10.000000000 +0200
-@@ -45,11 +45,11 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/linux/bootmem.h linux-2.6.13/include/linux/bootmem.h
+--- linux-2.6.13-i386/include/linux/bootmem.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/linux/bootmem.h	2005-08-30 16:36:32.000000000 +0200
+@@ -49,11 +49,11 @@
  #define alloc_bootmem(x) \
  	__alloc_bootmem((x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
  #define alloc_bootmem_low(x) \
@@ -4822,9 +5642,9 @@
  #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */
  extern unsigned long __init free_all_bootmem (void);
  
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/ide.h linux-2.6.12/include/linux/ide.h
---- linux-2.6.12-i386/include/linux/ide.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/linux/ide.h	2005-06-19 16:36:06.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/linux/ide.h linux-2.6.13/include/linux/ide.h
+--- linux-2.6.13-i386/include/linux/ide.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/linux/ide.h	2005-08-30 16:36:33.000000000 +0200
 @@ -592,7 +592,7 @@
   * sense_key	: Sense key of the last failed packet command
   */
@@ -4834,9 +5654,9 @@
  	struct {
  #if defined(__LITTLE_ENDIAN_BITFIELD)
  		unsigned ili		:1;
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/init_task.h linux-2.6.12/include/linux/init_task.h
---- linux-2.6.12-i386/include/linux/init_task.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/linux/init_task.h	2005-06-19 16:36:06.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/linux/init_task.h linux-2.6.13/include/linux/init_task.h
+--- linux-2.6.13-i386/include/linux/init_task.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/linux/init_task.h	2005-08-30 16:36:33.000000000 +0200
 @@ -70,7 +70,7 @@
  #define INIT_TASK(tsk)	\
  {									\
@@ -4846,9 +5666,9 @@
  	.usage		= ATOMIC_INIT(2),				\
  	.flags		= 0,						\
  	.lock_depth	= -1,						\
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/interrupt.h linux-2.6.12/include/linux/interrupt.h
---- linux-2.6.12-i386/include/linux/interrupt.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/linux/interrupt.h	2005-05-30 16:33:46.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/linux/interrupt.h linux-2.6.13/include/linux/interrupt.h
+--- linux-2.6.13-i386/include/linux/interrupt.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/linux/interrupt.h	2005-05-30 16:33:46.000000000 +0200
 @@ -9,6 +9,7 @@
  #include <linux/preempt.h>
  #include <linux/cpumask.h>
@@ -4857,10 +5677,10 @@
  #include <asm/atomic.h>
  #include <asm/ptrace.h>
  #include <asm/system.h>
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/sched.h linux-2.6.12/include/linux/sched.h
---- linux-2.6.12-i386/include/linux/sched.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/linux/sched.h	2005-06-19 16:36:08.000000000 +0200
-@@ -573,7 +573,8 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/linux/sched.h linux-2.6.13/include/linux/sched.h
+--- linux-2.6.13-i386/include/linux/sched.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/linux/sched.h	2005-08-30 16:36:35.000000000 +0200
+@@ -598,7 +598,8 @@
  
  struct task_struct {
  	volatile long state;	/* -1 unrunnable, 0 runnable, >0 stopped */
@@ -4870,7 +5690,7 @@
  	atomic_t usage;
  	unsigned long flags;	/* per process flags, defined below */
  	unsigned long ptrace;
-@@ -1105,32 +1106,50 @@
+@@ -1136,32 +1137,50 @@
  	spin_unlock(&p->alloc_lock);
  }
  
@@ -4926,9 +5746,9 @@
  }
  
  static inline void set_tsk_need_resched(struct task_struct *tsk)
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/smp_lock.h linux-2.6.12/include/linux/smp_lock.h
---- linux-2.6.12-i386/include/linux/smp_lock.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/linux/smp_lock.h	2005-04-25 23:13:18.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/linux/smp_lock.h linux-2.6.13/include/linux/smp_lock.h
+--- linux-2.6.13-i386/include/linux/smp_lock.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/linux/smp_lock.h	2005-04-25 23:13:18.000000000 +0200
 @@ -2,7 +2,6 @@
  #define __LINUX_SMPLOCK_H
  
@@ -4937,9 +5757,9 @@
  #include <linux/spinlock.h>
  
  #ifdef CONFIG_LOCK_KERNEL
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/thread_info.h linux-2.6.12/include/linux/thread_info.h
---- linux-2.6.12-i386/include/linux/thread_info.h	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/include/linux/thread_info.h	2005-05-30 16:33:47.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/include/linux/thread_info.h linux-2.6.13/include/linux/thread_info.h
+--- linux-2.6.13-i386/include/linux/thread_info.h	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/include/linux/thread_info.h	2005-05-30 16:33:47.000000000 +0200
 @@ -27,31 +27,6 @@
   * - pass TIF_xxxx constants to these functions
   */
@@ -5002,10 +5822,10 @@
 +#endif	/* __KERNEL__ */
  
  #endif /* _LINUX_THREAD_INFO_H */
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/kernel/exit.c linux-2.6.12/kernel/exit.c
---- linux-2.6.12-i386/kernel/exit.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/kernel/exit.c	2005-06-19 16:36:18.000000000 +0200
-@@ -826,7 +826,7 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/kernel/exit.c linux-2.6.13/kernel/exit.c
+--- linux-2.6.13-i386/kernel/exit.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/kernel/exit.c	2005-08-30 16:36:41.000000000 +0200
+@@ -846,7 +846,7 @@
  	if (group_dead && tsk->signal->leader)
  		disassociate_ctty(1);
  
@@ -5014,9 +5834,9 @@
  	if (tsk->binfmt)
  		module_put(tsk->binfmt->module);
  
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/kernel/fork.c linux-2.6.12/kernel/fork.c
---- linux-2.6.12-i386/kernel/fork.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/kernel/fork.c	2005-06-19 16:36:18.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/kernel/fork.c linux-2.6.13/kernel/fork.c
+--- linux-2.6.13-i386/kernel/fork.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/kernel/fork.c	2005-08-30 16:36:41.000000000 +0200
 @@ -100,7 +100,7 @@
  
  void free_task(struct task_struct *tsk)
@@ -5057,7 +5877,7 @@
  
  	/* One for us, one for whoever does the "release_task()" (usually parent) */
  	atomic_set(&tsk->usage,2);
-@@ -893,7 +893,7 @@
+@@ -898,7 +898,7 @@
  	if (nr_threads >= max_threads)
  		goto bad_fork_cleanup_count;
  
@@ -5066,7 +5886,7 @@
  		goto bad_fork_cleanup_count;
  
  	if (p->binfmt && !try_module_get(p->binfmt->module))
-@@ -1138,7 +1138,7 @@
+@@ -1151,7 +1151,7 @@
  	if (p->binfmt)
  		module_put(p->binfmt->module);
  bad_fork_cleanup_put_domain:
@@ -5075,10 +5895,10 @@
  bad_fork_cleanup_count:
  	put_group_info(p->group_info);
  	atomic_dec(&p->user->processes);
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/kernel/sched.c linux-2.6.12/kernel/sched.c
---- linux-2.6.12-i386/kernel/sched.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/kernel/sched.c	2005-06-19 16:36:19.000000000 +0200
-@@ -3962,10 +3962,10 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/kernel/sched.c linux-2.6.13/kernel/sched.c
+--- linux-2.6.13-i386/kernel/sched.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/kernel/sched.c	2005-08-30 16:36:43.000000000 +0200
+@@ -4121,10 +4121,10 @@
  #endif
  #ifdef CONFIG_DEBUG_STACK_USAGE
  	{
@@ -5091,7 +5911,7 @@
  	}
  #endif
  	printk("%5lu %5d %6d ", free, p->pid, p->parent->pid);
-@@ -4035,9 +4035,9 @@
+@@ -4204,9 +4204,9 @@
  
  	/* Set the preempt count _outside_ the spinlocks! */
  #if defined(CONFIG_PREEMPT) && !defined(CONFIG_PREEMPT_BKL)
@@ -5103,33 +5923,36 @@
  #endif
  }
  
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/mm/bootmem.c linux-2.6.12/mm/bootmem.c
---- linux-2.6.12-i386/mm/bootmem.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/mm/bootmem.c	2005-04-25 23:13:33.000000000 +0200
-@@ -266,7 +266,6 @@
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/mm/bootmem.c linux-2.6.13/mm/bootmem.c
+--- linux-2.6.13-i386/mm/bootmem.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/mm/bootmem.c	2005-08-30 16:36:44.000000000 +0200
+@@ -275,7 +275,6 @@
  
  	count = 0;
  	/* first extant page of the node */
--	page = virt_to_page(phys_to_virt(bdata->node_boot_start));
+-	pfn = bdata->node_boot_start >> PAGE_SHIFT;
  	idx = bdata->node_low_pfn - (bdata->node_boot_start >> PAGE_SHIFT);
  	map = bdata->node_bootmem_map;
  	/* Check physaddr is O(LOG2(BITS_PER_LONG)) page aligned */
-@@ -278,6 +277,8 @@
+@@ -288,7 +287,8 @@
  		if (gofast && v == ~0UL) {
  			int j, order;
  
+-			page = pfn_to_page(pfn);
 +			page = virt_to_page(phys_to_virt((i << PAGE_SHIFT) +
 +							 bdata->node_boot_start));
  			count += BITS_PER_LONG;
  			__ClearPageReserved(page);
  			order = ffs(BITS_PER_LONG) - 1;
-@@ -289,21 +290,20 @@
+@@ -300,23 +300,20 @@
  			}
  			__free_pages(page, order);
  			i += BITS_PER_LONG;
 -			page += BITS_PER_LONG;
  		} else if (v) {
  			unsigned long m;
+-
+-			page = pfn_to_page(pfn);
 -			for (m = 1; m && i < idx; m<<=1, page++, i++) {
 +			for (m = 1; m && i < idx; m<<=1, i++) {
  				if (v & m) {
@@ -5144,14 +5967,14 @@
 -		} else {
 +		} else
  			i+=BITS_PER_LONG;
--			page += BITS_PER_LONG;
 -		}
+-		pfn += BITS_PER_LONG;
  	}
  	total += count;
  
-diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/sound/oss/dmasound/dmasound_paula.c linux-2.6.12/sound/oss/dmasound/dmasound_paula.c
---- linux-2.6.12-i386/sound/oss/dmasound/dmasound_paula.c	2005-06-17 21:48:29.000000000 +0200
-+++ linux-2.6.12/sound/oss/dmasound/dmasound_paula.c	2005-05-30 16:34:14.000000000 +0200
+diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.13-i386/sound/oss/dmasound/dmasound_paula.c linux-2.6.13/sound/oss/dmasound/dmasound_paula.c
+--- linux-2.6.13-i386/sound/oss/dmasound/dmasound_paula.c	2005-08-29 01:41:01.000000000 +0200
++++ linux-2.6.13/sound/oss/dmasound/dmasound_paula.c	2005-05-30 16:34:14.000000000 +0200
 @@ -244,6 +244,7 @@
  			u_char frame[], ssize_t *frameUsed,		\
  			ssize_t frameLeft)				\




More information about the Kernel-svn-changes mailing list