This page annotates the changes in linux-libc-2.6 2.6.26.

asm-alpha/byteorder.h

Use correct keyword.

asm-alpha/param.h

HZ change already in 2.6.25.

asm-alpha/types.h

Parts moved to asm-generic/int-l64.h.

asm-arm/hwcap.h

New definition HWCAP_THUMBEE

asm-arm/types.h

Parts moved to asm-generic/int-ll64.h.

= asm-arm/unistd.h

diff -U 1 -Nwr 2.6.25/asm-arm/unistd.h 2.6.26/asm-arm/unistd.h
--- 2.6.25/asm-arm/unistd.h     2008-07-11 12:23:48.000000000 +0200
+++ 2.6.26/asm-arm/unistd.h     2008-07-11 12:22:33.000000000 +0200
@@ -378,5 +378,7 @@
 #define __NR_signalfd                  (__NR_SYSCALL_BASE+349)
-#define __NR_timerfd                   (__NR_SYSCALL_BASE+350)
+#define __NR_timerfd_create            (__NR_SYSCALL_BASE+350)
 #define __NR_eventfd                   (__NR_SYSCALL_BASE+351)
 #define __NR_fallocate                 (__NR_SYSCALL_BASE+352)
+#define __NR_timerfd_settime           (__NR_SYSCALL_BASE+353)
+#define __NR_timerfd_gettime           (__NR_SYSCALL_BASE+354)

asm-generic/int-l64.h

New file.

asm-generic/int-ll64.h

New file.

asm-ia64/gcc_intrin.h

diff -U 1 -Nwr 2.6.25/asm-ia64/gcc_intrin.h 2.6.26/asm-ia64/gcc_intrin.h
--- 2.6.25/asm-ia64/gcc_intrin.h        2008-07-11 12:23:49.000000000 +0200
+++ 2.6.26/asm-ia64/gcc_intrin.h        2008-07-11 12:22:34.000000000 +0200
@@ -22,2 +22,6 @@
 
+#define ia64_flushrs() asm volatile ("flushrs;;":::"memory")
+
+#define ia64_loadrs() asm volatile ("loadrs;;":::"memory")
+
 extern void ia64_bad_param_for_setreg (void);
@@ -515,2 +519,10 @@
 
+#define ia64_ttag(addr)                                                        \
+({                                                                       \
+       __u64 ia64_intri_res;                                              \
+       asm volatile ("ttag %0=%1" : "=r"(ia64_intri_res) : "r" (addr));   \
+       ia64_intri_res;                                                  \
+})
+
+
 /* Values for lfhint in ia64_lfetch and ia64_lfetch_fault */

asm-ia64/kvm.h

Support added.

asm-ia64/types.h, asm-mips/types.h

Parts moved to asm-generic/int-l64.h and asm-generic/int-ll64.h.

asm-parisc/ioctl.h

Parts moved to asm-generic/ioctl.h

asm-parisc/ioctls.h

diff -U 1 -Nwr 2.6.25/asm-parisc/ioctls.h 2.6.26/asm-parisc/ioctls.h
--- 2.6.25/asm-parisc/ioctls.h  2008-07-11 12:23:51.000000000 +0200
+++ 2.6.26/asm-parisc/ioctls.h  2008-07-11 12:22:36.000000000 +0200
@@ -48,2 +48,6 @@
 #define TIOCGSID       _IOR('T', 20, int) /* Return the session ID of FD */
+#define TCGETS2                _IOR('T',0x2A, struct termios2)
+#define TCSETS2                _IOW('T',0x2B, struct termios2)
+#define TCSETSW2       _IOW('T',0x2C, struct termios2)
+#define TCSETSF2       _IOW('T',0x2D, struct termios2)
 #define TIOCGPTN       _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
diff -U 1 -Nwr 2.6.25/asm-parisc/termbits.h 2.6.26/asm-parisc/termbits.h

asm-parisc/termbits.h

--- 2.6.25/asm-parisc/termbits.h        2008-07-11 12:23:52.000000000 +0200
+++ 2.6.26/asm-parisc/termbits.h        2008-07-11 12:22:36.000000000 +0200
@@ -143,2 +143,3 @@
 #define CBAUDEX 0010000
+#define    BOTHER 0010000
 #define    B57600 0010001
@@ -158,3 +159,3 @@
 #define  B4000000 0010017
-#define CIBAUD    002003600000  /* input baud rate (not used) */
+#define CIBAUD    002003600000         /* input baud rate */
 #define CMSPAR    010000000000          /* mark or space (stick) parity */
@@ -162,2 +163,4 @@
 
+#define IBSHIFT        16              /* Shift from CBAUD to CIBAUD */
+

asm-parisc/types.h

Parts moved to asm-generic/int-ll64.h.

asm-powerpc/kvm.h

Support added.

asm-s390/kvm.h

Support added.

asm-s390/types.h

Parts moved to asm-generic/int-l64.h and asm-generic/int-ll64.h.

asm-sparc/a.out.h

/!\ Removed. Replaced by linux/a.out.h.

