Author: jim
Date: 2005-03-24 00:17:42 -0700 (Thu, 24 Mar 2005)
New Revision: 892

Added:
   trunk/linux-libc-headers/linux-libc-headers-2.6.11.0-raq2_fix-1.patch
Log:
Added: linux-libc-headers-2.6.11.0-raq2_fix-1.patch

Added: trunk/linux-libc-headers/linux-libc-headers-2.6.11.0-raq2_fix-1.patch
===================================================================
--- trunk/linux-libc-headers/linux-libc-headers-2.6.11.0-raq2_fix-1.patch       
2005-03-23 23:12:38 UTC (rev 891)
+++ trunk/linux-libc-headers/linux-libc-headers-2.6.11.0-raq2_fix-1.patch       
2005-03-24 07:17:42 UTC (rev 892)
@@ -0,0 +1,988 @@
+Submitted By: Jim Gifford (patches at jg555 dot com)
+Date: 2005-03-23
+Initial Package Version: 2.6.11.0
+Origin: Jim Gifford
+Upstream Status: Unknown
+Description: Updates to Match RaQ2 Patch
+
+ 
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/break.h 
linux-libc-headers-2.6.11.0/include/asm-mips/break.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/break.h  2005-03-13 
20:52:00 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/break.h       2005-03-24 
07:06:20 +0000
+@@ -28,6 +28,7 @@
+ #define BRK_NORLD     10      /* No rld found - not used by Linux/MIPS */
+ #define _BRK_THREADBP 11      /* For threads, user bp (used by debuggers) */
+ #define BRK_BUG               512     /* Used by BUG() */
++#define BRK_KDB               513     /* Used in KDB_ENTER() */
+ #define BRK_MULOVF    1023    /* Multiply overflow */
+ 
+ #endif /* __ASM_BREAK_H */
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/cacheflush.h 
linux-libc-headers-2.6.11.0/include/asm-mips/cacheflush.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/cacheflush.h     
2004-10-31 19:54:07 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/cacheflush.h  2005-03-24 
07:06:20 +0000
+@@ -49,17 +49,24 @@
+ 
+ extern void (*flush_icache_page)(struct vm_area_struct *vma,
+       struct page *page);
+-extern void (*flush_icache_range)(unsigned long start, unsigned long end);
++extern void (*flush_icache_range)(unsigned long __user start,
++      unsigned long __user end);
+ #define flush_cache_vmap(start, end)          flush_cache_all()
+ #define flush_cache_vunmap(start, end)                flush_cache_all()
+ 
+ #define copy_to_user_page(vma, page, vaddr, dst, src, len)            \
+ do {                                                                  \
++      if (cpu_has_dc_aliases)                                         \
++              flush_cache_page(vma, vaddr);                           \
+       memcpy(dst, (void *) src, len);                                 \
+       flush_icache_page(vma, page);                                   \
+ } while (0)
+ #define copy_from_user_page(vma, page, vaddr, dst, src, len)          \
+-      memcpy(dst, src, len)
++do {                                                                  \
++      if (cpu_has_dc_aliases)                                         \
++              flush_cache_page(vma, vaddr);                           \
++      memcpy(dst, src, len);                                          \
++} while (0)
+ 
+ extern void (*flush_cache_sigtramp)(unsigned long addr);
+ extern void (*flush_icache_all)(void);
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/cobalt/cobalt.h 
linux-libc-headers-2.6.11.0/include/asm-mips/cobalt/cobalt.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/cobalt/cobalt.h  
2004-10-31 19:54:12 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/cobalt/cobalt.h       
2005-03-24 07:06:20 +0000
+@@ -19,7 +19,10 @@
+  *     9  - PCI
+  *    14  - IDE0
+  *    15  - IDE1
+- *
++ */
++#define COBALT_QUBE_SLOT_IRQ  9
++
++/*
+  * CPU IRQs  are 16 ... 23
+  */
+ #define COBALT_TIMER_IRQ      18
+@@ -30,7 +33,6 @@
+ #define COBALT_SERIAL_IRQ     21
+ #define COBALT_SCSI_IRQ         21
+ #define COBALT_VIA_IRQ                22              /* Chained to VIA ISA 
bridge */
+-#define COBALT_QUBE_SLOT_IRQ  23
+ 
+ /*
+  * PCI configuration space manifest constants.  These are wired into
+@@ -69,13 +71,16 @@
+  * Most of this really should go into a separate GT64111 header file.
+  */
+ #define GT64111_IO_BASE               0x10000000UL
++#define GT64111_IO_END                0x11ffffffUL
++#define GT64111_MEM_BASE      0x12000000UL
++#define GT64111_MEM_END               0x13ffffffUL
+ #define GT64111_BASE          0x14000000UL
+-#define GALILEO_REG(ofs)      (KSEG0 + GT64111_BASE + (unsigned long)(ofs))
++#define GALILEO_REG(ofs)      CKSEG1ADDR(GT64111_BASE + (unsigned long)(ofs))
+ 
+ #define GALILEO_INL(port)     (*(volatile unsigned int *) GALILEO_REG(port))
+ #define GALILEO_OUTL(val, port)                                               
\
+ do {                                                                  \
+-      *(volatile unsigned int *) GALILEO_REG(port) = (port);          \
++      *(volatile unsigned int *) GALILEO_REG(port) = (val);           \
+ } while (0)
+ 
+ #define GALILEO_T0EXP         0x0100
+@@ -86,5 +91,21 @@
+       GALILEO_OUTL((0x80000000 | (PCI_SLOT (devfn) << 11) |           \
+               (PCI_FUNC (devfn) << 8) | (where)), GT_PCI0_CFGADDR_OFS)
+ 
++#define COBALT_LED_PORT               (*(volatile unsigned char *) 
CKSEG1ADDR(0x1c000000))
++# define COBALT_LED_BAR_LEFT  (1 << 0)        /* Qube */
++# define COBALT_LED_BAR_RIGHT (1 << 1)        /* Qube */
++# define COBALT_LED_WEB               (1 << 2)        /* RaQ */
++# define COBALT_LED_POWER_OFF (1 << 3)        /* RaQ */
++# define COBALT_LED_RESET     0x0f
++
++#define COBALT_KEY_PORT               ((~*(volatile unsigned int *) 
CKSEG1ADDR(0x1d000000) >> 24) & COBALT_KEY_MASK)
++# define COBALT_KEY_CLEAR     (1 << 1)
++# define COBALT_KEY_LEFT      (1 << 2)
++# define COBALT_KEY_UP                (1 << 3)
++# define COBALT_KEY_DOWN      (1 << 4)
++# define COBALT_KEY_RIGHT     (1 << 5)
++# define COBALT_KEY_ENTER     (1 << 6)
++# define COBALT_KEY_SELECT    (1 << 7)
++# define COBALT_KEY_MASK      0xfe
+ 
+ #endif /* __ASM_COBALT_H */
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/cobalt/ide.h 
linux-libc-headers-2.6.11.0/include/asm-mips/cobalt/ide.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/cobalt/ide.h     
1970-01-01 00:00:00 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/cobalt/ide.h  2005-03-24 
07:06:20 +0000
+@@ -0,0 +1,83 @@
++
++/*
++ * PIO "in" transfers can cause D-cache lines to be allocated
++ * to the data being read. If the target is the page cache then
++ * the kernel can create a user space mapping of the same page
++ * without flushing it from the D-cache. This has large potential
++ * to create cache aliases. The Cobalts seem to trigger this
++ * problem easily.
++ *
++ * MIPs doesn't have a flush_dcache_range() so we roll
++ * our own.
++ *
++ * -- pdh
++ */
++
++#define MAX_HWIFS                     2
++
++#include <asm/r4kcache.h>
++
++static inline void __flush_dcache(void)
++{
++      unsigned long dc_size, dc_line, addr, end;
++
++      dc_size = current_cpu_data.dcache.ways << 
current_cpu_data.dcache.waybit;
++      dc_line = current_cpu_data.dcache.linesz;
++
++      addr = CKSEG0;
++      end = addr + dc_size;
++
++      for (; addr < end; addr += dc_line)
++              flush_dcache_line_indexed(addr);
++}
++
++static inline void __flush_dcache_range(unsigned long start, unsigned long 
end)
++{
++      unsigned long dc_size, dc_line, addr;
++
++      dc_size = current_cpu_data.dcache.ways << 
current_cpu_data.dcache.waybit;
++      dc_line = current_cpu_data.dcache.linesz;
++
++      addr = start & ~(dc_line - 1);
++      end += dc_line - 1;
++
++      if (end - addr < dc_size)
++              for (; addr < end; addr += dc_line)
++                      flush_dcache_line(addr);
++      else
++              __flush_dcache();
++}
++
++static inline void __ide_insw(unsigned long port, void *addr, unsigned int 
count)
++{
++      insw(port, addr, count);
++
++      __flush_dcache_range((unsigned long) addr, (unsigned long) addr + count 
* 2);
++}
++
++static inline void __ide_insl(unsigned long port, void *addr, unsigned int 
count)
++{
++      insl(port, addr, count);
++
++      __flush_dcache_range((unsigned long) addr, (unsigned long) addr + count 
* 4);
++}
++
++static inline void __ide_mm_insw(volatile void __iomem *port, void *addr, 
unsigned int count)
++{
++      readsw(port, addr, count);
++
++      __flush_dcache_range((unsigned long) addr, (unsigned long) addr + count 
* 2);
++}
++
++static inline void __ide_mm_insl(volatile void __iomem *port, void *addr, 
unsigned int count)
++{
++      readsl(port, addr, count);
++
++      __flush_dcache_range((unsigned long) addr, (unsigned long) addr + count 
* 4);
++}
++
++#define insw                  __ide_insw
++#define insl                  __ide_insl
++
++#define __ide_mm_outsw                writesw
++#define __ide_mm_outsl                writesl
+diff -Naur 
linux-libc-headers-2.6.11.0.orig/include/asm-mips/cobalt/mach-gt64120.h 
linux-libc-headers-2.6.11.0/include/asm-mips/cobalt/mach-gt64120.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/cobalt/mach-gt64120.h    
1970-01-01 00:00:00 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/cobalt/mach-gt64120.h 
2005-03-24 07:06:20 +0000
+@@ -0,0 +1,2 @@
++/* there's something here ... in the dark */
++
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/cpu.h 
linux-libc-headers-2.6.11.0/include/asm-mips/cpu.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/cpu.h    2004-10-31 
19:54:13 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/cpu.h 2005-03-24 07:06:20 
+0000
+@@ -22,12 +22,17 @@
+    spec.
+ */
+ 
+-#define PRID_COMP_LEGACY       0x000000
+-#define PRID_COMP_MIPS         0x010000
+-#define PRID_COMP_BROADCOM     0x020000
+-#define PRID_COMP_ALCHEMY      0x030000
+-#define PRID_COMP_SIBYTE       0x040000
+-#define PRID_COMP_SANDCRAFT    0x050000
++#define PRID_COMP_LEGACY      0x000000
++#define PRID_COMP_MIPS                0x010000
++#define PRID_COMP_BROADCOM    0x020000
++#define PRID_COMP_ALCHEMY     0x030000
++#define PRID_COMP_SIBYTE      0x040000
++#define PRID_COMP_SANDCRAFT   0x050000
++#define PRID_COMP_PHILIPS     0x060000
++#define PRID_COMP_TOSHIBA     0x070000
++#define PRID_COMP_LSI         0x080000
++#define PRID_COMP_LEXRA               0x0b0000
++
+ 
+ /*
+  * Assigned values for the product ID register.  In order to detect a
+@@ -177,7 +182,8 @@
+ #define CPU_VR4133            56
+ #define CPU_AU1550            57
+ #define CPU_24K                       58
+-#define CPU_LAST              58
++#define CPU_AU1200            59
++#define CPU_LAST              59
+ 
+ /*
+  * ISA Level encodings
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/elf.h 
linux-libc-headers-2.6.11.0/include/asm-mips/elf.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/elf.h    2005-03-13 
20:51:53 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/elf.h 2005-03-24 07:07:34 
+0000
+@@ -191,9 +191,6 @@
+ #endif /* !defined(ELF_ARCH) */
+ 
+ 
+-/* This one accepts IRIX binaries.  */
+-#define irix_elf_check_arch(hdr)      ((hdr)->e_machine == EM_MIPS)
+-
+ #define USE_ELF_CORE_DUMP
+ #define ELF_EXEC_PAGESIZE     PAGE_SIZE
+ 
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/fixmap.h 
linux-libc-headers-2.6.11.0/include/asm-mips/fixmap.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/fixmap.h 2005-01-08 
14:02:53 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/fixmap.h      2005-03-24 
07:06:20 +0000
+@@ -106,4 +106,11 @@
+       return __virt_to_fix(vaddr);
+ }
+ 
++/*
++ * Called from pgtable_init()
++ */
++extern void fixrange_init(unsigned long start, unsigned long end,
++        pgd_t *pgd_base);
++
++
+ #endif
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/fpu_emulator.h 
linux-libc-headers-2.6.11.0/include/asm-mips/fpu_emulator.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/fpu_emulator.h   
2004-10-31 19:54:16 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/fpu_emulator.h        
2005-03-24 07:06:20 +0000
+@@ -35,4 +35,6 @@
+       } stats;
+ };
+ 
++extern struct mips_fpu_emulator_private fpuemuprivate;
++
+ #endif /* _ASM_FPU_EMULATOR_H */
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/io.h 
linux-libc-headers-2.6.11.0/include/asm-mips/io.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/io.h     2005-03-13 
20:51:58 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/io.h  2005-03-24 07:06:29 
+0000
+@@ -30,7 +30,7 @@
+ #undef CONF_SLOWDOWN_IO
+ 
+ /*
+- * Raw operations are never swapped in software.  Otoh values that raw
++ * Raw operations are never swapped in software.  OTOH values that raw
+  * operations are working on may or may not have been swapped by the bus
+  * hardware.  An example use would be for flash memory that's used for
+  * execute in place.
+@@ -39,45 +39,53 @@
+ # define __raw_ioswabw(x)     (x)
+ # define __raw_ioswabl(x)     (x)
+ # define __raw_ioswabq(x)     (x)
++# define ____raw_ioswabq(x)   (x)
+ 
+ /*
+  * Sane hardware offers swapping of PCI/ISA I/O space accesses in hardware;
+  * less sane hardware forces software to fiddle with this...
++ *
++ * Regardless, if the host bus endianness mismatches that of PCI/ISA, then
++ * you can't have the numerical value of data and byte addresses within
++ * multibyte quantities both preserved at the same time.  Hence two
++ * variations of functions: non-prefixed ones that preserve the value
++ * and prefixed ones that preserve byte addresses.  The latters are
++ * typically used for moving raw data between a peripheral and memory (cf.
++ * string I/O functions), hence the "mem_" prefix.
+  */
+ #if defined(CONFIG_SWAP_IO_SPACE)
+ 
+ # define ioswabb(x)           (x)
++# define mem_ioswabb(x)               (x)
+ # ifdef CONFIG_SGI_IP22
+ /*
+  * IP22 seems braindead enough to swap 16bits values in hardware, but
+  * not 32bits.  Go figure... Can't tell without documentation.
+  */
+ #  define ioswabw(x)          (x)
++#  define mem_ioswabw(x)      le16_to_cpu(x)
+ # else
+ #  define ioswabw(x)          le16_to_cpu(x)
++#  define mem_ioswabw(x)      (x)
+ # endif
+ # define ioswabl(x)           le32_to_cpu(x)
++# define mem_ioswabl(x)               (x)
+ # define ioswabq(x)           le64_to_cpu(x)
++# define mem_ioswabq(x)               (x)
+ 
+ #else
+ 
+ # define ioswabb(x)           (x)
++# define mem_ioswabb(x)               (x)
+ # define ioswabw(x)           (x)
++# define mem_ioswabw(x)               cpu_to_le16(x)
+ # define ioswabl(x)           (x)
++# define mem_ioswabl(x)               cpu_to_le32(x)
+ # define ioswabq(x)           (x)
++# define mem_ioswabq(x)               cpu_to_le32(x)
+ 
+ #endif
+ 
+-/*
+- * Native bus accesses never swapped.
+- */
+-#define bus_ioswabb(x)                (x)
+-#define bus_ioswabw(x)                (x)
+-#define bus_ioswabl(x)                (x)
+-#define bus_ioswabq(x)                (x)
+-
+-#define __bus_ioswabq         bus_ioswabq
+-
+ #define IO_SPACE_LIMIT 0xffff
+ 
+ /*
+@@ -315,7 +323,8 @@
+       else if (cpu_has_64bits) {                                      \
+               unsigned long __flags;                                  \
+                                                                       \
+-              local_irq_save(__flags);                                \
++              if (irq)                                                \
++                      local_irq_save(__flags);                        \
+               __asm__ __volatile__(                                   \
+                       ".set   mips3"          "\t\t# __readq" "\n\t"  \
+                       "ld     %L0, %1"                        "\n\t"  \
+@@ -324,7 +333,8 @@
+                       ".set   mips0"                          "\n"    \
+                       : "=r" (__val)                                  \
+                       : "m" (*__mem));                                \
+-              local_irq_restore(__flags);                             \
++              if (irq)                                                \
++                      local_irq_restore(__flags);                     \
+       } else {                                                        \
+               __val = 0;                                              \
+               BUG();                                                  \
+@@ -382,15 +392,15 @@
+ 
+ #define BUILDIO(bwlq, type)                                           \
+                                                                       \
+-__BUILD_MEMORY_PFX(, bwlq, type)                                      \
+ __BUILD_MEMORY_PFX(__raw_, bwlq, type)                                        
\
+-__BUILD_MEMORY_PFX(bus_, bwlq, type)                                  \
++__BUILD_MEMORY_PFX(, bwlq, type)                                      \
++__BUILD_MEMORY_PFX(mem_, bwlq, type)                                  \
+ __BUILD_IOPORT_PFX(, bwlq, type)                                      \
+-__BUILD_IOPORT_PFX(__raw_, bwlq, type)
++__BUILD_IOPORT_PFX(mem_, bwlq, type)
+ 
+ #define __BUILDIO(bwlq, type)                                         \
+                                                                       \
+-__BUILD_MEMORY_SINGLE(__bus_, bwlq, type, 0)
++__BUILD_MEMORY_SINGLE(____raw_, bwlq, type, 0)
+ 
+ BUILDIO(b, u8)
+ BUILDIO(w, u16)
+@@ -418,7 +428,7 @@
+       volatile type *__addr = addr;                                   \
+                                                                       \
+       while (count--) {                                               \
+-              __raw_write##bwlq(*__addr, mem);                        \
++              mem_write##bwlq(*__addr, mem);                          \
+               __addr++;                                               \
+       }                                                               \
+ }                                                                     \
+@@ -429,7 +439,7 @@
+       volatile type *__addr = addr;                                   \
+                                                                       \
+       while (count--) {                                               \
+-              *__addr = __raw_read##bwlq(mem);                        \
++              *__addr = mem_read##bwlq(mem);                          \
+               __addr++;                                               \
+       }                                                               \
+ }
+@@ -442,7 +452,7 @@
+       volatile type *__addr = addr;                                   \
+                                                                       \
+       while (count--) {                                               \
+-              __raw_out##bwlq(*__addr, port);                         \
++              mem_out##bwlq(*__addr, port);                           \
+               __addr++;                                               \
+       }                                                               \
+ }                                                                     \
+@@ -453,7 +463,7 @@
+       volatile type *__addr = addr;                                   \
+                                                                       \
+       while (count--) {                                               \
+-              *__addr = __raw_in##bwlq(port);                         \
++              *__addr = mem_in##bwlq(port);                           \
+               __addr++;                                               \
+       }                                                               \
+ }
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/irq.h 
linux-libc-headers-2.6.11.0/include/asm-mips/irq.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/irq.h    2005-01-08 
14:02:47 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/irq.h 2005-03-24 07:06:29 
+0000
+@@ -23,11 +23,9 @@
+ 
+ struct pt_regs;
+ 
+-#ifdef CONFIG_PREEMPT
+-
+ extern asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs);
+ 
+-#else
++#ifdef CONFIG_PREEMPT
+ 
+ /*
+  * do_IRQ handles all normal device IRQ's (the special
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/mipsregs.h 
linux-libc-headers-2.6.11.0/include/asm-mips/mipsregs.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/mipsregs.h       
2005-03-13 20:52:00 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/mipsregs.h    2005-03-24 
07:06:29 +0000
+@@ -789,10 +789,18 @@
+ #define read_c0_config1()     __read_32bit_c0_register($16, 1)
+ #define read_c0_config2()     __read_32bit_c0_register($16, 2)
+ #define read_c0_config3()     __read_32bit_c0_register($16, 3)
++#define read_c0_config4()     __read_32bit_c0_register($16, 4)
++#define read_c0_config5()     __read_32bit_c0_register($16, 5)
++#define read_c0_config6()     __read_32bit_c0_register($16, 6)
++#define read_c0_config7()     __read_32bit_c0_register($16, 7)
+ #define write_c0_config(val)  __write_32bit_c0_register($16, 0, val)
+ #define write_c0_config1(val) __write_32bit_c0_register($16, 1, val)
+ #define write_c0_config2(val) __write_32bit_c0_register($16, 2, val)
+ #define write_c0_config3(val) __write_32bit_c0_register($16, 3, val)
++#define write_c0_config4(val) __write_32bit_c0_register($16, 4, val)
++#define write_c0_config5(val) __write_32bit_c0_register($16, 5, val)
++#define write_c0_config6(val) __write_32bit_c0_register($16, 6, val)
++#define write_c0_config7(val) __write_32bit_c0_register($16, 7, val)
+ 
+ /*
+  * The WatchLo register.  There may be upto 8 of them.
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/module.h 
linux-libc-headers-2.6.11.0/include/asm-mips/module.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/module.h 2004-10-31 
19:54:08 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/module.h      2005-03-24 
07:06:29 +0000
+@@ -10,15 +10,23 @@
+ 
+ typedef uint8_t Elf64_Byte;           /* Type for a 8-bit quantity.  */
+ 
+-typedef struct
+-{
+-  Elf64_Addr r_offset;                        /* Address of relocation.  */
+-  Elf64_Word r_sym;                   /* Symbol index.  */
+-  Elf64_Byte r_ssym;                  /* Special symbol.  */
+-  Elf64_Byte r_type3;                 /* Third relocation.  */
+-  Elf64_Byte r_type2;                 /* Second relocation.  */
+-  Elf64_Byte r_type;                  /* First relocation.  */
+-  Elf64_Sxword r_addend;              /* Addend.  */
++typedef struct {
++      Elf64_Addr r_offset;                    /* Address of relocation.  */
++      Elf64_Word r_sym;                       /* Symbol index.  */
++      Elf64_Byte r_ssym;                      /* Special symbol.  */
++      Elf64_Byte r_type3;                     /* Third relocation.  */
++      Elf64_Byte r_type2;                     /* Second relocation.  */
++      Elf64_Byte r_type;                      /* First relocation.  */
++} Elf64_Mips_Rel;
++
++typedef struct {
++      Elf64_Addr r_offset;                    /* Address of relocation.  */
++      Elf64_Word r_sym;                       /* Symbol index.  */
++      Elf64_Byte r_ssym;                      /* Special symbol.  */
++      Elf64_Byte r_type3;                     /* Third relocation.  */
++      Elf64_Byte r_type2;                     /* Second relocation.  */
++      Elf64_Byte r_type;                      /* First relocation.  */
++      Elf64_Sxword r_addend;                  /* Addend.  */
+ } Elf64_Mips_Rela;
+ 
+ #ifdef CONFIG_MIPS32
+@@ -26,6 +34,13 @@
+ #define Elf_Shdr      Elf32_Shdr
+ #define Elf_Sym               Elf32_Sym
+ #define Elf_Ehdr      Elf32_Ehdr
++#define Elf_Addr      Elf32_Addr
++
++#define Elf_Mips_Rel  Elf32_Rel
++#define Elf_Mips_Rela Elf32_Rela
++
++#define ELF_MIPS_R_SYM(rel) ELF32_R_SYM(rel.r_info)
++#define ELF_MIPS_R_TYPE(rel) ELF32_R_TYPE(rel.r_info)
+ 
+ #endif
+ 
+@@ -34,6 +49,13 @@
+ #define Elf_Shdr      Elf64_Shdr
+ #define Elf_Sym               Elf64_Sym
+ #define Elf_Ehdr      Elf64_Ehdr
++#define Elf_Addr      Elf64_Addr
++
++#define Elf_Mips_Rel  Elf64_Mips_Rel
++#define Elf_Mips_Rela Elf64_Mips_Rela
++
++#define ELF_MIPS_R_SYM(rel) (rel.r_sym)
++#define ELF_MIPS_R_TYPE(rel) (rel.r_type)
+ 
+ #endif
+ 
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/page.h 
linux-libc-headers-2.6.11.0/include/asm-mips/page.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/page.h   2004-10-31 
19:54:11 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/page.h        1970-01-01 
00:00:00 +0000
+@@ -1,21 +0,0 @@
+-/*
+- * This file is subject to the terms and conditions of the GNU General Public
+- * License.  See the file "COPYING" in the main directory of this archive
+- * for more details.
+- *
+- * Copyright (C) 1994 - 1999, 2000, 03 Ralf Baechle
+- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+- */
+-#ifndef _ASM_PAGE_H
+-#define _ASM_PAGE_H
+-
+-#include <unistd.h>
+-
+-#define PAGE_SIZE ((unsigned long)getpagesize())
+-#define PAGE_SHIFT ((PAGE_SIZE > 65536) ? -1 : ((unsigned 
long[]){12,13,14,-1,15,-1,-1,-1,16}[PAGE_SIZE>>13]))
+-
+-#endif /* _ASM_PAGE_H */
+-#ifdef CONFIG_LIMITED_DMA
+-#define WANT_PAGE_VIRTUAL
+-#endif
+-
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/pgalloc.h 
linux-libc-headers-2.6.11.0/include/asm-mips/pgalloc.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/pgalloc.h        
2005-03-13 20:52:04 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/pgalloc.h     2005-03-24 
07:06:29 +0000
+@@ -24,10 +24,22 @@
+ }
+ 
+ /*
++ * Initialize a new pmd table with invalid pointers.
++ */
++extern void pmd_init(unsigned long page, unsigned long pagetable);
++
++#ifdef CONFIG_MIPS64
++
++static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
++{
++      set_pud(pud, __pud((unsigned long)pmd));
++}
++#endif
++
++/*
+  * Initialize a new pgd / pmd table with invalid pointers.
+  */
+ extern void pgd_init(unsigned long page);
+-extern void pmd_init(unsigned long page, unsigned long pagetable);
+ 
+ static inline pgd_t *pgd_alloc(struct mm_struct *mm)
+ {
+@@ -84,21 +96,18 @@
+ #define __pte_free_tlb(tlb,pte)               tlb_remove_page((tlb),(pte))
+ 
+ #ifdef CONFIG_MIPS32
+-#define pgd_populate(mm, pmd, pte)    BUG()
+ 
+ /*
+  * allocating and freeing a pmd is trivial: the 1-entry pmd is
+  * inside the pgd, so has no extra memory associated with it.
+  */
+-#define pmd_alloc_one(mm, addr)               ({ BUG(); ((pmd_t *)2); })
+ #define pmd_free(x)                   do { } while (0)
+ #define __pmd_free_tlb(tlb,x)         do { } while (0)
++
+ #endif
+ 
+ #ifdef CONFIG_MIPS64
+ 
+-#define pgd_populate(mm, pgd, pmd)    set_pgd(pgd, __pgd(pmd))
+-
+ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long 
address)
+ {
+       pmd_t *pmd;
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/pgtable-32.h 
linux-libc-headers-2.6.11.0/include/asm-mips/pgtable-32.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/pgtable-32.h     
2005-03-13 20:51:52 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/pgtable-32.h  2005-03-24 
07:06:29 +0000
+@@ -16,6 +16,8 @@
+ #include <asm/cachectl.h>
+ #include <asm/fixmap.h>
+ 
++#include <asm-generic/pgtable-nopmd.h>
++
+ /*
+  * - add_wired_entry() add a fixed TLB entry, and move wired register
+  */
+@@ -40,42 +42,38 @@
+  * works even with the cache aliasing problem the R4k and above have.
+  */
+ 
+-/* PMD_SHIFT determines the size of the area a second-level page table can 
map */
++/* PGDIR_SHIFT determines what a third-level page table entry can map */
+ #ifdef CONFIG_64BIT_PHYS_ADDR
+-#define PMD_SHIFT     21
++#define PGDIR_SHIFT   21
+ #else
+-#define PMD_SHIFT     22
++#define PGDIR_SHIFT   22
+ #endif
+-#define PMD_SIZE      (1UL << PMD_SHIFT)
+-#define PMD_MASK      (~(PMD_SIZE-1))
+-
+-/* PGDIR_SHIFT determines what a third-level page table entry can map */
+-#define PGDIR_SHIFT   PMD_SHIFT
+ #define PGDIR_SIZE    (1UL << PGDIR_SHIFT)
+ #define PGDIR_MASK    (~(PGDIR_SIZE-1))
+ 
+ /*
+  * Entries per page directory level: we use two-level, so
+- * we don't really have any PMD directory physically.
++ * we don't really have any PUD/PMD directory physically.
+  */
+ #ifdef CONFIG_64BIT_PHYS_ADDR
+ #define PGD_ORDER     1
+-#define PMD_ORDER     0
++#define PUD_ORDER     aieeee_attempt_to_allocate_pud
++#define PMD_ORDER     1
+ #define PTE_ORDER     0
+ #else
+ #define PGD_ORDER     0
+-#define PMD_ORDER     0
++#define PUD_ORDER     aieeee_attempt_to_allocate_pud
++#define PMD_ORDER     1
+ #define PTE_ORDER     0
+ #endif
+ 
+ #define PTRS_PER_PGD  ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t))
+-#define PTRS_PER_PMD  1
+ #define PTRS_PER_PTE  ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t))
+ 
+ #define USER_PTRS_PER_PGD     (0x80000000UL/PGDIR_SIZE)
+ #define FIRST_USER_PGD_NR     0
+ 
+-#define VMALLOC_START     KSEG2
++#define VMALLOC_START     MAP_BASE
+ 
+ #ifdef CONFIG_HIGHMEM
+ # define VMALLOC_END  (PKMAP_BASE-2*PAGE_SIZE)
+@@ -90,8 +88,6 @@
+ #define pte_ERROR(e) \
+       printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
+ #endif
+-#define pmd_ERROR(e) \
+-      printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pmd_val(e))
+ #define pgd_ERROR(e) \
+       printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
+ 
+@@ -119,16 +115,6 @@
+       pmd_val(*pmdp) = ((unsigned long) invalid_pte_table);
+ }
+ 
+-/*
+- * The "pgd_xxx()" functions here are trivial for a folded two-level
+- * setup: the pgd is never bad, and a pmd always exists (as it's folded
+- * into the pgd entry)
+- */
+-static inline int pgd_none(pgd_t pgd)         { return 0; }
+-static inline int pgd_bad(pgd_t pgd)          { return 0; }
+-static inline int pgd_present(pgd_t pgd)      { return 1; }
+-static inline void pgd_clear(pgd_t *pgdp)     { }
+-
+ #if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32)
+ #define pte_page(x)           pfn_to_page(pte_pfn(x))
+ #define pte_pfn(x)            ((unsigned long)((x).pte_high >> 6))
+@@ -155,22 +141,17 @@
+ #endif /* defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) */
+ 
+ #define __pgd_offset(address) pgd_index(address)
++#define __pud_offset(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD-1))
+ #define __pmd_offset(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1))
+ 
+ /* to find an entry in a kernel page-table-directory */
+ #define pgd_offset_k(address) pgd_offset(&init_mm, address)
+ 
+-#define pgd_index(address)    ((address) >> PGDIR_SHIFT)
++#define pgd_index(address)    (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
+ 
+ /* to find an entry in a page-table-directory */
+ #define pgd_offset(mm,addr)   ((mm)->pgd + pgd_index(addr))
+ 
+-/* Find an entry in the second-level page table.. */
+-static inline pmd_t *pmd_offset(pgd_t *dir, unsigned long address)
+-{
+-      return (pmd_t *) dir;
+-}
+-
+ /* Find an entry in the third-level page table.. */
+ #define __pte_offset(address)                                         \
+       (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/pgtable-64.h 
linux-libc-headers-2.6.11.0/include/asm-mips/pgtable-64.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/pgtable-64.h     
2005-01-08 14:02:53 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/pgtable-64.h  2005-03-24 
07:06:29 +0000
+@@ -15,13 +15,15 @@
+ #include <asm/page.h>
+ #include <asm/cachectl.h>
+ 
++#include <asm-generic/pgtable-nopud.h>
++
+ /*
+  * Each address space has 2 4K pages as its page directory, giving 1024
+  * (== PTRS_PER_PGD) 8 byte pointers to pmd tables. Each pmd table is a
+- * pair of 4K pages, giving 1024 (== PTRS_PER_PMD) 8 byte pointers to
+- * page tables. Each page table is a single 4K page, giving 512 (==
+- * PTRS_PER_PTE) 8 byte ptes. Each pgde is initialized to point to
+- * invalid_pmd_table, each pmde is initialized to point to
++ * single 4K page, giving 512 (== PTRS_PER_PMD) 8 byte pointers to page
++ * tables. Each page table is also a single 4K page, giving 512 (==
++ * PTRS_PER_PTE) 8 byte ptes. Each pud entry is initialized to point to
++ * invalid_pmd_table, each pmd entry is initialized to point to
+  * invalid_pte_table, each pte is initialized to 0. When memory is low,
+  * and a pmd table or a page table allocation fails, empty_bad_pmd_table
+  * and empty_bad_page_table is returned back to higher layer code, so
+@@ -35,17 +37,17 @@
+  */
+ 
+ /* PMD_SHIFT determines the size of the area a second-level page table can 
map */
+-#define PMD_SHIFT     (PAGE_SHIFT + (PAGE_SHIFT - 3))
++#define PMD_SHIFT     (PAGE_SHIFT + (PAGE_SHIFT + PTE_ORDER - 3))
+ #define PMD_SIZE      (1UL << PMD_SHIFT)
+ #define PMD_MASK      (~(PMD_SIZE-1))
+ 
+ /* PGDIR_SHIFT determines what a third-level page table entry can map */
+-#define PGDIR_SHIFT   (PMD_SHIFT + (PAGE_SHIFT + 1 - 3))
++#define PGDIR_SHIFT   (PMD_SHIFT + (PAGE_SHIFT + PMD_ORDER - 3))
+ #define PGDIR_SIZE    (1UL << PGDIR_SHIFT)
+ #define PGDIR_MASK    (~(PGDIR_SIZE-1))
+ 
+ /*
+- * For 4kB page size we use a 3 level page tree and a 8kB pmd and pgds which
++ * For 4kB page size we use a 3 level page tree and an 8kB pud, which
+  * permits us mapping 40 bits of virtual address space.
+  *
+  * We used to implement 41 bits by having an order 1 pmd level but that seemed
+@@ -56,7 +58,7 @@
+  * two levels would be easy to implement.
+  *
+  * For 16kB page size we use a 2 level page tree which permits a total of
+- * 36 bits of virtual address space.  We could add a third leve. but it seems
++ * 36 bits of virtual address space.  We could add a third level but it seems
+  * like at the moment there's no need for this.
+  *
+  * For 64kB page size we use a 2 level page table tree for a total of 42 bits
+@@ -64,21 +66,25 @@
+  */
+ #ifdef CONFIG_PAGE_SIZE_4KB
+ #define PGD_ORDER             1
++#define PUD_ORDER             aieeee_attempt_to_allocate_pud
+ #define PMD_ORDER             0
+ #define PTE_ORDER             0
+ #endif
+ #ifdef CONFIG_PAGE_SIZE_8KB
+ #define PGD_ORDER             0
++#define PUD_ORDER             aieeee_attempt_to_allocate_pud
+ #define PMD_ORDER             0
+ #define PTE_ORDER             0
+ #endif
+ #ifdef CONFIG_PAGE_SIZE_16KB
+ #define PGD_ORDER             0
++#define PUD_ORDER             aieeee_attempt_to_allocate_pud
+ #define PMD_ORDER             0
+ #define PTE_ORDER             0
+ #endif
+ #ifdef CONFIG_PAGE_SIZE_64KB
+ #define PGD_ORDER             0
++#define PUD_ORDER             aieeee_attempt_to_allocate_pud
+ #define PMD_ORDER             0
+ #define PTE_ORDER             0
+ #endif
+@@ -90,7 +96,7 @@
+ #define USER_PTRS_PER_PGD     (TASK_SIZE / PGDIR_SIZE)
+ #define FIRST_USER_PGD_NR     0
+ 
+-#define VMALLOC_START         XKSEG
++#define VMALLOC_START         MAP_BASE
+ #define VMALLOC_END   \
+       (VMALLOC_START + PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE)
+ 
+@@ -101,10 +107,10 @@
+ #define pgd_ERROR(e) \
+       printk("%s:%d: bad pgd %016lx.\n", __FILE__, __LINE__, pgd_val(e))
+ 
+-extern pte_t invalid_pte_table[PAGE_SIZE/sizeof(pte_t)];
+-extern pte_t empty_bad_page_table[PAGE_SIZE/sizeof(pte_t)];
+-extern pmd_t invalid_pmd_table[2*PAGE_SIZE/sizeof(pmd_t)];
+-extern pmd_t empty_bad_pmd_table[2*PAGE_SIZE/sizeof(pmd_t)];
++extern pte_t invalid_pte_table[PTRS_PER_PTE];
++extern pte_t empty_bad_page_table[PTRS_PER_PTE];
++extern pmd_t invalid_pmd_table[PTRS_PER_PMD];
++extern pmd_t empty_bad_pmd_table[PTRS_PER_PMD];
+ 
+ /*
+  * Empty pmd entries point to the invalid_pte_table.
+@@ -127,23 +133,26 @@
+ }
+ 
+ /*
+- * Empty pgd entries point to the invalid_pmd_table.
++ * Empty pud entries point to the invalid_pmd_table.
+  */
+-static inline int pgd_none(pgd_t pgd)
++static inline int pud_none(pud_t pud)
+ {
+-      return pgd_val(pgd) == (unsigned long) invalid_pmd_table;
++      return pud_val(pud) == (unsigned long) invalid_pmd_table;
+ }
+ 
+-#define pgd_bad(pgd)          (pgd_val(pgd) &~ PAGE_MASK)
++static inline int pud_bad(pud_t pud)
++{
++      return pud_val(pud) & ~PAGE_MASK;
++}
+ 
+-static inline int pgd_present(pgd_t pgd)
++static inline int pud_present(pud_t pud)
+ {
+-      return pgd_val(pgd) != (unsigned long) invalid_pmd_table;
++      return pud_val(pud) != (unsigned long) invalid_pmd_table;
+ }
+ 
+-static inline void pgd_clear(pgd_t *pgdp)
++static inline void pud_clear(pud_t *pudp)
+ {
+-      pgd_val(*pgdp) = ((unsigned long) invalid_pmd_table);
++      pud_val(*pudp) = ((unsigned long) invalid_pmd_table);
+ }
+ 
+ #define pte_page(x)           pfn_to_page((unsigned long)((pte_val(x) >> 
PAGE_SHIFT)))
+@@ -156,25 +165,26 @@
+ #endif
+ 
+ #define __pgd_offset(address) pgd_index(address)
++#define __pud_offset(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD-1))
+ #define page_pte(page) page_pte_prot(page, __pgprot(0))
+ 
+ /* to find an entry in a kernel page-table-directory */
+ #define pgd_offset_k(address) pgd_offset(&init_mm, 0)
+ 
+-#define pgd_index(address)            ((address) >> PGDIR_SHIFT)
++#define pgd_index(address)    (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
+ 
+ /* to find an entry in a page-table-directory */
+ #define pgd_offset(mm,addr)   ((mm)->pgd + pgd_index(addr))
+ 
+-static inline unsigned long pgd_page(pgd_t pgd)
++static inline unsigned long pud_page(pud_t pud)
+ {
+-      return pgd_val(pgd);
++      return pud_val(pud);
+ }
+ 
+ /* Find an entry in the second-level page table.. */
+-static inline pmd_t *pmd_offset(pgd_t * dir, unsigned long address)
++static inline pmd_t *pmd_offset(pud_t * pud, unsigned long address)
+ {
+-      return (pmd_t *) pgd_page(*dir) +
++      return (pmd_t *) pud_page(*pud) +
+              ((address >> PMD_SHIFT) & (PTRS_PER_PMD - 1));
+ }
+ 
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/serial.h 
linux-libc-headers-2.6.11.0/include/asm-mips/serial.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/serial.h 2005-01-08 
14:02:50 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/serial.h      2005-03-24 
07:06:33 +0000
+@@ -308,9 +308,9 @@
+ #define JAGUAR_ATX_SERIAL1_BASE       0xfd000023L
+ 
+ #define _JAGUAR_ATX_SERIAL_INIT(int, base)                            \
+-      { baud_base: JAGUAR_ATX_BASE_BAUD, irq: int,                    \
+-        flags: (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST),               \
+-        iomem_base: (u8 *) base, iomem_reg_shift: 2,                  \
++      { .baud_base = JAGUAR_ATX_BASE_BAUD, irq: int,                  \
++        .flags = (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST),             \
++        .iomem_base = (u8 *) base, iomem_reg_shift: 2,                        
\
+         io_type: SERIAL_IO_MEM }
+ #define MOMENCO_JAGUAR_ATX_SERIAL_PORT_DEFNS                          \
+       _JAGUAR_ATX_SERIAL_INIT(JAGUAR_ATX_SERIAL1_IRQ, JAGUAR_ATX_SERIAL1_BASE)
+@@ -324,9 +324,9 @@
+ #define OCELOT_3_SERIAL_BASE  (signed)0xfd000020
+ 
+ #define _OCELOT_3_SERIAL_INIT(int, base)                              \
+-      { baud_base: OCELOT_3_BASE_BAUD, irq: int,                      \
+-        flags: STD_COM_FLAGS,                                         \
+-        iomem_base: (u8 *) base, iomem_reg_shift: 2,                  \
++      { .baud_base = OCELOT_3_BASE_BAUD, irq: int,                    \
++        .flags = STD_COM_FLAGS,                                               
\
++        .iomem_base = (u8 *) base, iomem_reg_shift: 2,                        
\
+         io_type: SERIAL_IO_MEM }
+ 
+ #define MOMENCO_OCELOT_3_SERIAL_PORT_DEFNS                            \
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/spinlock.h 
linux-libc-headers-2.6.11.0/include/asm-mips/spinlock.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/spinlock.h       
2005-03-13 20:51:58 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/spinlock.h    2005-03-24 
07:06:34 +0000
+@@ -140,6 +140,18 @@
+ 
+ #define rwlock_init(x)  do { *(x) = RW_LOCK_UNLOCKED; } while(0)
+ 
++/*
++ * read_can_lock - would read_trylock() succeed?
++ * @lock: the rwlock in question.
++ */
++#define read_can_lock(rw)     ((rw)->lock >= 0)
++
++/*
++ * write_can_lock - would write_trylock() succeed?
++ * @lock: the rwlock in question.
++ */
++#define write_can_lock(rw)    (!(rw)->lock)
++
+ static inline void _raw_read_lock(rwlock_t *rw)
+ {
+       unsigned int tmp;
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/asm-mips/stackframe.h 
linux-libc-headers-2.6.11.0/include/asm-mips/stackframe.h
+--- linux-libc-headers-2.6.11.0.orig/include/asm-mips/stackframe.h     
2005-03-13 20:51:59 +0000
++++ linux-libc-headers-2.6.11.0/include/asm-mips/stackframe.h  2005-03-24 
07:06:34 +0000
+@@ -77,7 +77,12 @@
+               MFC0    k1, CP0_CONTEXT
+               dsrl    k1, 23
+               dsll    k1, k1, 3
+-              LONG_L  k1, kernelsp(k1)
++              lui     k0, %highest(kernelsp)
++              daddiu  k0, %higher(kernelsp)
++              dsll    k0, k0, 16
++              daddiu  k0, %hi(kernelsp)
++              daddu   k1, k1, k0
++              LONG_L  k1, %lo(kernelsp)(k1)
+ #endif
+               .endm
+ 
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/linux/init.h 
linux-libc-headers-2.6.11.0/include/linux/init.h
+--- linux-libc-headers-2.6.11.0.orig/include/linux/init.h      2005-03-13 
20:53:59 +0000
++++ linux-libc-headers-2.6.11.0/include/linux/init.h   2005-03-24 07:06:36 
+0000
+@@ -84,6 +84,8 @@
+       static initcall_t __initcall_##fn \
+       __attribute__((__section__(".initcall" level ".init"))) = fn
+ 
++#define early_initcall(fn)            __define_initcall(".early1",fn)
++
+ #define core_initcall(fn)             __define_initcall("1",fn)
+ #define postcore_initcall(fn)         __define_initcall("2",fn)
+ #define arch_initcall(fn)             __define_initcall("3",fn)
+diff -Naur linux-libc-headers-2.6.11.0.orig/include/linux/serial.h 
linux-libc-headers-2.6.11.0/include/linux/serial.h
+--- linux-libc-headers-2.6.11.0.orig/include/linux/serial.h    2004-10-31 
19:55:10 +0000
++++ linux-libc-headers-2.6.11.0/include/linux/serial.h 2005-03-24 07:06:37 
+0000
+@@ -55,7 +55,8 @@
+ #define PORT_16654    11
+ #define PORT_16850    12
+ #define PORT_RSA      13      /* RSA-DV II/S card */
+-#define PORT_MAX      13
++#define PORT_SB1250   14
++#define PORT_MAX      14
+ 
+ #define SERIAL_IO_PORT        0
+ #define SERIAL_IO_HUB6        1

-- 
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to