diff --git a/debian/changelog b/debian/changelog index 21cceb3c6..ee306e2d3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -29,6 +29,11 @@ linux-2.6 (2.6.13-1) UNRELEASED; urgency=low * 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 Mon, 12 Sep 2005 19:01:53 +0000 linux-2.6 (2.6.12-6) unstable; urgency=high diff --git a/debian/patches-arch/m68k.diff b/debian/patches-arch/m68k.diff index 1eef4e0d3..247ed7d41 100644 --- a/debian/patches-arch/m68k.diff +++ b/debian/patches-arch/m68k.diff @@ -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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/Makefile linux- 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/fpsp0 | | 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/ifpsp | | _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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kerne /* 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kerne 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 @@ -249,41 +249,43 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kerne 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/kerne 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 +- +-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 +- +-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@+,%1@+\n\t" +- "movel %0@+,%1@+\n\t" +- "movel %0@+,%1@+\n\t" +- "movel %0@+,%1@+\n\t" +- "movel %0@+,%1@+\n\t" +- "movel %0@+,%1@+\n\t" +- "movel %0@+,%1@+\n\t" +- "movel %0@+,%1@+\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 +- +-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@+\n\t" +- "movel %3,%0@+\n\t" +- "movel %3,%0@+\n\t" +- "movel %3,%0@+\n\t" +- "movel %3,%0@+\n\t" +- "movel %3,%0@+\n\t" +- "movel %3,%0@+\n\t" +- "movel %3,%0@+\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 ++#include ++ ++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@+\n" ++ " movel %3,%0@+\n" ++ " movel %3,%0@+\n" ++ " movel %3,%0@+\n" ++ " movel %3,%0@+\n" ++ " movel %3,%0@+\n" ++ " movel %3,%0@+\n" ++ " movel %3,%0@+\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@+,%1@+\n" ++ " movel %0@+,%1@+\n" ++ " movel %0@+,%1@+\n" ++ " movel %0@+,%1@+\n" ++ " movel %0@+,%1@+\n" ++ " movel %0@+,%1@+\n" ++ " movel %0@+,%1@+\n" ++ " movel %0@+,%1@+\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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/Ma 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/ca + * Copyright (C) 1995 Hamish Macdonald + */ + ++#include +#include +#include + + -+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 . */ @@ -795,21 +1211,16 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/ca + ".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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/ca + 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,42 +1251,6 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/ca +/* 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/ca + ".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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/ca + : "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/ca + } +} + -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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/arch/m68k/mm/me #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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/block/s } static void start_request(struct floppy_state *fs) -@@ -368,7 +368,7 @@ +@@ -370,7 +370,7 @@ { unsigned long flags; @@ -1052,7 +1428,7 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/block/s 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/block/s } static inline void scan_track(struct floppy_state *fs) -@@ -788,14 +788,13 @@ +@@ -790,14 +790,13 @@ { unsigned long flags; @@ -1078,7 +1454,7 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/block/s return -EINTR; } interruptible_sleep_on(&fs->wait); -@@ -803,7 +802,7 @@ +@@ -805,7 +804,7 @@ --fs->wanted; } fs->state = state; @@ -1087,7 +1463,7 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/block/s return 0; } -@@ -811,11 +810,10 @@ +@@ -813,11 +812,10 @@ { unsigned long flags; @@ -1101,9 +1477,9 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/block/s } 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/char/16 +}; + +#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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/char/io +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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/char/mc + + +#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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/char/pl + + 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/ide/ide 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/macinto 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/net/Kco ---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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/net/mac 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/53 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/53 #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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/Kc 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/Kc 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/Kc 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/NC 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 @@ -4237,9 +4681,9 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/am .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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/am -#include - -#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 @@ -4308,9 +4752,9 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/bv .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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/bv -#include - -#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 @@ -4380,9 +4824,9 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/mv .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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/drivers/scsi/mv -#include - -#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(¤t->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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/fs/fat/inode.c /* 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68 - 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68 + 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68 }; #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@+,%0@+\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@+\n\t" +- "movel %2,%0@+\n\t" +- "movel %2,%0@+\n\t" +- "movel %2,%0@+\n\t" +- "movel %2,%0@+\n\t" +- "movel %2,%0@+\n\t" +- "movel %2,%0@+\n\t" +- "movel %2,%0@+\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@+,%0@+\n\t" +- "move16 %1@+,%0@+\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@+,%0@+\n\t" +- "movel %1@+,%0@+\n\t" +- "movel %1@+,%0@+\n\t" +- "movel %1@+,%0@+\n\t" +- "movel %1@+,%0@+\n\t" +- "movel %1@+,%0@+\n\t" +- "movel %1@+,%0@+\n\t" +- "movel %1@+,%0@+\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@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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/asm-m68 +#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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/a /* 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/b #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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/i 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/i .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 #include @@ -4857,10 +5677,10 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/i #include #include #include -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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/s 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/s } 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/s #include #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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/include/linux/t +#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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/kernel/exit.c l 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/kernel/fork.c l /* 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/kernel/fork.c l 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/kernel/fork.c l 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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/kernel/sched.c } #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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/kernel/sched.c #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 @@ diff -urN --exclude-from=/usr/src/exclude-file linux-2.6.12-i386/mm/bootmem.c li - } 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) \