diff -U 1 -Nwr 2.6.25/asm-sparc/a.out.h 2.6.26/asm-sparc/a.out.h
--- 2.6.25/asm-sparc/a.out.h    2008-07-11 12:23:56.000000000 +0200
+++ 2.6.26/asm-sparc/a.out.h    1970-01-01 01:00:00.000000000 +0100
@@ -1,97 +0,0 @@
-#ifndef __SPARC_A_OUT_H__
-#define __SPARC_A_OUT_H__
-
-#define SPARC_PGSIZE    0x2000        /* Thanks to the sun4 architecture... */
-#define SEGMENT_SIZE    SPARC_PGSIZE  /* whee... */
-
-#ifndef __ASSEMBLY__
-
-struct exec {
-       unsigned char a_dynamic:1;      /* A __DYNAMIC is in this image */
-       unsigned char a_toolversion:7;
-       unsigned char a_machtype;
-       unsigned short a_info;
-       unsigned int a_text;            /* length of text, in bytes */
-       unsigned int a_data;            /* length of data, in bytes */
-       unsigned int a_bss;             /* length of bss, in bytes */
-       unsigned int a_syms;            /* length of symbol table, in bytes */
-       unsigned int a_entry;           /* where program begins */
-       unsigned int a_trsize;
-       unsigned int a_drsize;
-};
-
-#endif /* !__ASSEMBLY__ */
-
-/* Where in the file does the text information begin? */
-#define N_TXTOFF(x)     (N_MAGIC(x) == ZMAGIC ? 0 : sizeof (struct exec))
-
-/* Where do the Symbols start? */
-#define N_SYMOFF(x)     (N_TXTOFF(x) + (x).a_text +   \
-                         (x).a_data + (x).a_trsize +  \
-                         (x).a_drsize)
-
-/* Where does text segment go in memory after being loaded? */
-#define N_TXTADDR(x)    (unsigned long)(((N_MAGIC(x) == ZMAGIC) && \
-                        ((x).a_entry < SPARC_PGSIZE)) ?   \
-                          0 : SPARC_PGSIZE)
-
-/* And same for the data segment.. */
-#define N_DATADDR(x) (N_MAGIC(x)==OMAGIC ?         \
-                      (N_TXTADDR(x) + (x).a_text)  \
-                      : (unsigned long) (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
-
-#define N_TRSIZE(a)    ((a).a_trsize)
-#define N_DRSIZE(a)    ((a).a_drsize)
-#define N_SYMSIZE(a)   ((a).a_syms)
-
-#ifndef __ASSEMBLY__
-
-/*
- * Sparc relocation types
- */
-enum reloc_type
-{
-       RELOC_8,
-       RELOC_16,
-       RELOC_32,       /* simplest relocs */
-       RELOC_DISP8,
-       RELOC_DISP16,
-       RELOC_DISP32,   /* Disp's (pc-rel) */
-       RELOC_WDISP30,
-       RELOC_WDISP22,  /* SR word disp's */
-       RELOC_HI22,
-       RELOC_22,       /* SR 22-bit relocs */
-       RELOC_13,
-       RELOC_LO10,     /* SR 13&10-bit relocs */
-       RELOC_SFA_BASE,
-       RELOC_SFA_OFF13, /* SR S.F.A. relocs */
-       RELOC_BASE10,
-       RELOC_BASE13,
-       RELOC_BASE22,   /* base_relative pic */
-       RELOC_PC10,
-       RELOC_PC22,     /* special pc-rel pic */
-       RELOC_JMP_TBL,  /* jmp_tbl_rel in pic */
-       RELOC_SEGOFF16, /* ShLib offset-in-seg */
-       RELOC_GLOB_DAT,
-       RELOC_JMP_SLOT,
-       RELOC_RELATIVE  /* rtld relocs */
-};
-
-/*
- * Format of a relocation datum.
- */
-struct relocation_info /* used when header.a_machtype == M_SPARC */
-{
-        unsigned int    r_address;  /* relocation addr */
-        unsigned int    r_index:24; /* segment index or symbol index */
-        unsigned int    r_extern:1; /* if F, r_index==SEG#; if T, SYM idx */
-        unsigned int    r_pad:2;    /* <unused> */
-        enum reloc_type r_type:5;   /* type of relocation to perform */
-        int             r_addend;   /* addend for relocation value */
-};
-
-#define N_RELOCATION_INFO_DECLARED 1
-
-#endif /* !(__ASSEMBLY__) */
-
-#endif /* __SPARC_A_OUT_H__ */

asm-sparc/ioctls.h, asm-sparc/mman.h, asm-sparc/pconf.h, asm-sparc/socket.h, asm-sparc/termios.h

/!\ Removed SunOS specific definitions.

diff -U 1 -Nwr 2.6.25/asm-sparc/ioctls.h 2.6.26/asm-sparc/ioctls.h
--- 2.6.25/asm-sparc/ioctls.h   2008-07-11 12:23:56.000000000 +0200
+++ 2.6.26/asm-sparc/ioctls.h   2008-07-11 12:22:41.000000000 +0200
@@ -45,4 +45,2 @@
 #define TIOCCONS       _IO('t', 36)
-#define __TIOCSSIZE     _IOW('t', 37, struct sunos_ttysize) /* SunOS Specific */
-#define __TIOCGSIZE     _IOR('t', 38, struct sunos_ttysize) /* SunOS Specific */
 #define TIOCGSOFTCAR   _IOR('t', 100, int)
diff -U 1 -Nwr 2.6.25/asm-sparc/mman.h 2.6.26/asm-sparc/mman.h
--- 2.6.25/asm-sparc/mman.h     2008-07-11 12:23:56.000000000 +0200
+++ 2.6.26/asm-sparc/mman.h     2008-07-11 12:22:41.000000000 +0200
@@ -24,15 +23,2 @@
 
-/* XXX Need to add flags to SunOS's mctl, mlockall, and madvise system
- * XXX calls.
- */
-
-/* SunOS sys_mctl() stuff... */
-#define MC_SYNC         1  /* Sync pages in memory with storage (usu. a file) */
-#define MC_LOCK         2  /* Lock pages into core ram, do not allow swapping of them */
-#define MC_UNLOCK       3  /* Unlock pages locked via previous mctl() with MC_LOCK arg */
-#define MC_LOCKAS       5  /* Lock an entire address space of the calling process */
-#define MC_UNLOCKAS     6  /* Unlock entire address space of calling process */
-
-#define MADV_FREE      0x5             /* (Solaris) contents can be freed */
-
 
diff -U 1 -Nwr 2.6.25/asm-sparc/pconf.h 2.6.26/asm-sparc/pconf.h
--- 2.6.25/asm-sparc/pconf.h    2008-07-11 12:23:55.000000000 +0200
+++ 2.6.26/asm-sparc/pconf.h    1970-01-01 01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-/* $Id: pconf.h,v 1.3 1996/04/25 06:13:25 davem Exp $
- * pconf.h: pathconf() and fpathconf() defines for SunOS
- *          system call compatibility.
- *
- * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
- */
-
-#ifndef _SPARC_PCONF_H
-#define _SPARC_PCONF_H
-
-#include <linux/fs.h>
-#include <linux/limits.h>
-
-#define _PCONF_LINK       1 /* Max number of links to an object        */
-#define _PCONF_CANON      2 /* TTY input buffer line size              */
-#define _PCONF_INPUT      3 /* Biggest packet a tty can imbibe at once */
-#define _PCONF_NAME       4 /* Filename length max                     */
-#define _PCONF_PATH       5 /* Max size of a pathname                  */
-#define _PCONF_PIPE       6 /* Buffer size for a pipe                  */
-#define _PCONF_CHRESTRICT 7 /* Can only root chown files?              */
-#define _PCONF_NOTRUNC    8 /* Are pathnames truncated if too big?     */
-#define _PCONF_VDISABLE   9 /* Magic char to disable special tty chars */
-#define _PCONF_MAXPCONF   9
-
-#endif /* !(_SPARC_PCONF_H) */
diff -U 1 -Nwr 2.6.25/asm-sparc/socket.h 2.6.26/asm-sparc/socket.h
--- 2.6.25/asm-sparc/socket.h   2008-07-11 12:23:56.000000000 +0200
+++ 2.6.26/asm-sparc/socket.h   2008-07-11 12:22:41.000000000 +0200
@@ -26,5 +25,2 @@
 
-/* wha!??? */
-#define SO_DONTLINGER   (~SO_LINGER)  /* Older SunOS compat. hack */
-
 #define SO_SNDBUF      0x1001
diff -U 1 -Nwr 2.6.25/asm-sparc/termios.h 2.6.26/asm-sparc/termios.h
--- 2.6.25/asm-sparc/termios.h  2008-07-11 12:23:56.000000000 +0200
+++ 2.6.26/asm-sparc/termios.h  2008-07-11 12:22:41.000000000 +0200
@@ -35,7 +34,2 @@
 
-struct sunos_ttysize {
-       int st_lines;   /* Lines on the terminal */
-       int st_columns; /* Columns on the terminal */
-};
-
 struct winsize {

asm-sparc/types.h

Parts moved to asm-generic/int-ll64.h.

asm-sparc64/a.out.h

/!\ Removed. Replaced by linux/a.out.h.

diff -U 1 -Nwr 2.6.25/asm-sparc64/a.out.h 2.6.26/asm-sparc64/a.out.h
--- 2.6.25/asm-sparc64/a.out.h  2008-07-11 12:23:55.000000000 +0200
+++ 2.6.26/asm-sparc64/a.out.h  1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include <asm-sparc/a.out.h>

asm-sparc64/ioctls.h, asm-sparc64/mman.h, asm-sparc64/pconf.h

/!\ Removed SunOS specific definitions.

diff -U 1 -Nwr 2.6.25/asm-sparc64/ioctls.h 2.6.26/asm-sparc64/ioctls.h
--- 2.6.25/asm-sparc64/ioctls.h 2008-07-11 12:23:55.000000000 +0200
+++ 2.6.26/asm-sparc64/ioctls.h 2008-07-11 12:22:41.000000000 +0200
@@ -46,4 +45,2 @@
 #define TIOCCONS       _IO('t', 36)
-#define __TIOCSSIZE     _IOW('t', 37, struct sunos_ttysize) /* SunOS Specific */
-#define __TIOCGSIZE     _IOR('t', 38, struct sunos_ttysize) /* SunOS Specific */
 #define TIOCGSOFTCAR   _IOR('t', 100, int)
diff -U 1 -Nwr 2.6.25/asm-sparc64/mman.h 2.6.26/asm-sparc64/mman.h
--- 2.6.25/asm-sparc64/mman.h   2008-07-11 12:23:55.000000000 +0200
+++ 2.6.26/asm-sparc64/mman.h   2008-07-11 12:22:41.000000000 +0200
@@ -24,15 +23,2 @@
 
-/* XXX Need to add flags to SunOS's mctl, mlockall, and madvise system
- * XXX calls.
- */
-
-/* SunOS sys_mctl() stuff... */
-#define MC_SYNC         1  /* Sync pages in memory with storage (usu. a file) */
-#define MC_LOCK         2  /* Lock pages into core ram, do not allow swapping of them */
-#define MC_UNLOCK       3  /* Unlock pages locked via previous mctl() with MC_LOCK arg */
-#define MC_LOCKAS       5  /* Lock an entire address space of the calling process */
-#define MC_UNLOCKAS     6  /* Unlock entire address space of calling process */
-
-#define MADV_FREE      0x5             /* (Solaris) contents can be freed */
-

diff -U 1 -Nwr 2.6.25/asm-sparc64/pconf.h 2.6.26/asm-sparc64/pconf.h
--- 2.6.25/asm-sparc64/pconf.h  2008-07-11 12:23:55.000000000 +0200
+++ 2.6.26/asm-sparc64/pconf.h  1970-01-01 01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-/* $Id: pconf.h,v 1.1 1996/12/02 00:09:10 davem Exp $
- * pconf.h: pathconf() and fpathconf() defines for SunOS
- *          system call compatibility.
- *
- * Copyright (C) 1995, 1996 David S. Miller (davem@caip.rutgers.edu)
- */
-
-#ifndef _SPARC64_PCONF_H
-#define _SPARC64_PCONF_H
-
-#include <linux/fs.h>
-#include <linux/limits.h>
-
-#define _PCONF_LINK       1 /* Max number of links to an object        */
-#define _PCONF_CANON      2 /* TTY input buffer line size              */
-#define _PCONF_INPUT      3 /* Biggest packet a tty can imbibe at once */
-#define _PCONF_NAME       4 /* Filename length max                     */
-#define _PCONF_PATH       5 /* Max size of a pathname                  */
-#define _PCONF_PIPE       6 /* Buffer size for a pipe                  */
-#define _PCONF_CHRESTRICT 7 /* Can only root chown files?              */
-#define _PCONF_NOTRUNC    8 /* Are pathnames truncated if too big?     */
-#define _PCONF_VDISABLE   9 /* Magic char to disable special tty chars */
-#define _PCONF_MAXPCONF   9
-
-#endif /* !(_SPARC64_PCONF_H) */

diff -U 1 -Nwr 2.6.25/asm-sparc64/ptrace.h 2.6.26/asm-sparc64/ptrace.h
--- 2.6.25/asm-sparc64/ptrace.h 2008-07-11 12:23:55.000000000 +0200
+++ 2.6.26/asm-sparc64/ptrace.h 2008-07-11 12:22:41.000000000 +0200
@@ -10,2 +9,7 @@
 
+/* This magic value must have the low 9 bits clear,
+ * as that is where we encode the %tt value, see below.
+ */
+#define PT_REGS_MAGIC 0x57ac6c00
+
 #ifndef __ASSEMBLY__
@@ -20,13 +24,22 @@
        unsigned int y;
-       unsigned int fprs;
-};
 
-struct pt_regs32 {
-       unsigned int psr;
-       unsigned int pc;
-       unsigned int npc;
-       unsigned int y;
-       unsigned int u_regs[16]; /* globals and ins */
+       /* We encode a magic number, PT_REGS_MAGIC, along
+        * with the %tt (trap type) register value at trap
+        * entry time.  The magic number allows us to identify
+        * accurately a trap stack frame in the stack
+        * unwinder, and the %tt value allows us to test
+        * things like "in a system call" etc. for an arbitray
+        * process.
+        *
+        * The PT_REGS_MAGIC is choosen such that it can be
+        * loaded completely using just a sethi instruction.
+        */
+       unsigned int magic;
 };
 
+static __inline__ int pt_regs_trap_type(struct pt_regs *regs)
+{
+       return regs->magic & 0x1ff;
+}
+
 static __inline__ bool pt_regs_is_syscall(struct pt_regs *regs)
@@ -41,2 +54,10 @@
 
+struct pt_regs32 {
+       unsigned int psr;
+       unsigned int pc;
+       unsigned int npc;
+       unsigned int y;
+       unsigned int u_regs[16]; /* globals and ins */
+};
+
 #define UREG_G0        0
@@ -140,3 +161,3 @@
 #define PT_V9_Y      0x98
-#define PT_V9_FPRS   0x9c
+#define PT_V9_MAGIC  0x9c
 #define PT_TSTATE      PT_V9_TSTATE
@@ -255,2 +276,3 @@
 
+
 /* Stuff for the ptrace system call */

asm-sparc64/socket.h, asm-sparc64/termios.h

/!\ Removed SunOS specific definitions.

diff -U 1 -Nwr 2.6.25/asm-sparc64/socket.h 2.6.26/asm-sparc64/socket.h
--- 2.6.25/asm-sparc64/socket.h 2008-07-11 12:23:55.000000000 +0200
+++ 2.6.26/asm-sparc64/socket.h 2008-07-11 12:22:41.000000000 +0200
@@ -26,5 +25,2 @@
 
-/* wha!??? */
-#define SO_DONTLINGER   (~SO_LINGER)  /* Older SunOS compat. hack */
-
 #define SO_SNDBUF      0x1001
diff -U 1 -Nwr 2.6.25/asm-sparc64/termios.h 2.6.26/asm-sparc64/termios.h
--- 2.6.25/asm-sparc64/termios.h        2008-07-11 12:23:55.000000000 +0200
+++ 2.6.26/asm-sparc64/termios.h        2008-07-11 12:22:41.000000000 +0200
@@ -35,7 +34,2 @@
 
-struct sunos_ttysize {
-       int st_lines;   /* Lines on the terminal */
-       int st_columns; /* Columns on the terminal */
-};
-
 struct winsize {

asm-sparc64/types.h

Parts moved to asm-generic/int-l64.h.

asm-x86/boot.h, asm-x86/bootparam.h

Updates boot protocol. New definitions.

diff -U 1 -Nwr 2.6.25/asm-x86/boot.h 2.6.26/asm-x86/boot.h
--- 2.6.25/asm-x86/boot.h       2008-07-11 12:23:57.000000000 +0200
+++ 2.6.26/asm-x86/boot.h       2008-07-11 12:22:42.000000000 +0200
@@ -19,2 +19,10 @@
 
+#ifdef CONFIG_X86_64
+#define BOOT_HEAP_SIZE 0x7000
+#define BOOT_STACK_SIZE        0x4000
+#else
+#define BOOT_HEAP_SIZE 0x4000
+#define BOOT_STACK_SIZE        0x1000
+#endif
+
 #endif /* _ASM_BOOT_H */
diff -U 1 -Nwr 2.6.25/asm-x86/bootparam.h 2.6.26/asm-x86/bootparam.h
--- 2.6.25/asm-x86/bootparam.h  2008-07-11 12:23:57.000000000 +0200
+++ 2.6.26/asm-x86/bootparam.h  2008-07-11 12:22:42.000000000 +0200
@@ -11,2 +11,13 @@
 
+/* setup data types */
+#define SETUP_NONE                     0
+
+/* extensible setup data list node */
+struct setup_data {
+       __u64 next;
+       __u32 type;
+       __u32 len;
+       __u8 data[0];
+};
+
 struct setup_header {
@@ -48,2 +59,5 @@
        __u64   hardware_subarch_data;
+       __u32   payload_offset;
+       __u32   payload_length;
+       __u64   setup_data;
 } __attribute__((packed));

asm-x86/byteorder.h

s/__asm__/asm

asm-x86/kvm.h

New definitions. kvm_*, KVM_*.

diff -U 1 -Nwr 2.6.25/asm-x86/msr-index.h 2.6.26/asm-x86/msr-index.h
--- 2.6.25/asm-x86/msr-index.h  2008-07-11 12:23:57.000000000 +0200
+++ 2.6.26/asm-x86/msr-index.h  2008-07-11 12:22:42.000000000 +0200
@@ -59,2 +59,4 @@
 
+#define MSR_IA32_CR_PAT                        0x00000277
+
 #define MSR_IA32_DEBUGCTLMSR           0x000001d9
@@ -85,2 +87,3 @@
 
+#define MSR_AMD64_NB_CFG               0xc001001f
 #define MSR_AMD64_IBSFETCHCTL          0xc0011030
@@ -111,2 +114,3 @@
 #define MSR_K8_ENABLE_C1E              0xc0010055
+#define MSR_K8_TSEG_ADDR               0xc0010112
 #define K8_MTRRFIXRANGE_DRAM_ENABLE    0x00040000 /* MtrrFixDramEn bit    */

asm-x86/processor-flags.h

New file.

diff -U 1 -Nwr 2.6.25/asm-x86/setup.h 2.6.26/asm-x86/setup.h
--- 2.6.25/asm-x86/setup.h      2008-07-11 12:23:57.000000000 +0200
+++ 2.6.26/asm-x86/setup.h      2008-07-11 12:22:43.000000000 +0200
@@ -6,2 +6,6 @@
 #ifndef __ASSEMBLY__
+
+/* Interrupt control for vSMPowered x86_64 systems */
+void vsmp_init(void);
+
 char *machine_specific_memory_setup(void);

asm-x86/types.h

Parts moved to asm-generic/int-ll64.h.

diff -U 1 -Nwr 2.6.25/asm-x86/vm86.h 2.6.26/asm-x86/vm86.h
--- 2.6.25/asm-x86/vm86.h       2008-07-11 12:23:57.000000000 +0200
+++ 2.6.26/asm-x86/vm86.h       2008-07-11 12:22:43.000000000 +0200
@@ -14,15 +14,9 @@
 
-#define TF_MASK                0x00000100
-#define IF_MASK                0x00000200
-#define IOPL_MASK      0x00003000
-#define NT_MASK                0x00004000
+#include <asm/processor-flags.h>
+
 #ifdef CONFIG_VM86
-#define VM_MASK                0x00020000
+#define X86_VM_MASK    X86_EFLAGS_VM
 #else
-#define VM_MASK                0 /* ignored */
+#define X86_VM_MASK    0 /* No VM86 support */
 #endif
-#define AC_MASK                0x00040000
-#define VIF_MASK       0x00080000      /* virtual interrupt flag */
-#define VIP_MASK       0x00100000      /* virtual interrupt pending */
-#define ID_MASK                0x00200000
 
@@ -44,5 +38,7 @@
 #define VM86_SIGNAL    0       /* return due to signal */
-#define VM86_UNKNOWN   1       /* unhandled GP fault - IO-instruction or similar */
+#define VM86_UNKNOWN   1       /* unhandled GP fault
+                                  - IO-instruction or similar */
 #define VM86_INTx      2       /* int3/int x instruction (ARG = x) */
-#define VM86_STI       3       /* sti/popf/iret instruction enabled virtual interrupts */
+#define VM86_STI       3       /* sti/popf/iret instruction enabled
+                                  virtual interrupts */

linux/a.out.h

New file.

linux/atm.h, linux/atm_tcp.h

Use kernel types

linux/audit.h

Update definition AUDIT_MAX_KEY_LEN, new definition AUDIT_FILETYPE.

diff -U 1 -Nwr 2.6.25/linux/audit.h 2.6.26/linux/audit.h
--- 2.6.25/linux/audit.h        2008-07-11 12:23:43.000000000 +0200
+++ 2.6.26/linux/audit.h        2008-07-11 12:22:27.000000000 +0200
@@ -148,3 +148,3 @@
 #define AUDIT_MAX_FIELDS   64
-#define AUDIT_MAX_KEY_LEN  32
+#define AUDIT_MAX_KEY_LEN  256
 #define AUDIT_BITMASK_SIZE 64
@@ -211,2 +211,3 @@
 #define AUDIT_DIR      107
+#define AUDIT_FILETYPE 108

linux/byteorder/generic.h

/!\ Remove comment only file.

linux/dlmconstants.h

New definitions DLM_*

diff -U 1 -Nwr 2.6.25/linux/dlm_device.h 2.6.26/linux/dlm_device.h
--- 2.6.25/linux/dlm_device.h   2008-07-11 12:23:41.000000000 +0200
+++ 2.6.26/linux/dlm_device.h   2008-07-11 12:22:25.000000000 +0200
@@ -96,5 +102,2 @@
 
-/* Arbitrary length restriction */
-#define MAX_LS_NAME_LEN 64
-
 /* Lockspace flags */

linux/dlm.h

Definition moved to linux/dlmconstants.h, already included. Types update.

linux/dlm_plock.h

New file.

linux/dvb/dmx.h

New definition DMX_OUT_TSDEMUX_TAP

linux/elf.h

Don't use magic constant.

diff -U 1 -Nwr 2.6.25/linux/filter.h 2.6.26/linux/filter.h
--- 2.6.25/linux/filter.h       2008-07-11 12:23:44.000000000 +0200
+++ 2.6.26/linux/filter.h       2008-07-11 12:22:28.000000000 +0200
@@ -120,3 +119,4 @@
 #define SKF_AD_IFINDEX         8
-#define SKF_AD_MAX     12
+#define SKF_AD_NLATTR  12
+#define SKF_AD_MAX     16
 #define SKF_NET_OFF   (-0x100000)
diff -U 1 -Nwr 2.6.25/linux/fs.h 2.6.26/linux/fs.h
--- 2.6.25/linux/fs.h   2008-07-11 12:23:44.000000000 +0200
+++ 2.6.26/linux/fs.h   2008-07-11 12:22:28.000000000 +0200
@@ -85,2 +85,3 @@
 #define WRITE_SYNC     (WRITE | (1 << BIO_RW_SYNC))
+#define SWRITE_SYNC    (SWRITE | (1 << BIO_RW_SYNC))
 #define WRITE_BARRIER  ((1 << BIO_RW) | (1 << BIO_RW_BARRIER))
diff -U 1 -Nwr 2.6.25/linux/fuse.h 2.6.26/linux/fuse.h
--- 2.6.25/linux/fuse.h 2008-07-11 12:23:41.000000000 +0200
+++ 2.6.26/linux/fuse.h 2008-07-11 12:22:25.000000000 +0200
@@ -111,2 +111,3 @@
 #define FUSE_ATOMIC_O_TRUNC    (1 << 3)
+#define FUSE_BIG_WRITES                (1 << 5)
 
diff -U 1 -Nwr 2.6.25/linux/hdreg.h 2.6.26/linux/hdreg.h
--- 2.6.25/linux/hdreg.h        2008-07-11 12:23:44.000000000 +0200
+++ 2.6.26/linux/hdreg.h        2008-07-11 12:22:28.000000000 +0200
@@ -356,4 +356,4 @@
 #define HDIO_SCAN_HWIF         0x0328  /* register and (re)scan interface */
-#define HDIO_SET_NICE          0x0329  /* set nice flags */
 #define HDIO_UNREGISTER_HWIF   0x032a  /* unregister interface */
+#define HDIO_SET_NICE          0x0329  /* set nice flags */
 #define HDIO_SET_WCACHE                0x032b  /* change write cache enable-disable */

linux/hdsmart.h

/!\ Removed file

diff -U 1 -Nwr 2.6.25/linux/hdsmart.h 2.6.26/linux/hdsmart.h
--- 2.6.25/linux/hdsmart.h      2008-07-11 12:23:44.000000000 +0200
+++ 2.6.26/linux/hdsmart.h      1970-01-01 01:00:00.000000000 +0100
@@ -1,124 +0,0 @@
-/*
- * linux/include/linux/hdsmart.h
- *
- * Copyright (C) 1999-2000     Michael Cornwell <cornwell@acm.org>
- * Copyright (C) 2000          Andre Hedrick <andre@linux-ide.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * You should have received a copy of the GNU General Public License
- * (for example /usr/src/linux/COPYING); if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _LINUX_HDSMART_H
-#define _LINUX_HDSMART_H
-
-#define OFFLINE_FULL_SCAN              0
-#define SHORT_SELF_TEST                        1
-#define EXTEND_SELF_TEST               2
-#define SHORT_CAPTIVE_SELF_TEST                129
-#define EXTEND_CAPTIVE_SELF_TEST       130
-
-/* smart_attribute is the vendor specific in SFF-8035 spec */
-typedef struct ata_smart_attribute_s {
-       unsigned char                   id;
-       unsigned short                  status_flag;
-       unsigned char                   normalized;
-       unsigned char                   worse_normal;
-       unsigned char                   raw[6];
-       unsigned char                   reserv;
-} __attribute__ ((packed)) ata_smart_attribute_t;
-
-/* smart_values is format of the read drive Atrribute command */
-typedef struct ata_smart_values_s {
-       unsigned short                  revnumber;
-       ata_smart_attribute_t           vendor_attributes [30];
-        unsigned char                  offline_data_collection_status;
-        unsigned char                  self_test_exec_status;
-       unsigned short                  total_time_to_complete_off_line;
-       unsigned char                   vendor_specific_366;
-       unsigned char                   offline_data_collection_capability;
-       unsigned short                  smart_capability;
-       unsigned char                   errorlog_capability;
-       unsigned char                   vendor_specific_371;
-       unsigned char                   short_test_completion_time;
-       unsigned char                   extend_test_completion_time;
-       unsigned char                   reserved_374_385 [12];
-       unsigned char                   vendor_specific_386_509 [125];
-       unsigned char                   chksum;
-} __attribute__ ((packed)) ata_smart_values_t;
-
-/* Smart Threshold data structures */
-/* Vendor attribute of SMART Threshold */
-typedef struct ata_smart_threshold_entry_s {
-       unsigned char                   id;
-       unsigned char                   normalized_threshold;
-       unsigned char                   reserved[10];
-} __attribute__ ((packed)) ata_smart_threshold_entry_t;
-
-/* Format of Read SMART THreshold Command */
-typedef struct ata_smart_thresholds_s {
-       unsigned short                  revnumber;
-       ata_smart_threshold_entry_t     thres_entries[30];
-       unsigned char                   reserved[149];
-       unsigned char                   chksum;
-} __attribute__ ((packed)) ata_smart_thresholds_t;
-
-typedef struct ata_smart_errorlog_command_struct_s {
-       unsigned char                   devicecontrolreg;
-       unsigned char                   featuresreg;
-       unsigned char                   sector_count;
-       unsigned char                   sector_number;
-       unsigned char                   cylinder_low;
-       unsigned char                   cylinder_high;
-       unsigned char                   drive_head;
-       unsigned char                   commandreg;
-       unsigned int                    timestamp;
-} __attribute__ ((packed)) ata_smart_errorlog_command_struct_t;
-
-typedef struct ata_smart_errorlog_error_struct_s {
-       unsigned char                   error_condition;
-       unsigned char                   extended_error[14];
-       unsigned char                   state;
-       unsigned short                  timestamp;
-} __attribute__ ((packed)) ata_smart_errorlog_error_struct_t;
-
-typedef struct ata_smart_errorlog_struct_s {
-       ata_smart_errorlog_command_struct_t     commands[6];
-       ata_smart_errorlog_error_struct_t       error_struct;
-} __attribute__ ((packed)) ata_smart_errorlog_struct_t;
-
-typedef struct ata_smart_errorlog_s {
-       unsigned char                   revnumber;
-       unsigned char                   error_log_pointer;
-       ata_smart_errorlog_struct_t     errorlog_struct[5];
-       unsigned short                  ata_error_count;
-       unsigned short                  non_fatal_count;
-       unsigned short                  drive_timeout_count;
-       unsigned char                   reserved[53];
-       unsigned char                   chksum;
-} __attribute__ ((packed)) ata_smart_errorlog_t;
-
-typedef struct ata_smart_selftestlog_struct_s {
-       unsigned char                   selftestnumber;
-       unsigned char                   selfteststatus;
-       unsigned short                  timestamp;
-       unsigned char                   selftestfailurecheckpoint;
-       unsigned int                    lbafirstfailure;
-       unsigned char                   vendorspecific[15];
-} __attribute__ ((packed)) ata_smart_selftestlog_struct_t;
-
-typedef struct ata_smart_selftestlog_s {
-       unsigned short                  revnumber;
-       ata_smart_selftestlog_struct_t  selftest_struct[21];
-       unsigned char                   vendorspecific[2];
-       unsigned char                   mostrecenttest;
-       unsigned char                   resevered[2];
-       unsigned char                   chksum;
-} __attribute__ ((packed)) ata_smart_selftestlog_t;
-
-#endif /* _LINUX_HDSMART_H */

linux/hid.h, linux/hidraw.h

New file.

diff -U 1 -Nwr 2.6.25/linux/if_bridge.h 2.6.26/linux/if_bridge.h
--- 2.6.25/linux/if_bridge.h    2008-07-11 12:23:44.000000000 +0200
+++ 2.6.26/linux/if_bridge.h    2008-07-11 12:22:28.000000000 +0200
@@ -99,3 +99,5 @@
        __u32 ageing_timer_value;
-       __u32 unused;
+       __u8 port_hi;
+       __u8 pad0;
+       __u16 unused;
 };
diff -U 1 -Nwr 2.6.25/linux/if_tunnel.h 2.6.26/linux/if_tunnel.h
--- 2.6.25/linux/if_tunnel.h    2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/if_tunnel.h    2008-07-11 12:22:26.000000000 +0200
@@ -9,2 +9,6 @@
 #define SIOCCHGTUNNEL   (SIOCDEVPRIVATE + 3)
+#define SIOCGETPRL      (SIOCDEVPRIVATE + 4)
+#define SIOCADDPRL      (SIOCDEVPRIVATE + 5)
+#define SIOCDELPRL      (SIOCDEVPRIVATE + 6)
+#define SIOCCHGPRL      (SIOCDEVPRIVATE + 7)
 
@@ -19,5 +23,2 @@
 
-/* i_flags values for SIT mode */
-#define        SIT_ISATAP      0x0001
-
 struct ip_tunnel_parm
@@ -33,2 +34,17 @@
 
+/* SIT-mode i_flags */
+#define        SIT_ISATAP      0x0001
+
+struct ip_tunnel_prl {
+       __be32                  addr;
+       __u16                   flags;
+       __u16                   __reserved;
+       __u32                   datalen;
+       __u32                   __reserved2;
+       /* data follows */
+};
+
+/* PRL flags */
+#define        PRL_DEFAULT             0x0001
+
 #endif /* _IF_TUNNEL_H_ */

linux/if_wanpipe.h

/!\ Removed file

diff -U 1 -Nwr 2.6.25/linux/if_wanpipe.h 2.6.26/linux/if_wanpipe.h
--- 2.6.25/linux/if_wanpipe.h   2008-07-11 12:23:44.000000000 +0200
+++ 2.6.26/linux/if_wanpipe.h   1970-01-01 01:00:00.000000000 +0100
@@ -1,103 +0,0 @@
-/*****************************************************************************
-* if_wanpipe.h Header file for the Sangoma AF_WANPIPE Socket   
-*
-* Author:      Nenad Corbic    
-*
-* Copyright:   (c) 2000 Sangoma Technologies Inc.
-*
-*              This program is free software; you can redistribute it and/or
-*              modify it under the terms of the GNU General Public License
-*              as published by the Free Software Foundation; either version
-*              2 of the License, or (at your option) any later version.
-* ============================================================================
-*
-* Jan 28, 2000 Nenad Corbic    Initial Version
-*
-*****************************************************************************/
-
-#ifndef __LINUX_IF_WAN_PACKET_H
-#define __LINUX_IF_WAN_PACKET_H
-
-struct wan_sockaddr_ll
-{
-       unsigned short  sll_family;
-       unsigned short  sll_protocol;
-       int             sll_ifindex;
-       unsigned short  sll_hatype;
-       unsigned char   sll_pkttype;
-       unsigned char   sll_halen;
-       unsigned char   sll_addr[8];
-       unsigned char   sll_device[14];
-       unsigned char   sll_card[14];
-};
-
-typedef struct 
-{
-       unsigned char free;
-       unsigned char state_sk;
-       int rcvbuf;
-       int sndbuf;
-       int rmem;
-       int wmem;
-       int sk_count;
-       unsigned char bound;
-       char name[14];
-       unsigned char d_state;
-       unsigned char svc;
-       unsigned short lcn;
-       unsigned char mbox;
-       unsigned char cmd_busy;
-       unsigned char command;
-       unsigned poll;
-       unsigned poll_cnt;
-       int rblock;     
-} wan_debug_hdr_t;
-
-#define MAX_NUM_DEBUG  10
-#define X25_PROT       0x16
-#define PVC_PROT       0x17    
-
-typedef struct
-{
-       wan_debug_hdr_t debug[MAX_NUM_DEBUG];
-}wan_debug_t;
-
-#define        SIOC_WANPIPE_GET_CALL_DATA      (SIOCPROTOPRIVATE + 0)
-#define        SIOC_WANPIPE_SET_CALL_DATA      (SIOCPROTOPRIVATE + 1)
-#define SIOC_WANPIPE_ACCEPT_CALL       (SIOCPROTOPRIVATE + 2)
-#define SIOC_WANPIPE_CLEAR_CALL                (SIOCPROTOPRIVATE + 3)
-#define SIOC_WANPIPE_RESET_CALL                (SIOCPROTOPRIVATE + 4)
-#define SIOC_WANPIPE_DEBUG             (SIOCPROTOPRIVATE + 5)
-#define SIOC_WANPIPE_SET_NONBLOCK      (SIOCPROTOPRIVATE + 6)
-#define SIOC_WANPIPE_CHECK_TX          (SIOCPROTOPRIVATE + 7)
-#define SIOC_WANPIPE_SOCK_STATE                (SIOCPROTOPRIVATE + 8)
-
-/* Packet types */
-
-#define WAN_PACKET_HOST                0               /* To us                */
-#define WAN_PACKET_BROADCAST   1               /* To all               */
-#define WAN_PACKET_MULTICAST   2               /* To group             */
-#define WAN_PACKET_OTHERHOST   3               /* To someone else      */
-#define WAN_PACKET_OUTGOING            4               /* Outgoing of any type */
-/* These ones are invisible by user level */
-#define WAN_PACKET_LOOPBACK            5               /* MC/BRD frame looped back */
-#define WAN_PACKET_FASTROUTE   6               /* Fastrouted frame     */
-
-
-/* X25 specific */
-#define WAN_PACKET_DATA        7
-#define WAN_PACKET_CMD                 8
-#define WAN_PACKET_ASYNC       9
-#define WAN_PACKET_ERR        10
-
-/* Packet socket options */
-
-#define WAN_PACKET_ADD_MEMBERSHIP              1
-#define WAN_PACKET_DROP_MEMBERSHIP             2
-
-#define WAN_PACKET_MR_MULTICAST        0
-#define WAN_PACKET_MR_PROMISC  1
-#define WAN_PACKET_MR_ALLMULTI 2
-
-
-#endif

diff -U 1 -Nwr 2.6.25/linux/in6.h 2.6.26/linux/in6.h
--- 2.6.25/linux/in6.h  2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/in6.h  2008-07-11 12:22:29.000000000 +0200
@@ -251,2 +251,28 @@
 
+/* RFC5014: Source address selection */
+#define IPV6_ADDR_PREFERENCES  72
+
+#define IPV6_PREFER_SRC_TMP            0x0001
+#define IPV6_PREFER_SRC_PUBLIC         0x0002
+#define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100
+#define IPV6_PREFER_SRC_COA            0x0004
+#define IPV6_PREFER_SRC_HOME           0x0400
+#define IPV6_PREFER_SRC_CGA            0x0008
+#define IPV6_PREFER_SRC_NONCGA         0x0800
+
+/*
+ * Multicast Routing:
+ * see include/linux/mroute6.h.
+ *
+ * MRT6_INIT                   200
+ * MRT6_DONE                   201
+ * MRT6_ADD_MIF                        202
+ * MRT6_DEL_MIF                        203
+ * MRT6_ADD_MFC                        204
+ * MRT6_DEL_MFC                        205
+ * MRT6_VERSION                        206
+ * MRT6_ASSERT                 207
+ * MRT6_PIM                    208
+ * (reserved)                  209
+ */
 #endif
diff -U 1 -Nwr 2.6.25/linux/input.h 2.6.26/linux/input.h
--- 2.6.25/linux/input.h        2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/input.h        2008-07-11 12:22:29.000000000 +0200
@@ -531,4 +531,4 @@
 #define KEY_FRAMEFORWARD       0x1b5
-
 #define KEY_CONTEXT_MENU       0x1b6   /* GenDesc - system context menu */
+#define KEY_MEDIA_REPEAT       0x1b7   /* Consumer - transport control */
 
@@ -634,3 +634,5 @@
 #define SW_HEADPHONE_INSERT    0x02  /* set = inserted */
-#define SW_RADIO               0x03  /* set = radio enabled */
+#define SW_RFKILL_ALL          0x03  /* rfkill master switch, type "any"
+                                        set = radio enabled */
+#define SW_RADIO               SW_RFKILL_ALL   /* deprecated */
 #define SW_MAX                 0x0f

linux/in_route.h

Comment only change

linux/ipmi.h

Whitespace only change

diff -U 1 -Nwr 2.6.25/linux/ipv6.h 2.6.26/linux/ipv6.h
--- 2.6.25/linux/ipv6.h 2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/ipv6.h 2008-07-11 12:22:29.000000000 +0200
@@ -159,2 +159,5 @@
 #endif
+#ifdef CONFIG_IPV6_MROUTE
+       __s32           mc_forwarding;
+#endif
        void            *sysctl;
@@ -189,2 +192,3 @@
        DEVCONF_ACCEPT_SOURCE_ROUTE,
+       DEVCONF_MC_FORWARDING,
        DEVCONF_MAX

linux/isdn.h

Removed cobalt special case for upper bounds

diff -U 1 -Nwr 2.6.25/linux/keyctl.h 2.6.26/linux/keyctl.h
--- 2.6.25/linux/keyctl.h       2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/keyctl.h       2008-07-11 12:22:26.000000000 +0200
@@ -51,2 +51,3 @@
 #define KEYCTL_ASSUME_AUTHORITY                16      /* assume request_key() authorisation */
+#define KEYCTL_GET_SECURITY            17      /* get key security label */
 
diff -U 1 -Nwr 2.6.25/linux/kvm.h 2.6.26/linux/kvm.h
--- 2.6.25/linux/kvm.h  2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/kvm.h  2008-07-11 12:22:29.000000000 +0200
@@ -15,2 +15,8 @@
 
+/* for KVM_TRACE_ENABLE */
+struct kvm_user_trace_setup {
+       __u32 buf_size; /* sub_buffer size of each per-cpu */
+       __u32 buf_nr; /* the number of sub_buffers of each per-cpu */
+};
+
 /* for KVM_CREATE_MEMORY_REGION */
@@ -75,2 +81,5 @@
 #define KVM_EXIT_TPR_ACCESS       12
+#define KVM_EXIT_S390_SIEIC       13
+#define KVM_EXIT_S390_RESET       14
+#define KVM_EXIT_DCR              15
 
@@ -139,2 +148,23 @@
                } tpr_access;
+               /* KVM_EXIT_S390_SIEIC */
+               struct {
+                       __u8 icptcode;
+                       __u64 mask; /* psw upper half */
+                       __u64 addr; /* psw lower half */
+                       __u16 ipa;
+                       __u32 ipb;
+               } s390_sieic;
+               /* KVM_EXIT_S390_RESET */
+#define KVM_S390_RESET_POR       1
+#define KVM_S390_RESET_CLEAR     2
+#define KVM_S390_RESET_SUBSYSTEM 4
+#define KVM_S390_RESET_CPU_INIT  8
+#define KVM_S390_RESET_IPL       16
+               __u64 s390_reset_flags;
+               /* KVM_EXIT_DCR */
+               struct {
+                       __u32 dcrn;
+                       __u32 data;
+                       __u8  is_write;
+               } dcr;
                /* Fix the size of the union. */
@@ -206,2 +236,70 @@
 
+/* for KVM_SET_MPSTATE */
+
+#define KVM_MP_STATE_RUNNABLE          0
+#define KVM_MP_STATE_UNINITIALIZED     1
+#define KVM_MP_STATE_INIT_RECEIVED     2
+#define KVM_MP_STATE_HALTED            3
+#define KVM_MP_STATE_SIPI_RECEIVED     4
+
+struct kvm_mp_state {
+       __u32 mp_state;
+};
+
+struct kvm_s390_psw {
+       __u64 mask;
+       __u64 addr;
+};
+
+/* valid values for type in kvm_s390_interrupt */
+#define KVM_S390_SIGP_STOP             0xfffe0000u
+#define KVM_S390_PROGRAM_INT           0xfffe0001u
+#define KVM_S390_SIGP_SET_PREFIX       0xfffe0002u
+#define KVM_S390_RESTART               0xfffe0003u
+#define KVM_S390_INT_VIRTIO            0xffff2603u
+#define KVM_S390_INT_SERVICE           0xffff2401u
+#define KVM_S390_INT_EMERGENCY         0xffff1201u
+
+struct kvm_s390_interrupt {
+       __u32 type;
+       __u32 parm;
+       __u64 parm64;
+};
+
+#define KVM_TRC_SHIFT           16
+/*
+ * kvm trace categories
+ */
+#define KVM_TRC_ENTRYEXIT       (1 << KVM_TRC_SHIFT)
+#define KVM_TRC_HANDLER         (1 << (KVM_TRC_SHIFT + 1)) /* only 12 bits */
+
+/*
+ * kvm trace action
+ */
+#define KVM_TRC_VMENTRY         (KVM_TRC_ENTRYEXIT + 0x01)
+#define KVM_TRC_VMEXIT          (KVM_TRC_ENTRYEXIT + 0x02)
+#define KVM_TRC_PAGE_FAULT      (KVM_TRC_HANDLER + 0x01)
+
+#define KVM_TRC_HEAD_SIZE       12
+#define KVM_TRC_CYCLE_SIZE      8
+#define KVM_TRC_EXTRA_MAX       7
+
+/* This structure represents a single trace buffer record. */
+struct kvm_trace_rec {
+       __u32 event:28;
+       __u32 extra_u32:3;
+       __u32 cycle_in:1;
+       __u32 pid;
+       __u32 vcpu_id;
+       union {
+               struct {
+                       __u32 cycle_lo, cycle_hi;
+                       __u32 extra_u32[KVM_TRC_EXTRA_MAX];
+               } cycle;
+               struct {
+                       __u32 extra_u32[KVM_TRC_EXTRA_MAX];
+               } nocycle;
+       } u;
+};
+
 #define KVMIO 0xAE
@@ -214,2 +312,4 @@
 #define KVM_GET_MSR_INDEX_LIST    _IOWR(KVMIO, 0x02, struct kvm_msr_list)
+
+#define KVM_S390_ENABLE_SIE       _IO(KVMIO,   0x06)
 /*
@@ -224,3 +324,8 @@
 #define KVM_GET_SUPPORTED_CPUID   _IOWR(KVMIO, 0x05, struct kvm_cpuid2)
-
+/*
+ * ioctls for kvm trace
+ */
+#define KVM_TRACE_ENABLE          _IOW(KVMIO, 0x06, struct kvm_user_trace_setup)
+#define KVM_TRACE_PAUSE           _IO(KVMIO,  0x07)
+#define KVM_TRACE_DISABLE         _IO(KVMIO,  0x08)
 /*
@@ -235,2 +340,9 @@
 #define KVM_CAP_EXT_CPUID 7
+#define KVM_CAP_CLOCKSOURCE 8
+#define KVM_CAP_NR_VCPUS 9       /* returns max vcpus per vm */
+#define KVM_CAP_NR_MEMSLOTS 10   /* returns max memory slots per vm */
+#define KVM_CAP_PIT 11
+#define KVM_CAP_NOP_IO_DELAY 12
+#define KVM_CAP_PV_MMU 13
+#define KVM_CAP_MP_STATE 14
 
@@ -257,2 +369,5 @@
 #define KVM_SET_IRQCHIP                  _IOR(KVMIO,  0x63, struct kvm_irqchip)
+#define KVM_CREATE_PIT           _IO(KVMIO,  0x64)
+#define KVM_GET_PIT              _IOWR(KVMIO, 0x65, struct kvm_pit_state)
+#define KVM_SET_PIT              _IOR(KVMIO,  0x66, struct kvm_pit_state)
 
@@ -283,2 +398,14 @@
 #define KVM_SET_VAPIC_ADDR        _IOW(KVMIO,  0x93, struct kvm_vapic_addr)
+/* valid for virtual machine (for floating interrupt)_and_ vcpu */
+#define KVM_S390_INTERRUPT        _IOW(KVMIO,  0x94, struct kvm_s390_interrupt)
+/* store status for s390 */
+#define KVM_S390_STORE_STATUS_NOADDR    (-1ul)
+#define KVM_S390_STORE_STATUS_PREFIXED  (-2ul)
+#define KVM_S390_STORE_STATUS    _IOW(KVMIO,  0x95, unsigned long)
+/* initial ipl psw for s390 */
+#define KVM_S390_SET_INITIAL_PSW  _IOW(KVMIO,  0x96, struct kvm_s390_psw)
+/* initial reset for s390 */
+#define KVM_S390_INITIAL_RESET    _IO(KVMIO,  0x97)
+#define KVM_GET_MP_STATE          _IOR(KVMIO,  0x98, struct kvm_mp_state)
+#define KVM_SET_MP_STATE          _IOW(KVMIO,  0x99, struct kvm_mp_state)

linux/lock_dlm_plock.h

/!\ Removed file. Replaced by linux/dlm_plock.h.

diff -U 1 -Nwr 2.6.25/linux/lock_dlm_plock.h 2.6.26/linux/lock_dlm_plock.h
--- 2.6.25/linux/lock_dlm_plock.h       2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/lock_dlm_plock.h       1970-01-01 01:00:00.000000000 +0100
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2005 Red Hat, Inc.  All rights reserved.
- *
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU General Public License v.2.
- */
-
-#ifndef __LOCK_DLM_PLOCK_DOT_H__
-#define __LOCK_DLM_PLOCK_DOT_H__
-
-#define GDLM_PLOCK_MISC_NAME           "lock_dlm_plock"
-
-#define GDLM_PLOCK_VERSION_MAJOR       1
-#define GDLM_PLOCK_VERSION_MINOR       1
-#define GDLM_PLOCK_VERSION_PATCH       0
-
-enum {
-       GDLM_PLOCK_OP_LOCK = 1,
-       GDLM_PLOCK_OP_UNLOCK,
-       GDLM_PLOCK_OP_GET,
-};
-
-struct gdlm_plock_info {
-       __u32 version[3];
-       __u8 optype;
-       __u8 ex;
-       __u8 wait;
-       __u8 pad;
-       __u32 pid;
-       __s32 nodeid;
-       __s32 rv;
-       __u32 fsid;
-       __u64 number;
-       __u64 start;
-       __u64 end;
-       __u64 owner;
-};
-
-#endif
-

diff -U 1 -Nwr 2.6.25/linux/mempolicy.h 2.6.26/linux/mempolicy.h
--- 2.6.25/linux/mempolicy.h    2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/mempolicy.h    2008-07-11 12:22:29.000000000 +0200
@@ -10,11 +10,28 @@
 
-/* Policies */
-#define MPOL_DEFAULT   0
-#define MPOL_PREFERRED 1
-#define MPOL_BIND      2
-#define MPOL_INTERLEAVE        3
+/*
+ * Both the MPOL_* mempolicy mode and the MPOL_F_* optional mode flags are
+ * passed by the user to either set_mempolicy() or mbind() in an 'int' actual.
+ * The MPOL_MODE_FLAGS macro determines the legal set of optional mode flags.
+ */
 
-#define MPOL_MAX MPOL_INTERLEAVE
+/* Policies */
+enum {
+       MPOL_DEFAULT,
+       MPOL_PREFERRED,
+       MPOL_BIND,
+       MPOL_INTERLEAVE,
+       MPOL_MAX,       /* always last member of enum */
+};
+
+/* Flags for set_mempolicy */
+#define MPOL_F_STATIC_NODES    (1 << 15)
+#define MPOL_F_RELATIVE_NODES  (1 << 14)
+
+/*
+ * MPOL_MODE_FLAGS is the union of all possible optional mode flags passed to
+ * either set_mempolicy() or mbind().
+ */
+#define MPOL_MODE_FLAGS        (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES)
 
-/* Flags for get_mem_policy */
+/* Flags for get_mempolicy */
 #define MPOL_F_NODE    (1<<0)  /* return next IL mode instead of node mask */
@@ -29,2 +46,10 @@
 
+/*
+ * Internal flags that share the struct mempolicy flags word with
+ * "mode flags".  These flags are allocated from bit 0 up, as they
+ * are never OR'ed into the mode in mempolicy API arguments.
+ */
+#define MPOL_F_SHARED  (1 << 0)        /* identify shared policies */
+#define MPOL_F_LOCAL   (1 << 1)        /* preferred local allocation */
+
 
diff -U 1 -Nwr 2.6.25/linux/meye.h 2.6.26/linux/meye.h
--- 2.6.25/linux/meye.h 2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/meye.h 2008-07-11 12:22:26.000000000 +0200
@@ -60,3 +60,3 @@
 #define V4L2_CID_AGC           V4L2_CID_PRIVATE_BASE
-#define V4L2_CID_SHARPNESS     (V4L2_CID_PRIVATE_BASE + 1)
+#define V4L2_CID_MEYE_SHARPNESS        (V4L2_CID_PRIVATE_BASE + 1)
 #define V4L2_CID_PICTURE       (V4L2_CID_PRIVATE_BASE + 2)
diff -U 1 -Nwr 2.6.25/linux/mroute6.h 2.6.26/linux/mroute6.h
--- 2.6.25/linux/mroute6.h      1970-01-01 01:00:00.000000000 +0100
+++ 2.6.26/linux/mroute6.h      2008-07-11 12:22:29.000000000 +0200
@@ -0,0 +1,137 @@
+#ifndef __LINUX_MROUTE6_H
+#define __LINUX_MROUTE6_H
+
+#include <linux/types.h>
+#include <linux/sockios.h>
+
+/*
+ *     Based on the MROUTING 3.5 defines primarily to keep
+ *     source compatibility with BSD.
+ *
+ *     See the pim6sd code for the original history.
+ *
+ *      Protocol Independent Multicast (PIM) data structures included
+ *      Carlos Picoto (cap@di.fc.ul.pt)
+ *
+ */
+
+#define MRT6_BASE      200
+#define MRT6_INIT      (MRT6_BASE)     /* Activate the kernel mroute code      */
+#define MRT6_DONE      (MRT6_BASE+1)   /* Shutdown the kernel mroute           */
+#define MRT6_ADD_MIF   (MRT6_BASE+2)   /* Add a virtual interface              */
+#define MRT6_DEL_MIF   (MRT6_BASE+3)   /* Delete a virtual interface           */
+#define MRT6_ADD_MFC   (MRT6_BASE+4)   /* Add a multicast forwarding entry     */
+#define MRT6_DEL_MFC   (MRT6_BASE+5)   /* Delete a multicast forwarding entry  */
+#define MRT6_VERSION   (MRT6_BASE+6)   /* Get the kernel multicast version     */
+#define MRT6_ASSERT    (MRT6_BASE+7)   /* Activate PIM assert mode             */
+#define MRT6_PIM       (MRT6_BASE+8)   /* enable PIM code      */
+
+#define SIOCGETMIFCNT_IN6      SIOCPROTOPRIVATE        /* IP protocol privates */
+#define SIOCGETSGCNT_IN6       (SIOCPROTOPRIVATE+1)
+#define SIOCGETRPF     (SIOCPROTOPRIVATE+2)
+
+#define MAXMIFS                32
+typedef unsigned long mifbitmap_t;     /* User mode code depends on this lot */
+typedef unsigned short mifi_t;
+#define ALL_MIFS       ((mifi_t)(-1))
+
+#ifndef IF_SETSIZE
+#define IF_SETSIZE     256
+#endif
+
+typedef        __u32           if_mask;
+#define NIFBITS (sizeof(if_mask) * 8)        /* bits per mask */
+
+#if !defined(__KERNEL__) && !defined(DIV_ROUND_UP)
+#define        DIV_ROUND_UP(x,y)       (((x) + ((y) - 1)) / (y))
+#endif
+
+typedef struct if_set {
+       if_mask ifs_bits[DIV_ROUND_UP(IF_SETSIZE, NIFBITS)];
+} if_set;
+
+#define IF_SET(n, p)    ((p)->ifs_bits[(n)/NIFBITS] |= (1 << ((n) % NIFBITS)))
+#define IF_CLR(n, p)    ((p)->ifs_bits[(n)/NIFBITS] &= ~(1 << ((n) % NIFBITS)))
+#define IF_ISSET(n, p)  ((p)->ifs_bits[(n)/NIFBITS] & (1 << ((n) % NIFBITS)))
+#define IF_COPY(f, t)   bcopy(f, t, sizeof(*(f)))
+#define IF_ZERO(p)      bzero(p, sizeof(*(p)))
+
+/*
+ *     Passed by mrouted for an MRT_ADD_MIF - again we use the
+ *     mrouted 3.6 structures for compatibility
+ */
+
+struct mif6ctl {
+       mifi_t  mif6c_mifi;             /* Index of MIF */
+       unsigned char mif6c_flags;      /* MIFF_ flags */
+       unsigned char vifc_threshold;   /* ttl limit */
+       u_short  mif6c_pifi;            /* the index of the physical IF */
+       unsigned int vifc_rate_limit;   /* Rate limiter values (NI) */
+};
+
+#define MIFF_REGISTER  0x1     /* register vif */
+
+/*
+ *     Cache manipulation structures for mrouted and PIMd
+ */
+
+struct mf6cctl
+{
+       struct sockaddr_in6 mf6cc_origin;               /* Origin of mcast      */
+       struct sockaddr_in6 mf6cc_mcastgrp;             /* Group in question    */
+       mifi_t  mf6cc_parent;                   /* Where it arrived     */
+       struct if_set mf6cc_ifset;              /* Where it is going */
+};
+
+/*
+ *     Group count retrieval for pim6sd
+ */
+
+struct sioc_sg_req6
+{
+       struct sockaddr_in6 src;
+       struct sockaddr_in6 grp;
+       unsigned long pktcnt;
+       unsigned long bytecnt;
+       unsigned long wrong_if;
+};
+
+/*
+ *     To get vif packet counts
+ */
+
+struct sioc_mif_req6
+{
+       mifi_t  mifi;           /* Which iface */
+       unsigned long icount;   /* In packets */
+       unsigned long ocount;   /* Out packets */
+       unsigned long ibytes;   /* In bytes */
+       unsigned long obytes;   /* Out bytes */
+};
+
+/*
+ *     That's all usermode folks
+ */
+
+
+
+/*
+ * Structure used to communicate from kernel to multicast router.
+ * We'll overlay the structure onto an MLD header (not an IPv6 heder like igmpmsg{}
+ * used for IPv4 implementation). This is because this structure will be passed via an
+ * IPv6 raw socket, on wich an application will only receiver the payload i.e the data after
+ * the IPv6 header and all the extension headers. (See section 3 of RFC 3542)
+ */
+
+struct mrt6msg {
+#define MRT6MSG_NOCACHE                1
+#define MRT6MSG_WRONGMIF       2
+#define MRT6MSG_WHOLEPKT       3               /* used for use level encap */
+       __u8            im6_mbz;                /* must be zero            */
+       __u8            im6_msgtype;            /* what type of message    */
+       __u16           im6_mif;                /* mif rec'd on            */
+       __u32           im6_pad;                /* padding for 64 bit arch */
+       struct in6_addr im6_src, im6_dst;
+};
+
+#endif
diff -U 1 -Nwr 2.6.25/linux/mroute.h 2.6.26/linux/mroute.h
--- 2.6.25/linux/mroute.h       2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/mroute.h       2008-07-11 12:22:29.000000000 +0200
@@ -4,3 +4,4 @@
 #include <linux/sockios.h>
-#include <linux/in.h>
+#include <linux/types.h>
+#include <linux/pim.h>
 
diff -U 1 -Nwr 2.6.25/linux/msdos_fs.h 2.6.26/linux/msdos_fs.h
--- 2.6.25/linux/msdos_fs.h     2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/msdos_fs.h     2008-07-11 12:22:29.000000000 +0200
@@ -59,4 +59,2 @@
 
-/* media of boot sector */
-#define FAT_VALID_MEDIA(x)     ((0xF8 <= (x) && (x) <= 0xFF) || (x) == 0xF0)
 #define FAT_FIRST_ENT(s, x)    ((MSDOS_SB(s)->fat_bits == 32 ? 0x0FFFFF00 : \
diff -U 1 -Nwr 2.6.25/linux/msg.h 2.6.26/linux/msg.h
--- 2.6.25/linux/msg.h  2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/msg.h  2008-07-11 12:22:29.000000000 +0200
@@ -51,2 +51,12 @@
 
+/*
+ * Scaling factor to compute msgmni:
+ * the memory dedicated to msg queues (msgmni * msgmnb) should occupy
+ * at most 1/MSG_MEM_SCALE of the lowmem (see the formula in ipc/msg.c):
+ * up to 8MB       : msgmni = 16 (MSGMNI)
+ * 4 GB            : msgmni = 8K
+ * more than 16 GB : msgmni = 32K (IPCMNI)
+ */
+#define MSG_MEM_SCALE 32
+
 #define MSGMNI    16   /* <= IPCMNI */     /* max # of msg queue identifiers */
@@ -56,3 +66,3 @@
 /* unused */
-#define MSGPOOL (MSGMNI*MSGMNB/1024)  /* size in kilobytes of message pool */
+#define MSGPOOL (MSGMNI * MSGMNB / 1024) /* size in kbytes of message pool */
 #define MSGTQL  MSGMNB            /* number of system message headers */
diff -U 1 -Nwr 2.6.25/linux/mtio.h 2.6.26/linux/mtio.h
--- 2.6.25/linux/mtio.h 2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/mtio.h 2008-07-11 12:22:26.000000000 +0200
@@ -194,2 +194,3 @@
 #define MT_ST_NOWAIT            0x2000
+#define MT_ST_SILI             0x4000
 
diff -U 1 -Nwr 2.6.25/linux/nbd.h 2.6.26/linux/nbd.h
--- 2.6.25/linux/nbd.h  2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/nbd.h  2008-07-11 12:22:29.000000000 +0200
@@ -56,7 +56,3 @@
        __be32 len;
-}
-#ifdef __GNUC__
-       __attribute__ ((packed))
-#endif
-;
+} __attribute__ ((packed));
 
diff -U 1 -Nwr 2.6.25/linux/netdevice.h 2.6.26/linux/netdevice.h
--- 2.6.25/linux/netdevice.h    2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/netdevice.h    2008-07-11 12:22:29.000000000 +0200
@@ -39,25 +39,2 @@
 
-/*
- *     Compute the worst case header length according to the protocols
- *     used.
- */
- 
-#if !defined(CONFIG_AX25) && !defined(CONFIG_AX25_MODULE) && !defined(CONFIG_TR)
-#define LL_MAX_HEADER  32
-#else
-#if defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE)
-#define LL_MAX_HEADER  96
-#else
-#define LL_MAX_HEADER  48
-#endif
-#endif
-
-#if !defined(CONFIG_NET_IPIP) && !defined(CONFIG_NET_IPIP_MODULE) && \
-    !defined(CONFIG_NET_IPGRE) &&  !defined(CONFIG_NET_IPGRE_MODULE) && \
-    !defined(CONFIG_IPV6_SIT) && !defined(CONFIG_IPV6_SIT_MODULE) && \
-    !defined(CONFIG_IPV6_TUNNEL) && !defined(CONFIG_IPV6_TUNNEL_MODULE)
-#define MAX_HEADER LL_MAX_HEADER
-#else
-#define MAX_HEADER (LL_MAX_HEADER + 48)
-#endif
 
diff -U 1 -Nwr 2.6.25/linux/netfilter/nfnetlink_conntrack.h 2.6.26/linux/netfilter/nfnetlink_conntrack.h
--- 2.6.25/linux/netfilter/nfnetlink_conntrack.h        2008-07-11 12:23:39.000000000 +0200
+++ 2.6.26/linux/netfilter/nfnetlink_conntrack.h        2008-07-11 12:22:23.000000000 +0200
@@ -82,2 +82,3 @@
        CTA_PROTOINFO_TCP,
+       CTA_PROTOINFO_DCCP,
        __CTA_PROTOINFO_MAX
@@ -97,2 +98,9 @@
 
+enum ctattr_protoinfo_dccp {
+       CTA_PROTOINFO_DCCP_UNSPEC,
+       CTA_PROTOINFO_DCCP_STATE,
+       __CTA_PROTOINFO_DCCP_MAX,
+};
+#define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1)
+
 enum ctattr_counters {
diff -U 1 -Nwr 2.6.25/linux/netfilter/xt_sctp.h 2.6.26/linux/netfilter/xt_sctp.h
--- 2.6.25/linux/netfilter/xt_sctp.h    2008-07-11 12:23:39.000000000 +0200
+++ 2.6.26/linux/netfilter/xt_sctp.h    2008-07-11 12:22:23.000000000 +0200
@@ -39,3 +39,3 @@
        do {                                            \
-               chunkmap[type / bytes(u_int32_t)] |=    \
+               (chunkmap)[type / bytes(u_int32_t)] |=  \
                        1 << (type % bytes(u_int32_t)); \
@@ -45,3 +45,3 @@
        do {                                                    \
-               chunkmap[type / bytes(u_int32_t)] &=            \
+               (chunkmap)[type / bytes(u_int32_t)] &=          \
                        ~(1 << (type % bytes(u_int32_t)));      \
@@ -51,3 +51,3 @@
 ({                                                             \
-       (chunkmap[type / bytes (u_int32_t)] &                   \
+       ((chunkmap)[type / bytes (u_int32_t)] &                 \
                (1 << (type % bytes (u_int32_t)))) ? 1: 0;      \
@@ -56,47 +56,33 @@
 #define SCTP_CHUNKMAP_RESET(chunkmap)                          \
-       do {                                                    \
-               int i;                                          \
-               for (i = 0; i < ARRAY_SIZE(chunkmap); i++)      \
-                       chunkmap[i] = 0;                        \
-       } while (0)
+       memset((chunkmap), 0, sizeof(chunkmap))
 
 #define SCTP_CHUNKMAP_SET_ALL(chunkmap)                        \
-       do {                                                    \
-               int i;                                          \
-               for (i = 0; i < ARRAY_SIZE(chunkmap); i++)      \
-                       chunkmap[i] = ~0;                       \
-       } while (0)
+       memset((chunkmap), ~0U, sizeof(chunkmap))
 
 #define SCTP_CHUNKMAP_COPY(destmap, srcmap)                    \
-       do {                                                    \
-               int i;                                          \
-               for (i = 0; i < ARRAY_SIZE(srcmap); i++)        \
-                       destmap[i] = srcmap[i];                 \
-       } while (0)
+       memcpy((destmap), (srcmap), sizeof(srcmap))
 
 #define SCTP_CHUNKMAP_IS_CLEAR(chunkmap)               \
-({                                                     \
-       int i;                                          \
-       int flag = 1;                                   \
-       for (i = 0; i < ARRAY_SIZE(chunkmap); i++) {    \
-               if (chunkmap[i]) {                      \
-                       flag = 0;                       \
-                       break;                          \
-               }                                       \
-       }                                               \
-        flag;                                          \
-})
+       __sctp_chunkmap_is_clear((chunkmap), ARRAY_SIZE(chunkmap))
+static __inline__ bool
+__sctp_chunkmap_is_clear(const u_int32_t *chunkmap, unsigned int n)
+{
+       unsigned int i;
+       for (i = 0; i < n; ++i)
+               if (chunkmap[i])
+                       return false;
+       return true;
+}
 
 #define SCTP_CHUNKMAP_IS_ALL_SET(chunkmap)             \
-({                                                     \
-       int i;                                          \
-       int flag = 1;                                   \
-       for (i = 0; i < ARRAY_SIZE(chunkmap); i++) {    \
-               if (chunkmap[i] != ~0) {                \
-                       flag = 0;                       \
-                               break;                  \
-               }                                       \
-       }                                               \
-        flag;                                          \
-})
+       __sctp_chunkmap_is_all_set((chunkmap), ARRAY_SIZE(chunkmap))
+static __inline__ bool
+__sctp_chunkmap_is_all_set(const u_int32_t *chunkmap, unsigned int n)
+{
+       unsigned int i;
+       for (i = 0; i < n; ++i)
+               if (chunkmap[i] != ~0U)
+                       return false;
+       return true;
+}
 
diff -U 1 -Nwr 2.6.25/linux/netfilter_arp/arp_tables.h 2.6.26/linux/netfilter_arp/arp_tables.h
--- 2.6.25/linux/netfilter_arp/arp_tables.h     2008-07-11 12:23:39.000000000 +0200
+++ 2.6.26/linux/netfilter_arp/arp_tables.h     2008-07-11 12:22:23.000000000 +0200
@@ -11,2 +11,3 @@
 
+#include <linux/types.h>
 #include <linux/netfilter_arp.h>
@@ -17,4 +18,2 @@
 #define ARPT_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN
-#define arpt_target xt_target
-#define arpt_table xt_table
 
diff -U 1 -Nwr 2.6.25/linux/netfilter.h 2.6.26/linux/netfilter.h
--- 2.6.25/linux/netfilter.h    2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/netfilter.h    2008-07-11 12:22:29.000000000 +0200
@@ -3,2 +3,3 @@
 
+#include <linux/types.h>
 
diff -U 1 -Nwr 2.6.25/linux/netfilter_ipv4/ip_tables.h 2.6.26/linux/netfilter_ipv4/ip_tables.h
--- 2.6.25/linux/netfilter_ipv4/ip_tables.h     2008-07-11 12:23:40.000000000 +0200
+++ 2.6.26/linux/netfilter_ipv4/ip_tables.h     2008-07-11 12:22:24.000000000 +0200
@@ -17,2 +17,3 @@
 
+#include <linux/types.h>
 #include <linux/netfilter_ipv4.h>
diff -U 1 -Nwr 2.6.25/linux/netfilter_ipv4.h 2.6.26/linux/netfilter_ipv4.h
--- 2.6.25/linux/netfilter_ipv4.h       2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/netfilter_ipv4.h       2008-07-11 12:22:29.000000000 +0200
@@ -62,4 +62,2 @@
        NF_IP_PRI_SELINUX_LAST = 225,
-       NF_IP_PRI_CONNTRACK_HELPER = INT_MAX - 2,
-       NF_IP_PRI_NAT_SEQ_ADJUST = INT_MAX - 1,
        NF_IP_PRI_CONNTRACK_CONFIRM = INT_MAX,
diff -U 1 -Nwr 2.6.25/linux/netfilter_ipv6/ip6_tables.h 2.6.26/linux/netfilter_ipv6/ip6_tables.h
--- 2.6.25/linux/netfilter_ipv6/ip6_tables.h    2008-07-11 12:23:40.000000000 +0200
+++ 2.6.26/linux/netfilter_ipv6/ip6_tables.h    2008-07-11 12:22:24.000000000 +0200
@@ -17,2 +17,3 @@
 
+#include <linux/types.h>
 #include <linux/netfilter_ipv6.h>
diff -U 1 -Nwr 2.6.25/linux/net.h 2.6.26/linux/net.h
--- 2.6.25/linux/net.h  2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/net.h  2008-07-11 12:22:29.000000000 +0200
@@ -21,2 +21,3 @@
 #include <linux/wait.h>
+#include <linux/socket.h>
 #include <asm/socket.h>
@@ -28,3 +29,3 @@
 
-#define NPROTO         34              /* should be enough for now..   */
+#define NPROTO         AF_MAX
 
diff -U 1 -Nwr 2.6.25/linux/nfs3.h 2.6.26/linux/nfs3.h
--- 2.6.25/linux/nfs3.h 2008-07-11 12:23:45.000000000 +0200
+++ 2.6.26/linux/nfs3.h 2008-07-11 12:22:29.000000000 +0200
@@ -98,8 +98,2 @@
 
-#if defined(__KERNEL__) || defined(NFS_NEED_KERNEL_TYPES)
-
-/* Number of 32bit words in post_op_attr */
-#define NFS3_POST_OP_ATTR_WORDS                22
-
-#endif /* __KERNEL__ */
 #endif /* _LINUX_NFS3_H */
diff -U 1 -Nwr 2.6.25/linux/nl80211.h 2.6.26/linux/nl80211.h
--- 2.6.25/linux/nl80211.h      2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/nl80211.h      2008-07-11 12:22:27.000000000 +0200
@@ -80,2 +80,14 @@
  *
+ * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to
+ *     destination %NL80211_ATTR_MAC on the interface identified by
+ *     %NL80211_ATTR_IFINDEX.
+ * @NL80211_CMD_SET_MPATH:  Set mesh path attributes for mesh path to
+ *     destination %NL80211_ATTR_MAC on the interface identified by
+ *     %NL80211_ATTR_IFINDEX.
+ * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the
+ *     the interface identified by %NL80211_ATTR_IFINDEX.
+ * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC
+ *     or, if no MAC address given, all mesh paths, on the interface identified
+ *     by %NL80211_ATTR_IFINDEX.
+ *
  * @NL80211_CMD_MAX: highest used command number
@@ -114,2 +126,7 @@
 
+       NL80211_CMD_GET_MPATH,
+       NL80211_CMD_SET_MPATH,
+       NL80211_CMD_NEW_MPATH,
+       NL80211_CMD_DEL_MPATH,
+
        /* used to define NL80211_CMD_MAX below */
@@ -159,5 +176,19 @@
  *     to, or the AP interface the station was originally added to to.
- * @NL80211_ATTR_STA_STATS: statistics for a station, part of station info
+ * @NL80211_ATTR_STA_INFO: information about a station, part of station info
  *     given for %NL80211_CMD_GET_STATION, nested attribute containing
- *     info as possible, see &enum nl80211_sta_stats.
+ *     info as possible, see &enum nl80211_sta_info.
+ *
+ * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands,
+ *     consisting of a nested array.
+ *
+ * @NL80211_ATTR_MESH_ID: mesh id (1-32 bytes).
+ * @NL80211_ATTR_PLINK_ACTION: action to perform on the mesh peer link.
+ * @NL80211_ATTR_MPATH_NEXT_HOP: MAC address of the next hop for a mesh path.
+ * @NL80211_ATTR_MPATH_INFO: information about a mesh_path, part of mesh path
+ *     info given for %NL80211_CMD_GET_MPATH, nested attribute described at
+ *     &enum nl80211_mpath_info.
+ *
+ *
+ * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of
+ *      &enum nl80211_mntr_flags.
  *
@@ -195,3 +226,7 @@
        NL80211_ATTR_STA_VLAN,
-       NL80211_ATTR_STA_STATS,
+       NL80211_ATTR_STA_INFO,
+
+       NL80211_ATTR_WIPHY_BANDS,
+
+       NL80211_ATTR_MNTR_FLAGS,
 
@@ -199,2 +234,7 @@
 
+       NL80211_ATTR_MESH_ID,
+       NL80211_ATTR_STA_PLINK_ACTION,
+       NL80211_ATTR_MPATH_NEXT_HOP,
+       NL80211_ATTR_MPATH_INFO,
+
        __NL80211_ATTR_AFTER_LAST,
@@ -215,2 +255,3 @@
  * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames
+ * @NL80211_IFTYPE_MESH_POINT: mesh point
  * @NL80211_IFTYPE_MAX: highest interface type number currently defined
@@ -230,2 +271,3 @@
        NL80211_IFTYPE_MONITOR,
+       NL80211_IFTYPE_MESH_POINT,
 
@@ -259,23 +301,163 @@
 /**
- * enum nl80211_sta_stats - station statistics
+ * enum nl80211_sta_info - station information
  *
- * These attribute types are used with %NL80211_ATTR_STA_STATS
+ * These attribute types are used with %NL80211_ATTR_STA_INFO
  * when getting information about a station.
  *
- * @__NL80211_STA_STAT_INVALID: attribute number 0 is reserved
- * @NL80211_STA_STAT_INACTIVE_TIME: time since last activity (u32, msecs)
- * @NL80211_STA_STAT_RX_BYTES: total received bytes (u32, from this station)
- * @NL80211_STA_STAT_TX_BYTES: total transmitted bytes (u32, to this station)
- * @__NL80211_STA_STAT_AFTER_LAST: internal
- * @NL80211_STA_STAT_MAX: highest possible station stats attribute
- */
-enum nl80211_sta_stats {
-       __NL80211_STA_STAT_INVALID,
-       NL80211_STA_STAT_INACTIVE_TIME,
-       NL80211_STA_STAT_RX_BYTES,
-       NL80211_STA_STAT_TX_BYTES,
+ * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved
+ * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs)
+ * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station)
+ * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station)
+ * @__NL80211_STA_INFO_AFTER_LAST: internal
+ * @NL80211_STA_INFO_MAX: highest possible station info attribute
+ */
+enum nl80211_sta_info {
+       __NL80211_STA_INFO_INVALID,
+       NL80211_STA_INFO_INACTIVE_TIME,
+       NL80211_STA_INFO_RX_BYTES,
+       NL80211_STA_INFO_TX_BYTES,
+       NL80211_STA_INFO_LLID,
+       NL80211_STA_INFO_PLID,
+       NL80211_STA_INFO_PLINK_STATE,
+
+       /* keep last */
+       __NL80211_STA_INFO_AFTER_LAST,
+       NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
+};
+
+/**
+ * enum nl80211_mpath_flags - nl80211 mesh path flags
+ *
+ * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active
+ * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running
+ * @NL80211_MPATH_FLAG_DSN_VALID: the mesh path contains a valid DSN
+ * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set
+ * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded
+ */
+enum nl80211_mpath_flags {
+       NL80211_MPATH_FLAG_ACTIVE =     1<<0,
+       NL80211_MPATH_FLAG_RESOLVING =  1<<1,
+       NL80211_MPATH_FLAG_DSN_VALID =  1<<2,
+       NL80211_MPATH_FLAG_FIXED =      1<<3,
+       NL80211_MPATH_FLAG_RESOLVED =   1<<4,
+};
+
+/**
+ * enum nl80211_mpath_info - mesh path information
+ *
+ * These attribute types are used with %NL80211_ATTR_MPATH_INFO when getting
+ * information about a mesh path.
+ *
+ * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved
+ * @NL80211_ATTR_MPATH_FRAME_QLEN: number of queued frames for this destination
+ * @NL80211_ATTR_MPATH_DSN: destination sequence number
+ * @NL80211_ATTR_MPATH_METRIC: metric (cost) of this mesh path
+ * @NL80211_ATTR_MPATH_EXPTIME: expiration time for the path, in msec from now
+ * @NL80211_ATTR_MPATH_FLAGS: mesh path flags, enumerated in
+ *     &enum nl80211_mpath_flags;
+ * @NL80211_ATTR_MPATH_DISCOVERY_TIMEOUT: total path discovery timeout, in msec
+ * @NL80211_ATTR_MPATH_DISCOVERY_RETRIES: mesh path discovery retries
+ */
+enum nl80211_mpath_info {
+       __NL80211_MPATH_INFO_INVALID,
+       NL80211_MPATH_INFO_FRAME_QLEN,
+       NL80211_MPATH_INFO_DSN,
+       NL80211_MPATH_INFO_METRIC,
+       NL80211_MPATH_INFO_EXPTIME,
+       NL80211_MPATH_INFO_FLAGS,
+       NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
+       NL80211_MPATH_INFO_DISCOVERY_RETRIES,
+
+       /* keep last */
+       __NL80211_MPATH_INFO_AFTER_LAST,
+       NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
+};
+
+/**
+ * enum nl80211_band_attr - band attributes
+ * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved
+ * @NL80211_BAND_ATTR_FREQS: supported frequencies in this band,
+ *     an array of nested frequency attributes
+ * @NL80211_BAND_ATTR_RATES: supported bitrates in this band,
+ *     an array of nested bitrate attributes
+ */
+enum nl80211_band_attr {
+       __NL80211_BAND_ATTR_INVALID,
+       NL80211_BAND_ATTR_FREQS,
+       NL80211_BAND_ATTR_RATES,
+
+       /* keep last */
+       __NL80211_BAND_ATTR_AFTER_LAST,
+       NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
+};
+
+/**
+ * enum nl80211_frequency_attr - frequency attributes
+ * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
+ * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current
+ *     regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is
+ *     permitted on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted
+ *     on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
+ *     on this channel in current regulatory domain.
+ */
+enum nl80211_frequency_attr {
+       __NL80211_FREQUENCY_ATTR_INVALID,
+       NL80211_FREQUENCY_ATTR_FREQ,
+       NL80211_FREQUENCY_ATTR_DISABLED,
+       NL80211_FREQUENCY_ATTR_PASSIVE_SCAN,
+       NL80211_FREQUENCY_ATTR_NO_IBSS,
+       NL80211_FREQUENCY_ATTR_RADAR,
+
+       /* keep last */
+       __NL80211_FREQUENCY_ATTR_AFTER_LAST,
+       NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1
+};
+
+/**
+ * enum nl80211_bitrate_attr - bitrate attributes
+ * @NL80211_BITRATE_ATTR_RATE: Bitrate in units of 100 kbps
+ * @NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE: Short preamble supported
+ *     in 2.4 GHz band.
+ */
+enum nl80211_bitrate_attr {
+       __NL80211_BITRATE_ATTR_INVALID,
+       NL80211_BITRATE_ATTR_RATE,
+       NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE,
+
+       /* keep last */
+       __NL80211_BITRATE_ATTR_AFTER_LAST,
+       NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1
+};
+
+/**
+ * enum nl80211_mntr_flags - monitor configuration flags
+ *
+ * Monitor configuration flags.
+ *
+ * @__NL80211_MNTR_FLAG_INVALID: reserved
+ *
+ * @NL80211_MNTR_FLAG_FCSFAIL: pass frames with bad FCS
+ * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP
+ * @NL80211_MNTR_FLAG_CONTROL: pass control frames
+ * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering
+ * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing.
+ *     overrides all other flags.
+ *
+ * @__NL80211_MNTR_FLAG_AFTER_LAST: internal use
+ * @NL80211_MNTR_FLAG_MAX: highest possible monitor flag
+ */
+enum nl80211_mntr_flags {
+       __NL80211_MNTR_FLAG_INVALID,
+       NL80211_MNTR_FLAG_FCSFAIL,
+       NL80211_MNTR_FLAG_PLCPFAIL,
+       NL80211_MNTR_FLAG_CONTROL,
+       NL80211_MNTR_FLAG_OTHER_BSS,
+       NL80211_MNTR_FLAG_COOK_FRAMES,
 
        /* keep last */
-       __NL80211_STA_STAT_AFTER_LAST,
-       NL80211_STA_STAT_MAX = __NL80211_STA_STAT_AFTER_LAST - 1
+       __NL80211_MNTR_FLAG_AFTER_LAST,
+       NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1
 };
diff -U 1 -Nwr 2.6.25/linux/pci_regs.h 2.6.26/linux/pci_regs.h
--- 2.6.25/linux/pci_regs.h     2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/pci_regs.h     2008-07-11 12:22:27.000000000 +0200
@@ -397,5 +397,13 @@
 #define PCI_EXP_LNKCAP         12      /* Link Capabilities */
+#define  PCI_EXP_LNKCAP_ASPMS  0xc00   /* ASPM Support */
+#define  PCI_EXP_LNKCAP_L0SEL  0x7000  /* L0s Exit Latency */
+#define  PCI_EXP_LNKCAP_L1EL   0x38000 /* L1 Exit Latency */
+#define  PCI_EXP_LNKCAP_CLKPM  0x40000 /* L1 Clock Power Management */
 #define PCI_EXP_LNKCTL         16      /* Link Control */
+#define  PCI_EXP_LNKCTL_RL     0x20    /* Retrain Link */
+#define  PCI_EXP_LNKCTL_CCC    0x40    /* Common Clock COnfiguration */
 #define  PCI_EXP_LNKCTL_CLKREQ_EN 0x100        /* Enable clkreq */
 #define PCI_EXP_LNKSTA         18      /* Link Status */
+#define  PCI_EXP_LNKSTA_LT     0x800   /* Link Training */
+#define  PCI_EXP_LNKSTA_SLC    0x1000  /* Slot Clock Configuration */
 #define PCI_EXP_SLTCAP         20      /* Slot Capabilities */
diff -U 1 -Nwr 2.6.25/linux/phantom.h 2.6.26/linux/phantom.h
--- 2.6.25/linux/phantom.h      2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/phantom.h      2008-07-11 12:22:27.000000000 +0200
@@ -36,3 +36,6 @@
 #define PHN_NOT_OH             _IO  (PH_IOC_MAGIC, 4)
-#define PH_IOC_MAXNR           4
+#define PHN_GETREG             _IOWR(PH_IOC_MAGIC, 5, struct phm_reg)
+#define PHN_SETREG             _IOW(PH_IOC_MAGIC, 6, struct phm_reg)
+#define PHN_GETREGS            _IOWR(PH_IOC_MAGIC, 7, struct phm_regs)
+#define PHN_SETREGS            _IOW(PH_IOC_MAGIC, 8, struct phm_regs)
 
diff -U 1 -Nwr 2.6.25/linux/pim.h 2.6.26/linux/pim.h
--- 2.6.25/linux/pim.h  1970-01-01 01:00:00.000000000 +0100
+++ 2.6.26/linux/pim.h  2008-07-11 12:22:30.000000000 +0200
@@ -0,0 +1,28 @@
+#ifndef __LINUX_PIM_H
+#define __LINUX_PIM_H
+
+#include <asm/byteorder.h>
+
+struct pim {
+#if defined(__LITTLE_ENDIAN_BITFIELD)
+       __u8    pim_type:4,             /* PIM message type */
+               pim_ver:4;              /* PIM version */
+#elif defined(__BIG_ENDIAN_BITFIELD)
+       __u8    pim_ver:4;              /* PIM version */
+               pim_type:4;             /* PIM message type */
+#endif
+       __u8    pim_rsv;                /* Reserved */
+       __be16  pim_cksum;              /* Checksum */
+};
+
+#define PIM_MINLEN             8
+
+/* Message types - V1 */
+#define PIM_V1_VERSION         __constant_htonl(0x10000000)
+#define PIM_V1_REGISTER                1
+
+/* Message types - V2 */
+#define PIM_VERSION            2
+#define PIM_REGISTER           1
+
+#endif
diff -U 1 -Nwr 2.6.25/linux/prctl.h 2.6.26/linux/prctl.h
--- 2.6.25/linux/prctl.h        2008-07-11 12:23:42.000000000 +0200
+++ 2.6.26/linux/prctl.h        2008-07-11 12:22:27.000000000 +0200
@@ -18,3 +18,4 @@
 
-/* Get/set whether or not to drop capabilities on setuid() away from uid 0 */
+/* Get/set whether or not to drop capabilities on setuid() away from
+ * uid 0 (as per security/commoncap.c) */
 #define PR_GET_KEEPCAPS   7
@@ -65,3 +66,3 @@
 
-/* Get/set the capability bounding set */
+/* Get/set the capability bounding set (as per security/commoncap.c) */
 #define PR_CAPBSET_READ 23
@@ -69,2 +70,12 @@
 
+/* Get/set the process' ability to use the timestamp counter instruction */
+#define PR_GET_TSC 25
+#define PR_SET_TSC 26
+# define PR_TSC_ENABLE         1       /* allow the use of the timestamp counter */
+# define PR_TSC_SIGSEGV                2       /* throw a SIGSEGV instead of reading the TSC */
+
+/* Get/set securebits (as per security/commoncap.c) */
+#define PR_GET_SECUREBITS 27
+#define PR_SET_SECUREBITS 28
+
 #endif /* _LINUX_PRCTL_H */
diff -U 1 -Nwr 2.6.25/linux/resource.h 2.6.26/linux/resource.h
--- 2.6.25/linux/resource.h     2008-07-11 12:23:43.000000000 +0200
+++ 2.6.26/linux/resource.h     2008-07-11 12:22:27.000000000 +0200
@@ -21,2 +21,3 @@
 #define RUSAGE_BOTH    (-2)            /* sys_wait4() uses this */
+#define        RUSAGE_THREAD   1               /* only the calling thread */
 
diff -U 1 -Nwr 2.6.25/linux/rtnetlink.h 2.6.26/linux/rtnetlink.h
--- 2.6.25/linux/rtnetlink.h    2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/rtnetlink.h    2008-07-11 12:22:30.000000000 +0200
@@ -248,2 +248,3 @@
 /* User defined values */
+       RT_TABLE_COMPAT=252,
        RT_TABLE_DEFAULT=253,
@@ -269,6 +270,6 @@
        RTA_MULTIPATH,
-       RTA_PROTOINFO,
+       RTA_PROTOINFO, /* no longer used */
        RTA_FLOW,
        RTA_CACHEINFO,
-       RTA_SESSION,
+       RTA_SESSION, /* no longer used */
        RTA_MP_ALGO, /* no longer used */
diff -U 1 -Nwr 2.6.25/linux/serial_core.h 2.6.26/linux/serial_core.h
--- 2.6.25/linux/serial_core.h  2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/serial_core.h  2008-07-11 12:22:30.000000000 +0200
@@ -151,4 +151,4 @@
 
-#define PORT_SC26XX    79
-
+/* Blackfin SPORT */
+#define PORT_BFIN_SPORT                79
 
@@ -158,2 +158,4 @@
 
+#define PORT_SC26XX    82
+
 
diff -U 1 -Nwr 2.6.25/linux/serio.h 2.6.26/linux/serio.h
--- 2.6.25/linux/serio.h        2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/serio.h        2008-07-11 12:22:30.000000000 +0200
@@ -70,2 +70,3 @@
 #define SERIO_FUJITSU  0x35
+#define SERIO_ZHENHUA  0x36
 
diff -U 1 -Nwr 2.6.25/linux/smb.h 2.6.26/linux/smb.h
--- 2.6.25/linux/smb.h  2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/smb.h  2008-07-11 12:22:30.000000000 +0200
@@ -13,2 +13,3 @@
 #include <linux/magic.h>
+#include <linux/time.h>
 
diff -U 1 -Nwr 2.6.25/linux/synclink.h 2.6.26/linux/synclink.h
--- 2.6.25/linux/synclink.h     2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/synclink.h     2008-07-11 12:22:30.000000000 +0200
@@ -15,6 +15,2 @@
 
-#define BOOLEAN int
-#define TRUE 1
-#define FALSE 0
-
 #define BIT0   0x0001
diff -U 1 -Nwr 2.6.25/linux/sysctl.h 2.6.26/linux/sysctl.h
--- 2.6.25/linux/sysctl.h       2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/sysctl.h       2008-07-11 12:22:31.000000000 +0200
@@ -937,3 +937,2 @@
 
-
 #endif /* _LINUX_SYSCTL_H */
diff -U 1 -Nwr 2.6.25/linux/timex.h 2.6.26/linux/timex.h
--- 2.6.25/linux/timex.h        2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/timex.h        2008-07-11 12:22:31.000000000 +0200
@@ -59,2 +59,4 @@
 
+#define NTP_API                4       /* NTP API version */
+
 /*
@@ -75,6 +77,2 @@
 /*
- * The SHIFT_UPDATE define establishes the decimal point of the
- * time_offset variable which represents the current offset with
- * respect to standard time.
- *
  * SHIFT_USEC defines the scaling (shift) of the time_freq and
@@ -83,12 +81,14 @@
  */
-#define SHIFT_UPDATE (SHIFT_HZ + 1) /* time offset scale (shift) */
 #define SHIFT_USEC 16          /* frequency offset scale (shift) */
-#define SHIFT_NSEC 12          /* kernel frequency offset scale */
-
-#define MAXPHASE 512000L        /* max phase error (us) */
-#define MAXFREQ (512L << SHIFT_USEC)  /* max frequency error (ppm) */
-#define MAXFREQ_NSEC (512000L << SHIFT_NSEC) /* max frequency error (ppb) */
+#define PPM_SCALE (NSEC_PER_USEC << (NTP_SCALE_SHIFT - SHIFT_USEC))
+#define PPM_SCALE_INV_SHIFT 20
+#define PPM_SCALE_INV ((1ll << (PPM_SCALE_INV_SHIFT + NTP_SCALE_SHIFT)) / \
+                      PPM_SCALE + 1)
+
+#define MAXPHASE 500000000l    /* max phase error (ns) */
+#define MAXFREQ 500000         /* max frequency error (ns/s) */
+#define MAXFREQ_SCALED ((s64)MAXFREQ << NTP_SCALE_SHIFT)
 #define MINSEC 256             /* min interval between updates (s) */
 #define MAXSEC 2048            /* max interval between updates (s) */
-#define        NTP_PHASE_LIMIT (MAXPHASE << 5) /* beyond max. dispersion */
+#define NTP_PHASE_LIMIT ((MAXPHASE / NSEC_PER_USEC) << 5) /* beyond max. dispersion */
 
@@ -122,5 +122,7 @@
 
+       int tai;                /* TAI offset (ro) */
+
        int  :32; int  :32; int  :32; int  :32;
        int  :32; int  :32; int  :32; int  :32;
-       int  :32; int  :32; int  :32; int  :32;
+       int  :32; int  :32; int  :32;
 };
@@ -136,2 +138,5 @@
 #define ADJ_TIMECONST          0x0020  /* pll time constant */
+#define ADJ_TAI                        0x0080  /* set TAI offset */
+#define ADJ_MICRO              0x1000  /* select microsecond resolution */
+#define ADJ_NANO               0x2000  /* select nanosecond resolution */
 #define ADJ_TICK               0x4000  /* tick value */
@@ -147,4 +152,2 @@
 #define MOD_TIMECONST  ADJ_TIMECONST
-#define MOD_CLKB       ADJ_TICK
-#define MOD_CLKA       ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
 
@@ -170,5 +173,9 @@
 #define STA_CLOCKERR   0x1000  /* clock hardware fault (ro) */
+#define STA_NANO       0x2000  /* resolution (0 = us, 1 = ns) (ro) */
+#define STA_MODE       0x4000  /* mode (0 = PLL, 1 = FLL) (ro) */
+#define STA_CLK                0x8000  /* clock source (0 = A, 1 = B) (ro) */
 
+/* read-only bits */
 #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
-    STA_PPSERROR | STA_CLOCKERR) /* read-only bits */
+       STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
 
diff -U 1 -Nwr 2.6.25/linux/udf_fs_i.h 2.6.26/linux/udf_fs_i.h
--- 2.6.25/linux/udf_fs_i.h     2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/udf_fs_i.h     2008-07-11 12:22:27.000000000 +0200
@@ -11,3 +11,2 @@
  */
-
 #ifndef _UDF_FS_I_H
@@ -15,5 +14,3 @@
 
-
 /* exported IOCTLs, we have 'l', 0x40-0x7f */
-
 #define UDF_GETEASIZE   _IOR('l', 0x40, int)
diff -U 1 -Nwr 2.6.25/linux/udp.h 2.6.26/linux/udp.h
--- 2.6.25/linux/udp.h  2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/udp.h  2008-07-11 12:22:31.000000000 +0200
@@ -28,3 +28,2 @@
 
-
 /* UDP socket options */
diff -U 1 -Nwr 2.6.25/linux/usb/audio.h 2.6.26/linux/usb/audio.h
--- 2.6.25/linux/usb/audio.h    2008-07-11 12:23:40.000000000 +0200
+++ 2.6.26/linux/usb/audio.h    2008-07-11 12:22:24.000000000 +0200
@@ -52,2 +52,2 @@
 
-#endif
+#endif /* __LINUX_USB_AUDIO_H */
diff -U 1 -Nwr 2.6.25/linux/usb/cdc.h 2.6.26/linux/usb/cdc.h
--- 2.6.25/linux/usb/cdc.h      2008-07-11 12:23:40.000000000 +0200
+++ 2.6.26/linux/usb/cdc.h      2008-07-11 12:22:24.000000000 +0200
@@ -8,2 +8,5 @@
 
+#ifndef __LINUX_USB_CDC_H
+#define __LINUX_USB_CDC_H
+
 #define USB_CDC_SUBCLASS_ACM                   0x02
@@ -129,2 +132,11 @@
 
+/* "Telephone Control Model Functional Descriptor" from CDC WMC spec 6.3..3 */
+struct usb_cdc_dmm_desc {
+       __u8    bFunctionLength;
+       __u8    bDescriptorType;
+       __u8    bDescriptorSubtype;
+       __u16   bcdVersion;
+       __le16  wMaxCommand;
+} __attribute__ ((packed));
+
 /* "MDLM Functional Descriptor" from CDC WMC spec 6.7.2.3 */
@@ -223 +235,2 @@
 
+#endif /* __LINUX_USB_CDC_H */
diff -U 1 -Nwr 2.6.25/linux/usb/ch9.h 2.6.26/linux/usb/ch9.h
--- 2.6.25/linux/usb/ch9.h      2008-07-11 12:23:41.000000000 +0200
+++ 2.6.26/linux/usb/ch9.h      2008-07-11 12:22:24.000000000 +0200
@@ -104,2 +104,7 @@
 
+/* The Link Power Mangement (LPM) ECN defines USB_REQ_TEST_AND_SET command,
+ * used by hubs to put ports into a new L1 suspend state, except that it
+ * forgot to define its number ...
+ */
+
 /*
@@ -107,3 +112,4 @@
  * are read as a bit array returned by USB_REQ_GET_STATUS.  (So there
- * are at most sixteen features of each type.)
+ * are at most sixteen features of each type.)  Hubs may also support a
+ * new USB_REQ_TEST_AND_SET_FEATURE to put ports into L1 suspend.
  */
@@ -182,2 +188,3 @@
 #define USB_DT_RPIPE                   0x22
+#define USB_DT_CS_RADIO_CONTROL                0x23
 
@@ -450,3 +457,3 @@
 
-/* USB_DT_BOS:  group of wireless capabilities */
+/* USB_DT_BOS:  group of device-level capabilities */
 struct usb_bos_descriptor {
@@ -496,2 +503,12 @@
 
+#define        USB_CAP_TYPE_EXT                2
+
+struct usb_ext_cap_descriptor {                /* Link Power Management */
+       __u8  bLength;
+       __u8  bDescriptorType;
+       __u8  bDevCapabilityType;
+       __u8  bmAttributes;
+#define USB_LPM_SUPPORT                        (1 << 1)        /* supports LPM */
+} __attribute__((packed));
+
 /*-------------------------------------------------------------------------*/
@@ -576,2 +593,4 @@
         * CONFIGURED respectively when SOF tokens flow again.
+        * At this level there's no difference between L1 and L2
+        * suspend states.  (L2 being original USB 1.1 suspend.)
         */
diff -U 1 -Nwr 2.6.25/linux/usb/gadgetfs.h 2.6.26/linux/usb/gadgetfs.h
--- 2.6.25/linux/usb/gadgetfs.h 2008-07-11 12:23:41.000000000 +0200
+++ 2.6.26/linux/usb/gadgetfs.h 2008-07-11 12:22:24.000000000 +0200
@@ -1,9 +1 @@
-#ifndef __LINUX_USB_GADGETFS_H
-#define __LINUX_USB_GADGETFS_H
-
-#include <asm/types.h>
-#include <asm/ioctl.h>
-
-#include <linux/usb/ch9.h>
-
 /*
@@ -25,2 +17,10 @@
 
+#ifndef __LINUX_USB_GADGETFS_H
+#define __LINUX_USB_GADGETFS_H
+
+#include <asm/types.h>
+#include <asm/ioctl.h>
+
+#include <linux/usb/ch9.h>
+
 /*
diff -U 1 -Nwr 2.6.25/linux/usb/g_printer.h 2.6.26/linux/usb/g_printer.h
--- 2.6.25/linux/usb/g_printer.h        2008-07-11 12:23:41.000000000 +0200
+++ 2.6.26/linux/usb/g_printer.h        2008-07-11 12:22:24.000000000 +0200
@@ -20,2 +20,4 @@
 
+#ifndef __LINUX_USB_G_PRINTER_H
+#define __LINUX_USB_G_PRINTER_H
 
@@ -31 +33,3 @@
 #define GADGET_SET_PRINTER_STATUS      _IOWR('g', 0x22, unsigned char)
+
+#endif /* __LINUX_USB_G_PRINTER_H */
diff -U 1 -Nwr 2.6.25/linux/usb/midi.h 2.6.26/linux/usb/midi.h
--- 2.6.25/linux/usb/midi.h     2008-07-11 12:23:41.000000000 +0200
+++ 2.6.26/linux/usb/midi.h     2008-07-11 12:22:24.000000000 +0200
@@ -111,2 +111,2 @@
 
-#endif
+#endif /* __LINUX_USB_MIDI_H */
diff -U 1 -Nwr 2.6.25/linux/usbdevice_fs.h 2.6.26/linux/usbdevice_fs.h
--- 2.6.25/linux/usbdevice_fs.h 2008-07-11 12:23:46.000000000 +0200
+++ 2.6.26/linux/usbdevice_fs.h 2008-07-11 12:22:31.000000000 +0200
@@ -79,4 +79,7 @@
 
-#define USBDEVFS_URB_SHORT_NOT_OK          1
-#define USBDEVFS_URB_ISO_ASAP              2
+#define USBDEVFS_URB_SHORT_NOT_OK      0x01
+#define USBDEVFS_URB_ISO_ASAP          0x02
+#define USBDEVFS_URB_NO_FSBR           0x20
+#define USBDEVFS_URB_ZERO_PACKET       0x40
+#define USBDEVFS_URB_NO_INTERRUPT      0x80
 
diff -U 1 -Nwr 2.6.25/linux/version.h 2.6.26/linux/version.h
--- 2.6.25/linux/version.h      2008-07-11 12:23:47.000000000 +0200
+++ 2.6.26/linux/version.h      2008-07-11 12:22:31.000000000 +0200
@@ -1,2 +1,2 @@
-#define LINUX_VERSION_CODE 132633
+#define LINUX_VERSION_CODE 132634
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
diff -U 1 -Nwr 2.6.25/linux/videodev2.h 2.6.26/linux/videodev2.h
--- 2.6.25/linux/videodev2.h    2008-07-11 12:23:47.000000000 +0200
+++ 2.6.26/linux/videodev2.h    2008-07-11 12:22:31.000000000 +0200
@@ -279,2 +279,3 @@
 #define V4L2_PIX_FMT_GREY    v4l2_fourcc('G','R','E','Y') /*  8  Greyscale     */
+#define V4L2_PIX_FMT_Y16     v4l2_fourcc('Y','1','6',' ') /* 16  Greyscale     */
 #define V4L2_PIX_FMT_PAL8    v4l2_fourcc('P','A','L','8') /*  8  8-bit palette */
@@ -305,2 +306,3 @@
 #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B','A','8','1') /*  8  BGBG.. GRGR.. */
+#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B','Y','R','2') /* 16  BGBG.. GRGR.. */
 
@@ -790,2 +792,3 @@
 #define V4L2_CTRL_CLASS_MPEG 0x00990000        /* MPEG-compression controls */
+#define V4L2_CTRL_CLASS_CAMERA 0x009a0000      /* Camera class controls */
 
@@ -846,3 +849,3 @@
 #define V4L2_CID_AUDIO_LOUDNESS                (V4L2_CID_BASE+10)
-#define V4L2_CID_BLACK_LEVEL           (V4L2_CID_BASE+11)
+#define V4L2_CID_BLACK_LEVEL           (V4L2_CID_BASE+11) /* Deprecated */
 #define V4L2_CID_AUTO_WHITE_BALANCE    (V4L2_CID_BASE+12)
@@ -852,3 +855,3 @@
 #define V4L2_CID_GAMMA                 (V4L2_CID_BASE+16)
-#define V4L2_CID_WHITENESS             (V4L2_CID_GAMMA) /* ? Not sure */
+#define V4L2_CID_WHITENESS             (V4L2_CID_GAMMA) /* Deprecated */
 #define V4L2_CID_EXPOSURE              (V4L2_CID_BASE+17)
@@ -858,5 +861,21 @@
 #define V4L2_CID_VFLIP                 (V4L2_CID_BASE+21)
+
+/* Deprecated; use V4L2_CID_PAN_RESET and V4L2_CID_TILT_RESET */
 #define V4L2_CID_HCENTER               (V4L2_CID_BASE+22)
 #define V4L2_CID_VCENTER               (V4L2_CID_BASE+23)
-#define V4L2_CID_LASTP1                        (V4L2_CID_BASE+24) /* last CID + 1 */
+
+#define V4L2_CID_POWER_LINE_FREQUENCY  (V4L2_CID_BASE+24)
+enum v4l2_power_line_frequency {
+       V4L2_CID_POWER_LINE_FREQUENCY_DISABLED  = 0,
+       V4L2_CID_POWER_LINE_FREQUENCY_50HZ      = 1,
+       V4L2_CID_POWER_LINE_FREQUENCY_60HZ      = 2,
+};
+#define V4L2_CID_HUE_AUTO                      (V4L2_CID_BASE+25)
+#define V4L2_CID_WHITE_BALANCE_TEMPERATURE     (V4L2_CID_BASE+26)
+#define V4L2_CID_SHARPNESS                     (V4L2_CID_BASE+27)
+#define V4L2_CID_BACKLIGHT_COMPENSATION        (V4L2_CID_BASE+28)
+#define V4L2_CID_CHROMA_AGC                     (V4L2_CID_BASE+29)
+#define V4L2_CID_COLOR_KILLER                   (V4L2_CID_BASE+30)
+/* last CID + 1 */
+#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+31)
 
@@ -1048,2 +1067,28 @@
 
+/*  Camera class control IDs */
+#define V4L2_CID_CAMERA_CLASS_BASE     (V4L2_CTRL_CLASS_CAMERA | 0x900)
+#define V4L2_CID_CAMERA_CLASS          (V4L2_CTRL_CLASS_CAMERA | 1)
+
+#define V4L2_CID_EXPOSURE_AUTO                 (V4L2_CID_CAMERA_CLASS_BASE+1)
+enum  v4l2_exposure_auto_type {
+       V4L2_EXPOSURE_AUTO = 0,
+       V4L2_EXPOSURE_MANUAL = 1,
+       V4L2_EXPOSURE_SHUTTER_PRIORITY = 2,
+       V4L2_EXPOSURE_APERTURE_PRIORITY = 3
+};
+#define V4L2_CID_EXPOSURE_ABSOLUTE             (V4L2_CID_CAMERA_CLASS_BASE+2)
+#define V4L2_CID_EXPOSURE_AUTO_PRIORITY                (V4L2_CID_CAMERA_CLASS_BASE+3)
+
+#define V4L2_CID_PAN_RELATIVE                  (V4L2_CID_CAMERA_CLASS_BASE+4)
+#define V4L2_CID_TILT_RELATIVE                 (V4L2_CID_CAMERA_CLASS_BASE+5)
+#define V4L2_CID_PAN_RESET                     (V4L2_CID_CAMERA_CLASS_BASE+6)
+#define V4L2_CID_TILT_RESET                    (V4L2_CID_CAMERA_CLASS_BASE+7)
+
+#define V4L2_CID_PAN_ABSOLUTE                  (V4L2_CID_CAMERA_CLASS_BASE+8)
+#define V4L2_CID_TILT_ABSOLUTE                 (V4L2_CID_CAMERA_CLASS_BASE+9)
+
+#define V4L2_CID_FOCUS_ABSOLUTE                        (V4L2_CID_CAMERA_CLASS_BASE+10)
+#define V4L2_CID_FOCUS_RELATIVE                        (V4L2_CID_CAMERA_CLASS_BASE+11)
+#define V4L2_CID_FOCUS_AUTO                    (V4L2_CID_CAMERA_CLASS_BASE+12)
+
 /*

linux/virtio_9p.h, linux/virtio_balloon.h

New file.

diff -U 1 -Nwr 2.6.25/linux/virtio_blk.h 2.6.26/linux/virtio_blk.h
--- 2.6.25/linux/virtio_blk.h   2008-07-11 12:23:47.000000000 +0200
+++ 2.6.26/linux/virtio_blk.h   2008-07-11 12:22:31.000000000 +0200
@@ -11,2 +11,4 @@
 #define VIRTIO_BLK_F_SEG_MAX   2       /* Indicates maximum # of segments */
+#define VIRTIO_BLK_F_GEOMETRY  4       /* Legacy geometry available  */
+#define VIRTIO_BLK_F_RO                5       /* Disk is read-only */
 
@@ -15,7 +17,13 @@
        /* The capacity (in 512-byte sectors). */
-       __le64 capacity;
+       __u64 capacity;
        /* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */
-       __le32 size_max;
+       __u32 size_max;
        /* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */
-       __le32 seg_max;
+       __u32 seg_max;
+       /* geometry the device (if VIRTIO_BLK_F_GEOMETRY) */
+       struct virtio_blk_geometry {
+               __u16 cylinders;
+               __u8 heads;
+               __u8 sectors;
+       } geometry;
 } __attribute__((packed));
@@ -43,2 +51,3 @@
 
+/* And this is the final byte of the write scatter-gather list. */
 #define VIRTIO_BLK_S_OK                0
@@ -46,8 +55,2 @@
 #define VIRTIO_BLK_S_UNSUPP    2
-
-/* This is the first element of the write scatter-gather list */
-struct virtio_blk_inhdr
-{
-       unsigned char status;
-};
 #endif /* _LINUX_VIRTIO_BLK_H */
diff -U 1 -Nwr 2.6.25/linux/virtio_config.h 2.6.26/linux/virtio_config.h
--- 2.6.25/linux/virtio_config.h        2008-07-11 12:23:47.000000000 +0200
+++ 2.6.26/linux/virtio_config.h        2008-07-11 12:22:31.000000000 +0200
@@ -17,2 +17,6 @@
 
+/* Do we get callbacks when the ring is completely used, even if we've
+ * suppressed them? */
+#define VIRTIO_F_NOTIFY_ON_EMPTY       24
+
 #endif /* _LINUX_VIRTIO_CONFIG_H */

linux/virtio_console.h

New file

diff -U 1 -Nwr 2.6.25/linux/virtio_net.h 2.6.26/linux/virtio_net.h
--- 2.6.25/linux/virtio_net.h   2008-07-11 12:23:47.000000000 +0200
+++ 2.6.26/linux/virtio_net.h   2008-07-11 12:22:31.000000000 +0200
@@ -8,5 +8,14 @@
 /* The feature bitmap for virtio net */
-#define VIRTIO_NET_F_CSUM      0       /* Can handle pkts w/ partial csum */
+#define VIRTIO_NET_F_CSUM      0       /* Host handles pkts w/ partial csum */
+#define VIRTIO_NET_F_GUEST_CSUM        1       /* Guest handles pkts w/ partial csum */
 #define VIRTIO_NET_F_MAC       5       /* Host has given MAC address. */
-#define VIRTIO_NET_F_GSO       6       /* Can handle pkts w/ any GSO type */
+#define VIRTIO_NET_F_GSO       6       /* Host handles pkts w/ any GSO type */
+#define VIRTIO_NET_F_GUEST_TSO4        7       /* Guest can handle TSOv4 in. */
+#define VIRTIO_NET_F_GUEST_TSO6        8       /* Guest can handle TSOv6 in. */
+#define VIRTIO_NET_F_GUEST_ECN 9       /* Guest can handle TSO[6] w/ ECN in. */
+#define VIRTIO_NET_F_GUEST_UFO 10      /* Guest can handle UFO in. */
+#define VIRTIO_NET_F_HOST_TSO4 11      /* Host can handle TSOv4 in. */
+#define VIRTIO_NET_F_HOST_TSO6 12      /* Host can handle TSOv6 in. */
+#define VIRTIO_NET_F_HOST_ECN  13      /* Host can handle TSO[6] w/ ECN in. */
+#define VIRTIO_NET_F_HOST_UFO  14      /* Host can handle UFO in. */
 
@@ -31,3 +40,3 @@
        __u16 hdr_len;          /* Ethernet + IP + tcp/udp hdrs */
-       __u16 gso_size;         /* Bytes to append to gso_hdr_len per frame */
+       __u16 gso_size;         /* Bytes to append to hdr_len per frame */
        __u16 csum_start;       /* Position to start checksumming from */

linux/virtio_pci.h, linux/virtio_ring.h

New file.

diff -U 1 -Nwr 2.6.25/linux/wireless.h 2.6.26/linux/wireless.h
--- 2.6.25/linux/wireless.h     2008-07-11 12:23:47.000000000 +0200
+++ 2.6.26/linux/wireless.h     2008-07-11 12:22:31.000000000 +0200
@@ -71,5 +71,5 @@
 
-/* This header is used in user-space, therefore need to be sanitised
- * for that purpose. Those includes are usually not compatible with glibc.
- * To know which includes to use in user-space, check iwlib.h. */
+#include <linux/types.h>               /* for __u* and __s* typedefs */
+#include <linux/socket.h>              /* for "struct sockaddr" et al  */
+#include <linux/if.h>                  /* for IFNAMSIZ and co... */
 
@@ -452,2 +452,3 @@
 #define IW_MODE_MONITOR        6       /* Passive monitor (listen only) */
+#define IW_MODE_MESH   7       /* Mesh (IEEE 802.11s) network */
 
diff -U 1 -Nwr 2.6.25/linux/xfrm.h 2.6.26/linux/xfrm.h
--- 2.6.25/linux/xfrm.h 2008-07-11 12:23:47.000000000 +0200
+++ 2.6.26/linux/xfrm.h 2008-07-11 12:22:31.000000000 +0200
@@ -100,4 +100,4 @@
        char    alg_name[64];
-       int     alg_key_len;    /* in bits */
-       int     alg_icv_len;    /* in bits */
+       unsigned int    alg_key_len;    /* in bits */
+       unsigned int    alg_icv_len;    /* in bits */
        char    alg_key[0];
@@ -115,3 +115,4 @@
        XFRM_POLICY_TYPE_SUB    = 1,
-       XFRM_POLICY_TYPE_MAX    = 2
+       XFRM_POLICY_TYPE_MAX    = 2,
+       XFRM_POLICY_TYPE_ANY    = 255
 };
@@ -340,2 +341,3 @@
 #define XFRM_STATE_ICMP                16
+#define XFRM_STATE_AF_UNSPEC   32
 };
diff -U 1 -Nwr 2.6.25/mtd/ubi-header.h 2.6.26/mtd/ubi-header.h
--- 2.6.25/mtd/ubi-header.h     2008-07-11 12:23:47.000000000 +0200
+++ 2.6.26/mtd/ubi-header.h     1970-01-01 01:00:00.000000000 +0100
@@ -1,372 +0,0 @@
-/*
- * Copyright (c) International Business Machines Corp., 2006
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
- * the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Authors: Artem Bityutskiy (Битюцкий Артём)
- *          Thomas Gleixner
- *          Frank Haverkamp
- *          Oliver Lohmann
- *          Andreas Arnez
- */
-
-/*
- * This file defines the layout of UBI headers and all the other UBI on-flash
- * data structures. May be included by user-space.
- */
-
-#ifndef __UBI_HEADER_H__
-#define __UBI_HEADER_H__
-
-#include <asm/byteorder.h>
-
-/* The version of UBI images supported by this implementation */
-#define UBI_VERSION 1
-
-/* The highest erase counter value supported by this implementation */
-#define UBI_MAX_ERASECOUNTER 0x7FFFFFFF
-
-/* The initial CRC32 value used when calculating CRC checksums */
-#define UBI_CRC32_INIT 0xFFFFFFFFU
-
-/* Erase counter header magic number (ASCII "UBI#") */
-#define UBI_EC_HDR_MAGIC  0x55424923
-/* Volume identifier header magic number (ASCII "UBI!") */
-#define UBI_VID_HDR_MAGIC 0x55424921
-
-/*
- * Volume type constants used in the volume identifier header.
- *
- * @UBI_VID_DYNAMIC: dynamic volume
- * @UBI_VID_STATIC: static volume
- */
-enum {
-       UBI_VID_DYNAMIC = 1,
-       UBI_VID_STATIC  = 2
-};
-
-/*
- * Volume flags used in the volume table record.
- *
- * @UBI_VTBL_AUTORESIZE_FLG: auto-resize this volume
- *
- * %UBI_VTBL_AUTORESIZE_FLG flag can be set only for one volume in the volume
- * table. UBI automatically re-sizes the volume which has this flag and makes
- * the volume to be of largest possible size. This means that if after the
- * initialization UBI finds out that there are available physical eraseblocks
- * present on the device, it automatically appends all of them to the volume
- * (the physical eraseblocks reserved for bad eraseblocks handling and other
- * reserved physical eraseblocks are not taken). So, if there is a volume with
- * the %UBI_VTBL_AUTORESIZE_FLG flag set, the amount of available logical
- * eraseblocks will be zero after UBI is loaded, because all of them will be
- * reserved for this volume. Note, the %UBI_VTBL_AUTORESIZE_FLG bit is cleared
- * after the volume had been initialized.
- *
- * The auto-resize feature is useful for device production purposes. For
- * example, different NAND flash chips may have different amount of initial bad
- * eraseblocks, depending of particular chip instance. Manufacturers of NAND
- * chips usually guarantee that the amount of initial bad eraseblocks does not
- * exceed certain percent, e.g. 2%. When one creates an UBI image which will be
- * flashed to the end devices in production, he does not know the exact amount
- * of good physical eraseblocks the NAND chip on the device will have, but this
- * number is required to calculate the volume sized and put them to the volume
- * table of the UBI image. In this case, one of the volumes (e.g., the one
- * which will store the root file system) is marked as "auto-resizable", and
- * UBI will adjust its size on the first boot if needed.
- *
- * Note, first UBI reserves some amount of physical eraseblocks for bad
- * eraseblock handling, and then re-sizes the volume, not vice-versa. This
- * means that the pool of reserved physical eraseblocks will always be present.
- */
-enum {
-       UBI_VTBL_AUTORESIZE_FLG = 0x01,
-};
-
-/*
- * Compatibility constants used by internal volumes.
- *
- * @UBI_COMPAT_DELETE: delete this internal volume before anything is written
- * to the flash
- * @UBI_COMPAT_RO: attach this device in read-only mode
- * @UBI_COMPAT_PRESERVE: preserve this internal volume - do not touch its
- * physical eraseblocks, don't allow the wear-leveling unit to move them
- * @UBI_COMPAT_REJECT: reject this UBI image
- */
-enum {
-       UBI_COMPAT_DELETE   = 1,
-       UBI_COMPAT_RO       = 2,
-       UBI_COMPAT_PRESERVE = 4,
-       UBI_COMPAT_REJECT   = 5
-};
-
-/* Sizes of UBI headers */
-#define UBI_EC_HDR_SIZE  sizeof(struct ubi_ec_hdr)
-#define UBI_VID_HDR_SIZE sizeof(struct ubi_vid_hdr)
-
-/* Sizes of UBI headers without the ending CRC */
-#define UBI_EC_HDR_SIZE_CRC  (UBI_EC_HDR_SIZE  - sizeof(__be32))
-#define UBI_VID_HDR_SIZE_CRC (UBI_VID_HDR_SIZE - sizeof(__be32))
-
-/**
- * struct ubi_ec_hdr - UBI erase counter header.
- * @magic: erase counter header magic number (%UBI_EC_HDR_MAGIC)
- * @version: version of UBI implementation which is supposed to accept this
- * UBI image
- * @padding1: reserved for future, zeroes
- * @ec: the erase counter
- * @vid_hdr_offset: where the VID header starts
- * @data_offset: where the user data start
- * @padding2: reserved for future, zeroes
- * @hdr_crc: erase counter header CRC checksum
- *
- * The erase counter header takes 64 bytes and has a plenty of unused space for
- * future usage. The unused fields are zeroed. The @version field is used to
- * indicate the version of UBI implementation which is supposed to be able to
- * work with this UBI image. If @version is greater then the current UBI
- * version, the image is rejected. This may be useful in future if something
- * is changed radically. This field is duplicated in the volume identifier
- * header.
- *
- * The @vid_hdr_offset and @data_offset fields contain the offset of the the
- * volume identifier header and user data, relative to the beginning of the
- * physical eraseblock. These values have to be the same for all physical
- * eraseblocks.
- */
-struct ubi_ec_hdr {
-       __be32  magic;
-       __u8    version;
-       __u8    padding1[3];
-       __be64  ec; /* Warning: the current limit is 31-bit anyway! */
-       __be32  vid_hdr_offset;
-       __be32  data_offset;
-       __u8    padding2[36];
-       __be32  hdr_crc;
-} __attribute__ ((packed));
-
-/**
- * struct ubi_vid_hdr - on-flash UBI volume identifier header.
- * @magic: volume identifier header magic number (%UBI_VID_HDR_MAGIC)
- * @version: UBI implementation version which is supposed to accept this UBI
- * image (%UBI_VERSION)
- * @vol_type: volume type (%UBI_VID_DYNAMIC or %UBI_VID_STATIC)
- * @copy_flag: if this logical eraseblock was copied from another physical
- * eraseblock (for wear-leveling reasons)
- * @compat: compatibility of this volume (%0, %UBI_COMPAT_DELETE,
- * %UBI_COMPAT_IGNORE, %UBI_COMPAT_PRESERVE, or %UBI_COMPAT_REJECT)
- * @vol_id: ID of this volume
- * @lnum: logical eraseblock number
- * @leb_ver: version of this logical eraseblock (IMPORTANT: obsolete, to be
- * removed, kept only for not breaking older UBI users)
- * @data_size: how many bytes of data this logical eraseblock contains
- * @used_ebs: total number of used logical eraseblocks in this volume
- * @data_pad: how many bytes at the end of this physical eraseblock are not
- * used
- * @data_crc: CRC checksum of the data stored in this logical eraseblock
- * @padding1: reserved for future, zeroes
- * @sqnum: sequence number
- * @padding2: reserved for future, zeroes
- * @hdr_crc: volume identifier header CRC checksum
- *
- * The @sqnum is the value of the global sequence counter at the time when this
- * VID header was created. The global sequence counter is incremented each time
- * UBI writes a new VID header to the flash, i.e. when it maps a logical
- * eraseblock to a new physical eraseblock. The global sequence counter is an
- * unsigned 64-bit integer and we assume it never overflows. The @sqnum
- * (sequence number) is used to distinguish between older and newer versions of
- * logical eraseblocks.
- *
- * There are 2 situations when there may be more then one physical eraseblock
- * corresponding to the same logical eraseblock, i.e., having the same @vol_id
- * and @lnum values in the volume identifier header. Suppose we have a logical
- * eraseblock L and it is mapped to the physical eraseblock P.
- *
- * 1. Because UBI may erase physical eraseblocks asynchronously, the following
- * situation is possible: L is asynchronously erased, so P is scheduled for
- * erasure, then L is written to,i.e. mapped to another physical eraseblock P1,
- * so P1 is written to, then an unclean reboot happens. Result - there are 2
- * physical eraseblocks P and P1 corresponding to the same logical eraseblock
- * L. But P1 has greater sequence number, so UBI picks P1 when it attaches the
- * flash.
- *
- * 2. From time to time UBI moves logical eraseblocks to other physical
- * eraseblocks for wear-leveling reasons. If, for example, UBI moves L from P
- * to P1, and an unclean reboot happens before P is physically erased, there
- * are two physical eraseblocks P and P1 corresponding to L and UBI has to
- * select one of them when the flash is attached. The @sqnum field says which
- * PEB is the original (obviously P will have lower @sqnum) and the copy. But
- * it is not enough to select the physical eraseblock with the higher sequence
- * number, because the unclean reboot could have happen in the middle of the
- * copying process, so the data in P is corrupted. It is also not enough to
- * just select the physical eraseblock with lower sequence number, because the
- * data there may be old (consider a case if more data was added to P1 after
- * the copying). Moreover, the unclean reboot may happen when the erasure of P
- * was just started, so it result in unstable P, which is "mostly" OK, but
- * still has unstable bits.
- *
- * UBI uses the @copy_flag field to indicate that this logical eraseblock is a
- * copy. UBI also calculates data CRC when the data is moved and stores it at
- * the @data_crc field of the copy (P1). So when UBI needs to pick one physical
- * eraseblock of two (P or P1), the @copy_flag of the newer one (P1) is
- * examined. If it is cleared, the situation* is simple and the newer one is
- * picked. If it is set, the data CRC of the copy (P1) is examined. If the CRC
- * checksum is correct, this physical eraseblock is selected (P1). Otherwise
- * the older one (P) is selected.
- *
- * Note, there is an obsolete @leb_ver field which was used instead of @sqnum
- * in the past. But it is not used anymore and we keep it in order to be able
- * to deal with old UBI images. It will be removed at some point.
- *
- * There are 2 sorts of volumes in UBI: user volumes and internal volumes.
- * Internal volumes are not seen from outside and are used for various internal
- * UBI purposes. In this implementation there is only one internal volume - the
- * layout volume. Internal volumes are the main mechanism of UBI extensions.
- * For example, in future one may introduce a journal internal volume. Internal
- * volumes have their own reserved range of IDs.
- *
- * The @compat field is only used for internal volumes and contains the "degree
- * of their compatibility". It is always zero for user volumes. This field
- * provides a mechanism to introduce UBI extensions and to be still compatible
- * with older UBI binaries. For example, if someone introduced a journal in
- * future, he would probably use %UBI_COMPAT_DELETE compatibility for the
- * journal volume.  And in this case, older UBI binaries, which know nothing
- * about the journal volume, would just delete this volume and work perfectly
- * fine. This is similar to what Ext2fs does when it is fed by an Ext3fs image
- * - it just ignores the Ext3fs journal.
- *
- * The @data_crc field contains the CRC checksum of the contents of the logical
- * eraseblock if this is a static volume. In case of dynamic volumes, it does
- * not contain the CRC checksum as a rule. The only exception is when the
- * data of the physical eraseblock was moved by the wear-leveling unit, then
- * the wear-leveling unit calculates the data CRC and stores it in the
- * @data_crc field. And of course, the @copy_flag is %in this case.
- *
- * The @data_size field is used only for static volumes because UBI has to know
- * how many bytes of data are stored in this eraseblock. For dynamic volumes,
- * this field usually contains zero. The only exception is when the data of the
- * physical eraseblock was moved to another physical eraseblock for
- * wear-leveling reasons. In this case, UBI calculates CRC checksum of the
- * contents and uses both @data_crc and @data_size fields. In this case, the
- * @data_size field contains data size.
- *
- * The @used_ebs field is used only for static volumes and indicates how many
- * eraseblocks the data of the volume takes. For dynamic volumes this field is
- * not used and always contains zero.
- *
- * The @data_pad is calculated when volumes are created using the alignment
- * parameter. So, effectively, the @data_pad field reduces the size of logical
- * eraseblocks of this volume. This is very handy when one uses block-oriented
- * software (say, cramfs) on top of the UBI volume.
- */
-struct ubi_vid_hdr {
-       __be32  magic;
-       __u8    version;
-       __u8    vol_type;
-       __u8    copy_flag;
-       __u8    compat;
-       __be32  vol_id;
-       __be32  lnum;
-       __be32  leb_ver; /* obsolete, to be removed, don't use */
-       __be32  data_size;
-       __be32  used_ebs;
-       __be32  data_pad;
-       __be32  data_crc;
-       __u8    padding1[4];
-       __be64  sqnum;
-       __u8    padding2[12];
-       __be32  hdr_crc;
-} __attribute__ ((packed));
-
-/* Internal UBI volumes count */
-#define UBI_INT_VOL_COUNT 1
-
-/*
- * Starting ID of internal volumes. There is reserved room for 4096 internal
- * volumes.
- */
-#define UBI_INTERNAL_VOL_START (0x7FFFFFFF - 4096)
-
-/* The layout volume contains the volume table */
-
-#define UBI_LAYOUT_VOLUME_ID     UBI_INTERNAL_VOL_START
-#define UBI_LAYOUT_VOLUME_TYPE   UBI_VID_DYNAMIC
-#define UBI_LAYOUT_VOLUME_ALIGN  1
-#define UBI_LAYOUT_VOLUME_EBS    2
-#define UBI_LAYOUT_VOLUME_NAME   "layout volume"
-#define UBI_LAYOUT_VOLUME_COMPAT UBI_COMPAT_REJECT
-
-/* The maximum number of volumes per one UBI device */
-#define UBI_MAX_VOLUMES 128
-
-/* The maximum volume name length */
-#define UBI_VOL_NAME_MAX 127
-
-/* Size of the volume table record */
-#define UBI_VTBL_RECORD_SIZE sizeof(struct ubi_vtbl_record)
-
-/* Size of the volume table record without the ending CRC */
-#define UBI_VTBL_RECORD_SIZE_CRC (UBI_VTBL_RECORD_SIZE - sizeof(__be32))
-
-/**
- * struct ubi_vtbl_record - a record in the volume table.
- * @reserved_pebs: how many physical eraseblocks are reserved for this volume
- * @alignment: volume alignment
- * @data_pad: how many bytes are unused at the end of the each physical
- * eraseblock to satisfy the requested alignment
- * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME)
- * @upd_marker: if volume update was started but not finished
- * @name_len: volume name length
- * @name: the volume name
- * @flags: volume flags (%UBI_VTBL_AUTORESIZE_FLG)
- * @padding: reserved, zeroes
- * @crc: a CRC32 checksum of the record
- *
- * The volume table records are stored in the volume table, which is stored in
- * the layout volume. The layout volume consists of 2 logical eraseblock, each
- * of which contains a copy of the volume table (i.e., the volume table is
- * duplicated). The volume table is an array of &struct ubi_vtbl_record
- * objects indexed by the volume ID.
- *
- * If the size of the logical eraseblock is large enough to fit
- * %UBI_MAX_VOLUMES records, the volume table contains %UBI_MAX_VOLUMES
- * records. Otherwise, it contains as many records as it can fit (i.e., size of
- * logical eraseblock divided by sizeof(struct ubi_vtbl_record)).
- *
- * The @upd_marker flag is used to implement volume update. It is set to %1
- * before update and set to %0 after the update. So if the update operation was
- * interrupted, UBI knows that the volume is corrupted.
- *
- * The @alignment field is specified when the volume is created and cannot be
- * later changed. It may be useful, for example, when a block-oriented file
- * system works on top of UBI. The @data_pad field is calculated using the
- * logical eraseblock size and @alignment. The alignment must be multiple to the
- * minimal flash I/O unit. If @alignment is 1, all the available space of
- * the physical eraseblocks is used.
- *
- * Empty records contain all zeroes and the CRC checksum of those zeroes.
- */
-struct ubi_vtbl_record {
-       __be32  reserved_pebs;
-       __be32  alignment;
-       __be32  data_pad;
-       __u8    vol_type;
-       __u8    upd_marker;
-       __be16  name_len;
-       __u8    name[UBI_VOL_NAME_MAX+1];
-       __u8    flags;
-       __u8    padding[23];
-       __be32  crc;
-} __attribute__ ((packed));
-
-#endif /* !__UBI_HEADER_H__ */