Bump tag level
[linux-2.6.git] / linux-2.6-720-click.patch
1 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/drivers/input/serio/i8042-ppcio.h linux-2.6.27-720/drivers/input/serio/i8042-ppcio.h
2 --- linux-2.6.27-710/drivers/input/serio/i8042-ppcio.h  2008-10-09 18:13:53.000000000 -0400
3 +++ linux-2.6.27-720/drivers/input/serio/i8042-ppcio.h  2009-05-04 16:03:46.000000000 -0400
4 @@ -77,7 +77,7 @@
5         asm volatile("lis     7,0xff88        \n\
6                       lswi    6,7,0x8         \n\
7                       mr      %0,6"
8 -                     : "=r" (kbd_data) :: "6", "7");
9 +                     : "=r" (kbd_data) : : "6", "7");
10  
11         __raw_writel(0x00000000, 0xff50000c);
12         eieio();
13 @@ -99,7 +99,7 @@
14                       ori     7,7,0x8         \n\
15                       lswi    6,7,0x8         \n\
16                       mr      %0,6"
17 -                     : "=r" (kbd_status) :: "6", "7");
18 +                     : "=r" (kbd_status) : : "6", "7");
19  
20         __raw_writel(0x00000000, 0xff50000c);
21         eieio();
22 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/drivers/net/wireless/rayctl.h linux-2.6.27-720/drivers/net/wireless/rayctl.h
23 --- linux-2.6.27-710/drivers/net/wireless/rayctl.h      2008-10-09 18:13:53.000000000 -0400
24 +++ linux-2.6.27-720/drivers/net/wireless/rayctl.h      2009-05-04 16:03:46.000000000 -0400
25 @@ -418,9 +418,7 @@
26  };
27  
28  /****** Host-to-ECF Data Area at Shared RAM offset 0x200 *********************/
29 -struct host_to_ecf_area {
30 -    
31 -};
32 +EMPTY_STRUCT_DECL(host_to_ecf_area);
33  
34  /****** ECF-to-Host Data Area at Shared RAM offset 0x0300 ********************/
35  struct startup_res_518 {
36 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/drivers/video/i810/i810_main.h linux-2.6.27-720/drivers/video/i810/i810_main.h
37 --- linux-2.6.27-710/drivers/video/i810/i810_main.h     2008-10-09 18:13:53.000000000 -0400
38 +++ linux-2.6.27-720/drivers/video/i810/i810_main.h     2009-05-04 16:03:46.000000000 -0400
39 @@ -54,7 +54,7 @@
40  #ifdef CONFIG_X86
41  static inline void flush_cache(void)
42  {
43 -       asm volatile ("wbinvd":::"memory");
44 +       asm volatile ("wbinvd": : :"memory");
45  }
46  #else
47  #define flush_cache() do { } while(0)
48 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/fs/file_table.c linux-2.6.27-720/fs/file_table.c
49 --- linux-2.6.27-710/fs/file_table.c    2009-05-04 12:36:00.000000000 -0400
50 +++ linux-2.6.27-720/fs/file_table.c    2009-05-04 16:03:46.000000000 -0400
51 @@ -34,6 +34,8 @@
52  /* public. Not pretty! */
53  __cacheline_aligned_in_smp DEFINE_SPINLOCK(files_lock);
54  
55 +EXPORT_SYMBOL(files_lock);
56 +
57  static struct percpu_counter nr_files __cacheline_aligned_in_smp;
58  
59  static inline void file_free_rcu(struct rcu_head *head)
60 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/fs/super.c linux-2.6.27-720/fs/super.c
61 --- linux-2.6.27-710/fs/super.c 2009-05-04 12:36:00.000000000 -0400
62 +++ linux-2.6.27-720/fs/super.c 2009-05-04 16:03:46.000000000 -0400
63 @@ -48,6 +48,8 @@
64  LIST_HEAD(super_blocks);
65  DEFINE_SPINLOCK(sb_lock);
66  
67 +EXPORT_SYMBOL(sb_lock);
68 +
69  /**
70   *     alloc_super     -       create new superblock
71   *     @type:  filesystem type superblock should belong to
72 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-cris/arch-v10/io.h linux-2.6.27-720/include/asm-cris/arch-v10/io.h
73 --- linux-2.6.27-710/include/asm-cris/arch-v10/io.h     2008-10-09 18:13:53.000000000 -0400
74 +++ linux-2.6.27-720/include/asm-cris/arch-v10/io.h     2009-05-04 16:03:46.000000000 -0400
75 @@ -190,8 +190,8 @@
76   ({ int _Foofoo; __asm__ volatile ("bmod [%0],%0" : "=r" (_Foofoo) : "0" \
77                                (255)); _Foofoo; })
78  
79 -#define TRACE_OFF() do { __asm__ volatile ("bmod [%0],%0" :: "r" (254)); } while (0)
80 -#define SIM_END() do { __asm__ volatile ("bmod [%0],%0" :: "r" (28)); } while (0)
81 +#define TRACE_OFF() do { __asm__ volatile ("bmod [%0],%0" : : "r" (254)); } while (0)
82 +#define SIM_END() do { __asm__ volatile ("bmod [%0],%0" : : "r" (28)); } while (0)
83  #define CRIS_CYCLES() __extension__ \
84   ({ unsigned long c; asm ("bmod [%1],%0" : "=r" (c) : "r" (27)); c;})
85  #endif /* ! defined CONFIG_SVINTO_SIM */
86 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-cris/module.h linux-2.6.27-720/include/asm-cris/module.h
87 --- linux-2.6.27-710/include/asm-cris/module.h  2008-10-09 18:13:53.000000000 -0400
88 +++ linux-2.6.27-720/include/asm-cris/module.h  2009-05-04 16:03:46.000000000 -0400
89 @@ -1,7 +1,7 @@
90  #ifndef _ASM_CRIS_MODULE_H
91  #define _ASM_CRIS_MODULE_H
92  /* cris is simple */
93 -struct mod_arch_specific { };
94 +EMPTY_STRUCT_DECL(mod_arch_specific);
95  
96  #define Elf_Shdr Elf32_Shdr
97  #define Elf_Sym Elf32_Sym
98 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-frv/bug.h linux-2.6.27-720/include/asm-frv/bug.h
99 --- linux-2.6.27-710/include/asm-frv/bug.h      2008-10-09 18:13:53.000000000 -0400
100 +++ linux-2.6.27-720/include/asm-frv/bug.h      2009-05-04 16:03:46.000000000 -0400
101 @@ -17,7 +17,7 @@
102  /*
103   * Tell the user there is some problem.
104   */
105 -extern asmlinkage void __debug_bug_trap(int signr);
106 +asmlinkage void __debug_bug_trap(int signr);
107  
108  #ifdef CONFIG_NO_KERNEL_MSG
109  #define        _debug_bug_printk()
110 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-frv/fpu.h linux-2.6.27-720/include/asm-frv/fpu.h
111 --- linux-2.6.27-710/include/asm-frv/fpu.h      2008-10-09 18:13:53.000000000 -0400
112 +++ linux-2.6.27-720/include/asm-frv/fpu.h      2009-05-04 16:03:46.000000000 -0400
113 @@ -6,6 +6,6 @@
114   * MAX floating point unit state size (FSAVE/FRESTORE)
115   */
116  
117 -#define kernel_fpu_end() do { asm volatile("bar":::"memory"); preempt_enable(); } while(0)
118 +#define kernel_fpu_end() do { asm volatile("bar": : :"memory"); preempt_enable(); } while(0)
119  
120  #endif /* __ASM_FPU_H */
121 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-frv/gdb-stub.h linux-2.6.27-720/include/asm-frv/gdb-stub.h
122 --- linux-2.6.27-710/include/asm-frv/gdb-stub.h 2008-10-09 18:13:53.000000000 -0400
123 +++ linux-2.6.27-720/include/asm-frv/gdb-stub.h 2009-05-04 16:03:46.000000000 -0400
124 @@ -87,14 +87,14 @@
125  extern void gdbstub_tx_flush(void);
126  extern void gdbstub_do_rx(void);
127  
128 -extern asmlinkage void __debug_stub_init_break(void);
129 -extern asmlinkage void __break_hijack_kernel_event(void);
130 -extern asmlinkage void __break_hijack_kernel_event_breaks_here(void);
131 -extern asmlinkage void start_kernel(void);
132 -
133 -extern asmlinkage void gdbstub_rx_handler(void);
134 -extern asmlinkage void gdbstub_rx_irq(void);
135 -extern asmlinkage void gdbstub_intercept(void);
136 +asmlinkage void __debug_stub_init_break(void);
137 +asmlinkage void __break_hijack_kernel_event(void);
138 +asmlinkage void __break_hijack_kernel_event_breaks_here(void);
139 +asmlinkage void start_kernel(void);
140 +
141 +asmlinkage void gdbstub_rx_handler(void);
142 +asmlinkage void gdbstub_rx_irq(void);
143 +asmlinkage void gdbstub_intercept(void);
144  
145  extern uint32_t __entry_usertrap_table[];
146  extern uint32_t __entry_kerneltrap_table[];
147 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-frv/highmem.h linux-2.6.27-720/include/asm-frv/highmem.h
148 --- linux-2.6.27-710/include/asm-frv/highmem.h  2008-10-09 18:13:53.000000000 -0400
149 +++ linux-2.6.27-720/include/asm-frv/highmem.h  2009-05-04 16:03:46.000000000 -0400
150 @@ -82,11 +82,11 @@
151         dampr = paddr | xAMPRx_L | xAMPRx_M | xAMPRx_S | xAMPRx_SS_16Kb | xAMPRx_V;             \
152                                                                                                 \
153         if (type != __KM_CACHE)                                                                 \
154 -               asm volatile("movgs %0,dampr"#ampr :: "r"(dampr) : "memory");                   \
155 +               asm volatile("movgs %0,dampr"#ampr : : "r"(dampr) : "memory");                  \
156         else                                                                                    \
157                 asm volatile("movgs %0,iampr"#ampr"\n"                                          \
158                              "movgs %0,dampr"#ampr"\n"                                          \
159 -                            :: "r"(dampr) : "memory"                                           \
160 +                            : : "r"(dampr) : "memory"                                          \
161                              );                                                                 \
162                                                                                                 \
163         asm("movsg damlr"#ampr",%0" : "=r"(damlr));                                             \
164 @@ -140,9 +140,9 @@
165  
166  #define __kunmap_atomic_primary(type, ampr)                            \
167  do {                                                                   \
168 -       asm volatile("movgs gr0,dampr"#ampr"\n" ::: "memory");          \
169 +       asm volatile("movgs gr0,dampr"#ampr"\n" : : : "memory");        \
170         if (type == __KM_CACHE)                                         \
171 -               asm volatile("movgs gr0,iampr"#ampr"\n" ::: "memory");  \
172 +               asm volatile("movgs gr0,iampr"#ampr"\n" : : : "memory");\
173  } while(0)
174  
175  #define __kunmap_atomic_secondary(slot, vaddr)                         \
176 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-frv/module.h linux-2.6.27-720/include/asm-frv/module.h
177 --- linux-2.6.27-710/include/asm-frv/module.h   2008-10-09 18:13:53.000000000 -0400
178 +++ linux-2.6.27-720/include/asm-frv/module.h   2009-05-04 16:03:46.000000000 -0400
179 @@ -11,9 +11,7 @@
180  #ifndef _ASM_MODULE_H
181  #define _ASM_MODULE_H
182  
183 -struct mod_arch_specific
184 -{
185 -};
186 +EMPTY_STRUCT_DECL(mod_arch_specific);
187  
188  #define Elf_Shdr       Elf32_Shdr
189  #define Elf_Sym                Elf32_Sym
190 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-frv/pgtable.h linux-2.6.27-720/include/asm-frv/pgtable.h
191 --- linux-2.6.27-710/include/asm-frv/pgtable.h  2008-10-09 18:13:53.000000000 -0400
192 +++ linux-2.6.27-720/include/asm-frv/pgtable.h  2009-05-04 16:03:46.000000000 -0400
193 @@ -176,7 +176,7 @@
194  #define set_pte(pteptr, pteval)                                \
195  do {                                                   \
196         *(pteptr) = (pteval);                           \
197 -       asm volatile("dcf %M0" :: "U"(*pteptr));        \
198 +       asm volatile("dcf %M0" : : "U"(*pteptr));       \
199  } while(0)
200  #define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
201  
202 @@ -210,7 +210,7 @@
203  #define set_pgd(pgdptr, pgdval)                                \
204  do {                                                   \
205         memcpy((pgdptr), &(pgdval), sizeof(pgd_t));     \
206 -       asm volatile("dcf %M0" :: "U"(*(pgdptr)));      \
207 +       asm volatile("dcf %M0" : : "U"(*(pgdptr)));     \
208  } while(0)
209  
210  static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
211 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-frv/processor.h linux-2.6.27-720/include/asm-frv/processor.h
212 --- linux-2.6.27-710/include/asm-frv/processor.h        2008-10-09 18:13:53.000000000 -0400
213 +++ linux-2.6.27-720/include/asm-frv/processor.h        2009-05-04 16:03:46.000000000 -0400
214 @@ -111,9 +111,9 @@
215  {
216  }
217  
218 -extern asmlinkage int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
219 -extern asmlinkage void save_user_regs(struct user_context *target);
220 -extern asmlinkage void *restore_user_regs(const struct user_context *target, ...);
221 +asmlinkage int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
222 +asmlinkage void save_user_regs(struct user_context *target);
223 +asmlinkage void *restore_user_regs(const struct user_context *target, ...);
224  
225  #define copy_segments(tsk, mm)         do { } while (0)
226  #define release_segments(mm)           do { } while (0)
227 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-frv/spr-regs.h linux-2.6.27-720/include/asm-frv/spr-regs.h
228 --- linux-2.6.27-710/include/asm-frv/spr-regs.h 2008-10-09 18:13:53.000000000 -0400
229 +++ linux-2.6.27-720/include/asm-frv/spr-regs.h 2009-05-04 16:03:46.000000000 -0400
230 @@ -343,7 +343,7 @@
231  
232  #define restore_dampr(R, _dampr)                       \
233  do {                                                   \
234 -       asm volatile("movgs %0,dampr"R :: "r"(_dampr)); \
235 +       asm volatile("movgs %0,dampr"R : : "r"(_dampr));        \
236  } while(0)
237  
238  /*
239 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-frv/system.h linux-2.6.27-720/include/asm-frv/system.h
240 --- linux-2.6.27-710/include/asm-frv/system.h   2008-10-09 18:13:53.000000000 -0400
241 +++ linux-2.6.27-720/include/asm-frv/system.h   2009-05-04 16:03:46.000000000 -0400
242 @@ -23,7 +23,7 @@
243   * `prev' will never be the same as `next'.
244   * The `mb' is to tell GCC not to cache `current' across this call.
245   */
246 -extern asmlinkage
247 +asmlinkage
248  struct task_struct *__switch_to(struct thread_struct *prev_thread,
249                                 struct thread_struct *next_thread,
250                                 struct task_struct *prev);
251 @@ -175,7 +175,7 @@
252  /*
253   * Force strict CPU ordering.
254   */
255 -#define nop()                  asm volatile ("nop"::)
256 +#define nop()                  asm volatile ("nop": :)
257  #define mb()                   asm volatile ("membar" : : :"memory")
258  #define rmb()                  asm volatile ("membar" : : :"memory")
259  #define wmb()                  asm volatile ("membar" : : :"memory")
260 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-generic/bitops/hweight.h linux-2.6.27-720/include/asm-generic/bitops/hweight.h
261 --- linux-2.6.27-710/include/asm-generic/bitops/hweight.h       2008-10-09 18:13:53.000000000 -0400
262 +++ linux-2.6.27-720/include/asm-generic/bitops/hweight.h       2009-05-04 16:03:46.000000000 -0400
263 @@ -3,6 +3,12 @@
264  
265  #include <asm/types.h>
266  
267 +#ifdef __cplusplus
268 +#ifndef CXX_PROTECTED
269 +#error Unprotected code region
270 +#endif
271 +#endif
272 +
273  extern unsigned int hweight32(unsigned int w);
274  extern unsigned int hweight16(unsigned int w);
275  extern unsigned int hweight8(unsigned int w);
276 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-m32r/module.h linux-2.6.27-720/include/asm-m32r/module.h
277 --- linux-2.6.27-710/include/asm-m32r/module.h  2008-10-09 18:13:53.000000000 -0400
278 +++ linux-2.6.27-720/include/asm-m32r/module.h  2009-05-04 16:03:46.000000000 -0400
279 @@ -1,7 +1,7 @@
280  #ifndef _ASM_M32R_MODULE_H
281  #define _ASM_M32R_MODULE_H
282  
283 -struct mod_arch_specific { };
284 +EMPTY_STRUCT_DECL(mod_arch_specific);
285  
286  #define Elf_Shdr       Elf32_Shdr
287  #define Elf_Sym                Elf32_Sym
288 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-m68k/system.h linux-2.6.27-720/include/asm-m68k/system.h
289 --- linux-2.6.27-710/include/asm-m68k/system.h  2008-10-09 18:13:53.000000000 -0400
290 +++ linux-2.6.27-720/include/asm-m68k/system.h  2009-05-04 16:03:46.000000000 -0400
291 @@ -167,23 +167,23 @@
292  #define __HAVE_ARCH_CMPXCHG    1
293  
294  static inline unsigned long __cmpxchg(volatile void *p, unsigned long old,
295 -                                     unsigned long new, int size)
296 +                                     unsigned long n, int size)
297  {
298         switch (size) {
299         case 1:
300                 __asm__ __volatile__ ("casb %0,%2,%1"
301                                       : "=d" (old), "=m" (*(char *)p)
302 -                                     : "d" (new), "0" (old), "m" (*(char *)p));
303 +                                     : "d" (n), "0" (old), "m" (*(char *)p));
304                 break;
305         case 2:
306                 __asm__ __volatile__ ("casw %0,%2,%1"
307                                       : "=d" (old), "=m" (*(short *)p)
308 -                                     : "d" (new), "0" (old), "m" (*(short *)p));
309 +                                     : "d" (n), "0" (old), "m" (*(short *)p));
310                 break;
311         case 4:
312                 __asm__ __volatile__ ("casl %0,%2,%1"
313                                       : "=d" (old), "=m" (*(int *)p)
314 -                                     : "d" (new), "0" (old), "m" (*(int *)p));
315 +                                     : "d" (n), "0" (old), "m" (*(int *)p));
316                 break;
317         }
318         return old;
319 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/fpu.h linux-2.6.27-720/include/asm-mips/fpu.h
320 --- linux-2.6.27-710/include/asm-mips/fpu.h     2008-10-09 18:13:53.000000000 -0400
321 +++ linux-2.6.27-720/include/asm-mips/fpu.h     2009-05-04 16:03:46.000000000 -0400
322 @@ -28,11 +28,11 @@
323  struct sigcontext;
324  struct sigcontext32;
325  
326 -extern asmlinkage int (*save_fp_context)(struct sigcontext __user *sc);
327 -extern asmlinkage int (*restore_fp_context)(struct sigcontext __user *sc);
328 +asmlinkage int (*save_fp_context)(struct sigcontext __user *sc);
329 +asmlinkage int (*restore_fp_context)(struct sigcontext __user *sc);
330  
331 -extern asmlinkage int (*save_fp_context32)(struct sigcontext32 __user *sc);
332 -extern asmlinkage int (*restore_fp_context32)(struct sigcontext32 __user *sc);
333 +asmlinkage int (*save_fp_context32)(struct sigcontext32 __user *sc);
334 +asmlinkage int (*restore_fp_context32)(struct sigcontext32 __user *sc);
335  
336  extern void fpu_emulator_init_fpu(void);
337  extern int fpu_emulator_save_context(struct sigcontext __user *sc);
338 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/io.h linux-2.6.27-720/include/asm-mips/io.h
339 --- linux-2.6.27-710/include/asm-mips/io.h      2008-10-09 18:13:53.000000000 -0400
340 +++ linux-2.6.27-720/include/asm-mips/io.h      2009-05-04 16:03:46.000000000 -0400
341 @@ -303,7 +303,7 @@
342         volatile type *__mem;                                           \
343         type __val;                                                     \
344                                                                         \
345 -       __mem = (void *)__swizzle_addr_##bwlq((unsigned long)(mem));    \
346 +       __mem = (type *)__swizzle_addr_##bwlq((unsigned long)(mem));    \
347                                                                         \
348         __val = pfx##ioswab##bwlq(__mem, val);                          \
349                                                                         \
350 @@ -336,7 +336,7 @@
351         volatile type *__mem;                                           \
352         type __val;                                                     \
353                                                                         \
354 -       __mem = (void *)__swizzle_addr_##bwlq((unsigned long)(mem));    \
355 +       __mem = (type *)__swizzle_addr_##bwlq((unsigned long)(mem));    \
356                                                                         \
357         if (sizeof(type) != sizeof(u64) || sizeof(u64) == sizeof(long)) \
358                 __val = *__mem;                                         \
359 @@ -370,7 +370,7 @@
360         volatile type *__addr;                                          \
361         type __val;                                                     \
362                                                                         \
363 -       __addr = (void *)__swizzle_addr_##bwlq(mips_io_port_base + port); \
364 +       __addr = (type *)__swizzle_addr_##bwlq(mips_io_port_base + port); \
365                                                                         \
366         __val = pfx##ioswab##bwlq(__addr, val);                         \
367                                                                         \
368 @@ -386,7 +386,7 @@
369         volatile type *__addr;                                          \
370         type __val;                                                     \
371                                                                         \
372 -       __addr = (void *)__swizzle_addr_##bwlq(mips_io_port_base + port); \
373 +       __addr = (type *)__swizzle_addr_##bwlq(mips_io_port_base + port); \
374                                                                         \
375         BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long));             \
376                                                                         \
377 @@ -448,7 +448,7 @@
378  static inline void writes##bwlq(volatile void __iomem *mem,            \
379                                 const void *addr, unsigned int count)   \
380  {                                                                      \
381 -       const volatile type *__addr = addr;                             \
382 +       const volatile type *__addr = (const type *) addr;              \
383                                                                         \
384         while (count--) {                                               \
385                 __mem_write##bwlq(*__addr, mem);                        \
386 @@ -459,7 +459,7 @@
387  static inline void reads##bwlq(volatile void __iomem *mem, void *addr, \
388                                unsigned int count)                      \
389  {                                                                      \
390 -       volatile type *__addr = addr;                                   \
391 +       volatile type *__addr = (type *) addr;                          \
392                                                                         \
393         while (count--) {                                               \
394                 *__addr = __mem_read##bwlq(mem);                        \
395 @@ -472,7 +472,7 @@
396  static inline void outs##bwlq(unsigned long port, const void *addr,    \
397                               unsigned int count)                       \
398  {                                                                      \
399 -       const volatile type *__addr = addr;                             \
400 +       const volatile type *__addr = (const type *) addr;              \
401                                                                         \
402         while (count--) {                                               \
403                 __mem_out##bwlq(*__addr, port);                         \
404 @@ -483,7 +483,7 @@
405  static inline void ins##bwlq(unsigned long port, void *addr,           \
406                              unsigned int count)                        \
407  {                                                                      \
408 -       volatile type *__addr = addr;                                   \
409 +       volatile type *__addr = (type *) addr;                          \
410                                                                         \
411         while (count--) {                                               \
412                 *__addr = __mem_in##bwlq(port);                         \
413 @@ -505,7 +505,7 @@
414  
415  
416  /* Depends on MIPS II instruction set */
417 -#define mmiowb() asm volatile ("sync" ::: "memory")
418 +#define mmiowb() asm volatile ("sync" : : : "memory")
419  
420  static inline void memset_io(volatile void __iomem *addr, unsigned char val, int count)
421  {
422 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/ip32/mace.h linux-2.6.27-720/include/asm-mips/ip32/mace.h
423 --- linux-2.6.27-710/include/asm-mips/ip32/mace.h       2008-10-09 18:13:53.000000000 -0400
424 +++ linux-2.6.27-720/include/asm-mips/ip32/mace.h       2009-05-04 16:03:46.000000000 -0400
425 @@ -308,11 +308,9 @@
426   */
427  
428  /* Parallel port */
429 -struct mace_parallel {
430 -};
431 +EMPTY_STRUCT_DECL(mace_parallel);
432  
433 -struct mace_ecp1284 {  /* later... */
434 -};
435 +EMPTY_STRUCT_DECL(mace_ecp1284);       /* later... */
436  
437  /* Serial port */
438  struct mace_serial {
439 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/mips-boards/sim.h linux-2.6.27-720/include/asm-mips/mips-boards/sim.h
440 --- linux-2.6.27-710/include/asm-mips/mips-boards/sim.h 2008-10-09 18:13:53.000000000 -0400
441 +++ linux-2.6.27-720/include/asm-mips/mips-boards/sim.h 2009-05-04 16:03:46.000000000 -0400
442 @@ -31,7 +31,7 @@
443  ({                                        \
444         __asm__  __volatile__( \
445          "sltiu $0,$0, %0" \
446 -               ::"i"(code)                                     \
447 +               : :"i"(code)                                    \
448                 ); \
449  })
450  
451 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/mipsregs.h linux-2.6.27-720/include/asm-mips/mipsregs.h
452 --- linux-2.6.27-710/include/asm-mips/mipsregs.h        2008-10-09 18:13:53.000000000 -0400
453 +++ linux-2.6.27-720/include/asm-mips/mipsregs.h        2009-05-04 16:03:46.000000000 -0400
454 @@ -1052,15 +1052,15 @@
455  #define mfhi2() ({ long mfhi2; __asm__("mfhi %0, $ac2" : "=r" (mfhi2)); mfhi2;})
456  #define mfhi3() ({ long mfhi3; __asm__("mfhi %0, $ac3" : "=r" (mfhi3)); mfhi3;})
457  
458 -#define mtlo0(x) __asm__("mtlo %0, $ac0" ::"r" (x))
459 -#define mtlo1(x) __asm__("mtlo %0, $ac1" ::"r" (x))
460 -#define mtlo2(x) __asm__("mtlo %0, $ac2" ::"r" (x))
461 -#define mtlo3(x) __asm__("mtlo %0, $ac3" ::"r" (x))
462 -
463 -#define mthi0(x) __asm__("mthi %0, $ac0" ::"r" (x))
464 -#define mthi1(x) __asm__("mthi %0, $ac1" ::"r" (x))
465 -#define mthi2(x) __asm__("mthi %0, $ac2" ::"r" (x))
466 -#define mthi3(x) __asm__("mthi %0, $ac3" ::"r" (x))
467 +#define mtlo0(x) __asm__("mtlo %0, $ac0" : :"r" (x))
468 +#define mtlo1(x) __asm__("mtlo %0, $ac1" : :"r" (x))
469 +#define mtlo2(x) __asm__("mtlo %0, $ac2" : :"r" (x))
470 +#define mtlo3(x) __asm__("mtlo %0, $ac3" : :"r" (x))
471 +
472 +#define mthi0(x) __asm__("mthi %0, $ac0" : :"r" (x))
473 +#define mthi1(x) __asm__("mthi %0, $ac1" : :"r" (x))
474 +#define mthi2(x) __asm__("mthi %0, $ac2" : :"r" (x))
475 +#define mthi3(x) __asm__("mthi %0, $ac3" : :"r" (x))
476  
477  #else
478  
479 @@ -1390,13 +1390,13 @@
480  }                                                              \
481                                                                 \
482  static inline unsigned int                                     \
483 -change_c0_##name(unsigned int change, unsigned int new)                \
484 +change_c0_##name(unsigned int change, unsigned int newval)     \
485  {                                                              \
486         unsigned int res;                                       \
487                                                                 \
488         res = read_c0_##name();                                 \
489         res &= ~change;                                         \
490 -       res |= (new & change);                                  \
491 +       res |= (newval & change);                               \
492         write_c0_##name(res);                                   \
493                                                                 \
494         return res;                                             \
495 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/paccess.h linux-2.6.27-720/include/asm-mips/paccess.h
496 --- linux-2.6.27-710/include/asm-mips/paccess.h 2008-10-09 18:13:53.000000000 -0400
497 +++ linux-2.6.27-720/include/asm-mips/paccess.h 2009-05-04 16:03:46.000000000 -0400
498 @@ -22,8 +22,8 @@
499  #define __PA_ADDR      ".dword"
500  #endif
501  
502 -extern asmlinkage void handle_ibe(void);
503 -extern asmlinkage void handle_dbe(void);
504 +asmlinkage void handle_ibe(void);
505 +asmlinkage void handle_dbe(void);
506  
507  #define put_dbe(x, ptr) __put_dbe((x), (ptr), sizeof(*(ptr)))
508  #define get_dbe(x, ptr) __get_dbe((x), (ptr), sizeof(*(ptr)))
509 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/processor.h linux-2.6.27-720/include/asm-mips/processor.h
510 --- linux-2.6.27-710/include/asm-mips/processor.h       2008-10-09 18:13:53.000000000 -0400
511 +++ linux-2.6.27-720/include/asm-mips/processor.h       2009-05-04 16:03:46.000000000 -0400
512 @@ -242,7 +242,7 @@
513   * overhead of a function call by forcing the compiler to save the return
514   * address register on the stack.
515   */
516 -#define return_address() ({__asm__ __volatile__("":::"$31");__builtin_return_address(0);})
517 +#define return_address() ({__asm__ __volatile__("": : :"$31");__builtin_return_address(0);})
518  
519  #ifdef CONFIG_CPU_HAS_PREFETCH
520  
521 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/ptrace.h linux-2.6.27-720/include/asm-mips/ptrace.h
522 --- linux-2.6.27-710/include/asm-mips/ptrace.h  2008-10-09 18:13:53.000000000 -0400
523 +++ linux-2.6.27-720/include/asm-mips/ptrace.h  2009-05-04 16:03:46.000000000 -0400
524 @@ -84,7 +84,7 @@
525  #define instruction_pointer(regs) ((regs)->cp0_epc)
526  #define profile_pc(regs) instruction_pointer(regs)
527  
528 -extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit);
529 +asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit);
530  
531  extern NORET_TYPE void die(const char *, const struct pt_regs *) ATTRIB_NORET;
532  
533 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/smp.h linux-2.6.27-720/include/asm-mips/smp.h
534 --- linux-2.6.27-710/include/asm-mips/smp.h     2008-10-09 18:13:53.000000000 -0400
535 +++ linux-2.6.27-720/include/asm-mips/smp.h     2009-05-04 16:03:46.000000000 -0400
536 @@ -55,7 +55,7 @@
537         mp_ops->send_ipi_single(cpu, SMP_RESCHEDULE_YOURSELF);
538  }
539  
540 -extern asmlinkage void smp_call_function_interrupt(void);
541 +asmlinkage void smp_call_function_interrupt(void);
542  
543  extern void arch_send_call_function_single_ipi(int cpu);
544  extern void arch_send_call_function_ipi(cpumask_t mask);
545 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-mips/system.h linux-2.6.27-720/include/asm-mips/system.h
546 --- linux-2.6.27-710/include/asm-mips/system.h  2008-10-09 18:13:53.000000000 -0400
547 +++ linux-2.6.27-720/include/asm-mips/system.h  2009-05-04 16:03:46.000000000 -0400
548 @@ -27,7 +27,7 @@
549   * switch_to(n) should switch tasks to task nr n, first
550   * checking that n isn't the current task, in which case it does nothing.
551   */
552 -extern asmlinkage void *resume(void *last, void *next, void *next_ti);
553 +asmlinkage void *resume(void *last, void *next, void *next_ti);
554  
555  struct task_struct;
556  
557 @@ -189,9 +189,9 @@
558  {
559         switch (size) {
560         case 4:
561 -               return __xchg_u32(ptr, x);
562 +               return __xchg_u32((volatile int *) ptr, x);
563         case 8:
564 -               return __xchg_u64(ptr, x);
565 +               return __xchg_u64((volatile __u64 *) ptr, x);
566         }
567         __xchg_called_with_bad_pointer();
568         return x;
569 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-parisc/system.h linux-2.6.27-720/include/asm-parisc/system.h
570 --- linux-2.6.27-710/include/asm-parisc/system.h        2008-10-09 18:13:53.000000000 -0400
571 +++ linux-2.6.27-720/include/asm-parisc/system.h        2009-05-04 16:03:46.000000000 -0400
572 @@ -122,7 +122,7 @@
573  ** The __asm__ op below simple prevents gcc/ld from reordering
574  ** instructions across the mb() "call".
575  */
576 -#define mb()           __asm__ __volatile__("":::"memory")     /* barrier() */
577 +#define mb()           __asm__ __volatile__("": : :"memory")   /* barrier() */
578  #define rmb()          mb()
579  #define wmb()          mb()
580  #define smp_mb()       mb()
581 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-um/module-i386.h linux-2.6.27-720/include/asm-um/module-i386.h
582 --- linux-2.6.27-710/include/asm-um/module-i386.h       2008-10-09 18:13:53.000000000 -0400
583 +++ linux-2.6.27-720/include/asm-um/module-i386.h       2009-05-04 16:03:46.000000000 -0400
584 @@ -2,9 +2,7 @@
585  #define __UM_MODULE_I386_H
586  
587  /* UML is simple */
588 -struct mod_arch_specific
589 -{
590 -};
591 +EMPTY_STRUCT_DECL(mod_arch_specific);
592  
593  #define Elf_Shdr Elf32_Shdr
594  #define Elf_Sym Elf32_Sym
595 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-um/module-x86_64.h linux-2.6.27-720/include/asm-um/module-x86_64.h
596 --- linux-2.6.27-710/include/asm-um/module-x86_64.h     2008-10-09 18:13:53.000000000 -0400
597 +++ linux-2.6.27-720/include/asm-um/module-x86_64.h     2009-05-04 16:03:46.000000000 -0400
598 @@ -8,9 +8,7 @@
599  #define __UM_MODULE_X86_64_H
600  
601  /* UML is simple */
602 -struct mod_arch_specific
603 -{
604 -};
605 +EMPTY_STRUCT_DECL(mod_arch_specific);
606  
607  #define Elf_Shdr Elf64_Shdr
608  #define Elf_Sym Elf64_Sym
609 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-x86/bitops.h linux-2.6.27-720/include/asm-x86/bitops.h
610 --- linux-2.6.27-710/include/asm-x86/bitops.h   2008-10-09 18:13:53.000000000 -0400
611 +++ linux-2.6.27-720/include/asm-x86/bitops.h   2009-05-04 16:03:46.000000000 -0400
612 @@ -35,7 +35,7 @@
613   * a mask operation on a byte.
614   */
615  #define IS_IMMEDIATE(nr)               (__builtin_constant_p(nr))
616 -#define CONST_MASK_ADDR(nr, addr)      BITOP_ADDR((void *)(addr) + ((nr)>>3))
617 +#define CONST_MASK_ADDR(nr, addr)      BITOP_ADDR((char *)(addr) + ((nr)>>3))
618  #define CONST_MASK(nr)                 (1 << ((nr) & 7))
619  
620  /**
621 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-x86/desc.h linux-2.6.27-720/include/asm-x86/desc.h
622 --- linux-2.6.27-710/include/asm-x86/desc.h     2008-10-09 18:13:53.000000000 -0400
623 +++ linux-2.6.27-720/include/asm-x86/desc.h     2009-05-04 16:03:46.000000000 -0400
624 @@ -70,7 +70,7 @@
625  
626  static inline int desc_empty(const void *ptr)
627  {
628 -       const u32 *desc = ptr;
629 +       const u32 *desc = (const u32 *) ptr;
630         return !(desc[0] | desc[1]);
631  }
632  
633 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-x86/hw_irq.h linux-2.6.27-720/include/asm-x86/hw_irq.h
634 --- linux-2.6.27-710/include/asm-x86/hw_irq.h   2008-10-09 18:13:53.000000000 -0400
635 +++ linux-2.6.27-720/include/asm-x86/hw_irq.h   2009-05-04 16:03:46.000000000 -0400
636 @@ -84,6 +84,16 @@
637  extern void eisa_set_level_irq(unsigned int irq);
638  
639  /* Voyager functions */
640 +#ifdef __cplusplus
641 +asmlinkage void vic_cpi_interrupt(void);
642 +asmlinkage void vic_sys_interrupt(void);
643 +asmlinkage void vic_cmn_interrupt(void);
644 +asmlinkage void qic_timer_interrupt(void);
645 +asmlinkage void qic_invalidate_interrupt(void);
646 +asmlinkage void qic_reschedule_interrupt(void);
647 +asmlinkage void qic_enable_irq_interrupt(void);
648 +asmlinkage void qic_call_function_interrupt(void);
649 +#else
650  extern asmlinkage void vic_cpi_interrupt(void);
651  extern asmlinkage void vic_sys_interrupt(void);
652  extern asmlinkage void vic_cmn_interrupt(void);
653 @@ -93,6 +103,8 @@
654  extern asmlinkage void qic_enable_irq_interrupt(void);
655  extern asmlinkage void qic_call_function_interrupt(void);
656  
657 +#endif
658 +
659  #ifdef CONFIG_X86_32
660  extern void (*const interrupt[NR_IRQS])(void);
661  #else
662 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-x86/page.h linux-2.6.27-720/include/asm-x86/page.h
663 --- linux-2.6.27-710/include/asm-x86/page.h     2008-10-09 18:13:53.000000000 -0400
664 +++ linux-2.6.27-720/include/asm-x86/page.h     2009-05-04 16:03:46.000000000 -0400
665 @@ -138,7 +138,7 @@
666  
667  static inline pte_t native_make_pte(pteval_t val)
668  {
669 -       return (pte_t) { .pte = val };
670 +       return (pte_t) ({pte_t duh; duh.pte = val;duh;});
671  }
672  
673  static inline pteval_t native_pte_val(pte_t pte)
674 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-x86/paravirt.h linux-2.6.27-720/include/asm-x86/paravirt.h
675 --- linux-2.6.27-710/include/asm-x86/paravirt.h 2008-10-09 18:13:53.000000000 -0400
676 +++ linux-2.6.27-720/include/asm-x86/paravirt.h 2009-05-04 16:03:46.000000000 -0400
677 @@ -1060,7 +1060,7 @@
678                                  pv_mmu_ops.make_pte,
679                                  val);
680  
681 -       return (pte_t) { .pte = ret };
682 +       return (pte_t) ({pte_t duh; duh.pte = ret;duh;});
683  }
684  
685  static inline pteval_t pte_val(pte_t pte)
686 @@ -1131,7 +1131,7 @@
687         ret = PVOP_CALL3(pteval_t, pv_mmu_ops.ptep_modify_prot_start,
688                          mm, addr, ptep);
689  
690 -       return (pte_t) { .pte = ret };
691 +       return (pte_t) ({pte_t duh; duh.pte = ret;duh;});
692  }
693  
694  static inline void ptep_modify_prot_commit(struct mm_struct *mm, unsigned long addr,
695 @@ -1314,10 +1314,12 @@
696         set_pte_at(mm, addr, ptep, __pte(0));
697  }
698  
699 +#ifndef __cplusplus
700  static inline void pmd_clear(pmd_t *pmdp)
701  {
702         set_pmd(pmdp, __pmd(0));
703  }
704 +#endif
705  #endif /* CONFIG_X86_PAE */
706  
707  /* Lazy mode for batching updates / context switch */
708 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-x86/pgtable-2level.h linux-2.6.27-720/include/asm-x86/pgtable-2level.h
709 --- linux-2.6.27-710/include/asm-x86/pgtable-2level.h   2008-10-09 18:13:53.000000000 -0400
710 +++ linux-2.6.27-720/include/asm-x86/pgtable-2level.h   2009-05-04 16:03:46.000000000 -0400
711 @@ -33,10 +33,12 @@
712         native_set_pte(ptep, pte);
713  }
714  
715 +/*
716  static inline void native_pmd_clear(pmd_t *pmdp)
717  {
718         native_set_pmd(pmdp, __pmd(0));
719  }
720 +*/
721  
722  static inline void native_pte_clear(struct mm_struct *mm,
723                                     unsigned long addr, pte_t *xp)
724 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-x86/pgtable.h linux-2.6.27-720/include/asm-x86/pgtable.h
725 --- linux-2.6.27-710/include/asm-x86/pgtable.h  2008-10-09 18:13:53.000000000 -0400
726 +++ linux-2.6.27-720/include/asm-x86/pgtable.h  2009-05-04 16:03:46.000000000 -0400
727 @@ -260,11 +260,13 @@
728                       pgprot_val(pgprot)) & __supported_pte_mask);
729  }
730  
731 +#ifndef __cplusplus
732  static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot)
733  {
734         return __pmd((((phys_addr_t)page_nr << PAGE_SHIFT) |
735                       pgprot_val(pgprot)) & __supported_pte_mask);
736  }
737 +#endif
738  
739  static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
740  {
741 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-x86/spinlock_types.h linux-2.6.27-720/include/asm-x86/spinlock_types.h
742 --- linux-2.6.27-710/include/asm-x86/spinlock_types.h   2008-10-09 18:13:53.000000000 -0400
743 +++ linux-2.6.27-720/include/asm-x86/spinlock_types.h   2009-05-04 16:03:46.000000000 -0400
744 @@ -9,12 +9,19 @@
745         unsigned int slock;
746  } raw_spinlock_t;
747  
748 +#ifndef __cplusplus
749  #define __RAW_SPIN_LOCK_UNLOCKED       { 0 }
750 +#else
751 +#define __RAW_SPIN_LOCK_UNLOCKED       ({raw_spinlock_t duh; duh.slock=0;duh;})
752 +#endif
753  
754  typedef struct {
755         unsigned int lock;
756  } raw_rwlock_t;
757  
758 +#ifndef __cplusplus
759  #define __RAW_RW_LOCK_UNLOCKED         { RW_LOCK_BIAS }
760 -
761 +#else
762 +#define __RAW_RW_LOCK_UNLOCKED         ({raw_rwlock_t duh;duh.lock=RW_LOCK_BIAS;duh;})
763 +#endif
764  #endif
765 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-x86/vdso.h linux-2.6.27-720/include/asm-x86/vdso.h
766 --- linux-2.6.27-710/include/asm-x86/vdso.h     2008-10-09 18:13:53.000000000 -0400
767 +++ linux-2.6.27-720/include/asm-x86/vdso.h     2009-05-04 16:03:46.000000000 -0400
768 @@ -33,8 +33,8 @@
769   * These symbols are defined with the addresses in the vsyscall page.
770   * See vsyscall-sigreturn.S.
771   */
772 -extern void __user __kernel_sigreturn;
773 -extern void __user __kernel_rt_sigreturn;
774 +extern void* __user __kernel_sigreturn;
775 +extern void* __user __kernel_rt_sigreturn;
776  
777  /*
778   * These symbols are defined by vdso32.S to mark the bounds
779 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-xtensa/module.h linux-2.6.27-720/include/asm-xtensa/module.h
780 --- linux-2.6.27-710/include/asm-xtensa/module.h        2008-10-09 18:13:53.000000000 -0400
781 +++ linux-2.6.27-720/include/asm-xtensa/module.h        2009-05-04 16:03:46.000000000 -0400
782 @@ -13,10 +13,7 @@
783  #ifndef _XTENSA_MODULE_H
784  #define _XTENSA_MODULE_H
785  
786 -struct mod_arch_specific
787 -{
788 -       /* No special elements, yet. */
789 -};
790 +EMPTY_STRUCT_DECL(mod_arch_specific);
791  
792  #define MODULE_ARCH_VERMAGIC "xtensa-" __stringify(XCHAL_CORE_ID) " "
793  
794 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-xtensa/processor.h linux-2.6.27-720/include/asm-xtensa/processor.h
795 --- linux-2.6.27-710/include/asm-xtensa/processor.h     2008-10-09 18:13:53.000000000 -0400
796 +++ linux-2.6.27-720/include/asm-xtensa/processor.h     2009-05-04 16:03:46.000000000 -0400
797 @@ -183,7 +183,7 @@
798  
799  /* Special register access. */
800  
801 -#define WSR(v,sr) __asm__ __volatile__ ("wsr %0,"__stringify(sr) :: "a"(v));
802 +#define WSR(v,sr) __asm__ __volatile__ ("wsr %0,"__stringify(sr) : : "a"(v));
803  #define RSR(v,sr) __asm__ __volatile__ ("rsr %0,"__stringify(sr) : "=a"(v));
804  
805  #define set_sr(x,sr) ({unsigned int v=(unsigned int)x; WSR(v,sr);})
806 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/asm-xtensa/system.h linux-2.6.27-720/include/asm-xtensa/system.h
807 --- linux-2.6.27-710/include/asm-xtensa/system.h        2008-10-09 18:13:53.000000000 -0400
808 +++ linux-2.6.27-720/include/asm-xtensa/system.h        2009-05-04 16:03:46.000000000 -0400
809 @@ -21,21 +21,21 @@
810         __asm__ __volatile__ ("rsr %0,"__stringify(PS) : "=a" (x));
811  #define local_irq_restore(x)   do {                                    \
812         __asm__ __volatile__ ("wsr %0, "__stringify(PS)" ; rsync"       \
813 -                             :: "a" (x) : "memory"); } while(0);
814 +                             : : "a" (x) : "memory"); } while(0);
815  #define local_irq_save(x)      do {                                    \
816         __asm__ __volatile__ ("rsil %0, "__stringify(LOCKLEVEL)         \
817 -                             : "=a" (x) :: "memory");} while(0);
818 +                             : "=a" (x) : : "memory");} while(0);
819  
820  static inline void local_irq_disable(void)
821  {
822         unsigned long flags;
823         __asm__ __volatile__ ("rsil %0, "__stringify(LOCKLEVEL)
824 -                             : "=a" (flags) :: "memory");
825 +                             : "=a" (flags) : : "memory");
826  }
827  static inline void local_irq_enable(void)
828  {
829         unsigned long flags;
830 -       __asm__ __volatile__ ("rsil %0, 0" : "=a" (flags) :: "memory");
831 +       __asm__ __volatile__ ("rsil %0, 0" : "=a" (flags) : : "memory");
832  
833  }
834  
835 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/backing-dev.h linux-2.6.27-720/include/linux/backing-dev.h
836 --- linux-2.6.27-710/include/linux/backing-dev.h        2008-10-09 18:13:53.000000000 -0400
837 +++ linux-2.6.27-720/include/linux/backing-dev.h        2009-05-04 16:03:46.000000000 -0400
838 @@ -29,7 +29,7 @@
839         BDI_unused,             /* Available bits start here */
840  };
841  
842 -typedef int (congested_fn)(void *, int);
843 +typedef int (congested_fn_t)(void *, int);
844  
845  enum bdi_stat_item {
846         BDI_RECLAIMABLE,
847 @@ -43,7 +43,7 @@
848         unsigned long ra_pages; /* max readahead in PAGE_CACHE_SIZE units */
849         unsigned long state;    /* Always use atomic bitops on this */
850         unsigned int capabilities; /* Device capabilities */
851 -       congested_fn *congested_fn; /* Function pointer if device is md/dm */
852 +       congested_fn_t *congested_fn; /* Function pointer if device is md/dm */
853         void *congested_data;   /* Pointer to aux data for congested func */
854         void (*unplug_io_fn)(struct backing_dev_info *, struct page *);
855         void *unplug_io_data;
856 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/bitops.h linux-2.6.27-720/include/linux/bitops.h
857 --- linux-2.6.27-710/include/linux/bitops.h     2008-10-09 18:13:53.000000000 -0400
858 +++ linux-2.6.27-720/include/linux/bitops.h     2009-05-04 16:03:46.000000000 -0400
859 @@ -44,7 +44,6 @@
860  {
861         return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
862  }
863 -
864  /**
865   * rol32 - rotate a 32-bit value left
866   * @word: value to rotate
867 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/compat.h linux-2.6.27-720/include/linux/compat.h
868 --- linux-2.6.27-710/include/linux/compat.h     2009-05-04 12:35:57.000000000 -0400
869 +++ linux-2.6.27-720/include/linux/compat.h     2009-05-04 16:03:46.000000000 -0400
870 @@ -115,7 +115,7 @@
871  
872  struct compat_siginfo;
873  
874 -extern asmlinkage long compat_sys_waitid(int, compat_pid_t,
875 +asmlinkage long compat_sys_waitid(int, compat_pid_t,
876                 struct compat_siginfo __user *, int,
877                 struct compat_rusage __user *);
878  
879 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/dmaengine.h linux-2.6.27-720/include/linux/dmaengine.h
880 --- linux-2.6.27-710/include/linux/dmaengine.h  2008-10-09 18:13:53.000000000 -0400
881 +++ linux-2.6.27-720/include/linux/dmaengine.h  2009-05-04 16:03:46.000000000 -0400
882 @@ -377,7 +377,7 @@
883  
884  static inline void async_tx_ack(struct dma_async_tx_descriptor *tx)
885  {
886 -       tx->flags |= DMA_CTRL_ACK;
887 +       tx->flags = (enum dma_ctrl_flags) (tx->flags | DMA_CTRL_ACK);
888  }
889  
890  static inline bool async_tx_test_ack(struct dma_async_tx_descriptor *tx)
891 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/dqblk_v1.h linux-2.6.27-720/include/linux/dqblk_v1.h
892 --- linux-2.6.27-710/include/linux/dqblk_v1.h   2008-10-09 18:13:53.000000000 -0400
893 +++ linux-2.6.27-720/include/linux/dqblk_v1.h   2009-05-04 16:03:46.000000000 -0400
894 @@ -18,7 +18,6 @@
895  #define V1_DEL_REWRITE 2
896  
897  /* Special information about quotafile */
898 -struct v1_mem_dqinfo {
899 -};
900 +EMPTY_STRUCT_DECL(v1_mem_dqinfo);
901  
902  #endif /* _LINUX_DQBLK_V1_H */
903 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/fs.h linux-2.6.27-720/include/linux/fs.h
904 --- linux-2.6.27-710/include/linux/fs.h 2009-05-04 12:36:50.000000000 -0400
905 +++ linux-2.6.27-720/include/linux/fs.h 2009-05-04 16:03:46.000000000 -0400
906 @@ -2111,7 +2111,7 @@
907  
908  static inline void simple_transaction_set(struct file *file, size_t n)
909  {
910 -       struct simple_transaction_argresp *ar = file->private_data;
911 +       struct simple_transaction_argresp *ar = (struct simple_transaction_argresp *) file->private_data;
912  
913         BUG_ON(n > SIMPLE_TRANSACTION_LIMIT);
914  
915 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/highmem.h linux-2.6.27-720/include/linux/highmem.h
916 --- linux-2.6.27-710/include/linux/highmem.h    2008-10-09 18:13:53.000000000 -0400
917 +++ linux-2.6.27-720/include/linux/highmem.h    2009-05-04 16:03:46.000000000 -0400
918 @@ -165,8 +165,8 @@
919  {
920         char *vfrom, *vto;
921  
922 -       vfrom = kmap_atomic(from, KM_USER0);
923 -       vto = kmap_atomic(to, KM_USER1);
924 +       vfrom = (char*)kmap_atomic(from, KM_USER0);
925 +       vto = (char*)kmap_atomic(to, KM_USER1);
926         copy_user_page(vto, vfrom, vaddr, to);
927         kunmap_atomic(vfrom, KM_USER0);
928         kunmap_atomic(vto, KM_USER1);
929 @@ -178,8 +178,8 @@
930  {
931         char *vfrom, *vto;
932  
933 -       vfrom = kmap_atomic(from, KM_USER0);
934 -       vto = kmap_atomic(to, KM_USER1);
935 +       vfrom = (char*)kmap_atomic(from, KM_USER0);
936 +       vto = (char*)kmap_atomic(to, KM_USER1);
937         copy_page(vto, vfrom);
938         kunmap_atomic(vfrom, KM_USER0);
939         kunmap_atomic(vto, KM_USER1);
940 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/hrtimer.h linux-2.6.27-720/include/linux/hrtimer.h
941 --- linux-2.6.27-710/include/linux/hrtimer.h    2008-10-09 18:13:53.000000000 -0400
942 +++ linux-2.6.27-720/include/linux/hrtimer.h    2009-05-04 16:03:46.000000000 -0400
943 @@ -384,7 +384,7 @@
944  static inline void timer_stats_account_hrtimer(struct hrtimer *timer)
945  {
946         timer_stats_update_stats(timer, timer->start_pid, timer->start_site,
947 -                                timer->function, timer->start_comm, 0);
948 +                                (void *) timer->function, timer->start_comm, 0);
949  }
950  
951  extern void __timer_stats_hrtimer_set_start_info(struct hrtimer *timer,
952 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/inetdevice.h linux-2.6.27-720/include/linux/inetdevice.h
953 --- linux-2.6.27-710/include/linux/inetdevice.h 2008-10-09 18:13:53.000000000 -0400
954 +++ linux-2.6.27-720/include/linux/inetdevice.h 2009-05-04 16:03:46.000000000 -0400
955 @@ -166,7 +166,7 @@
956  
957  static inline struct in_device *__in_dev_get_rcu(const struct net_device *dev)
958  {
959 -       struct in_device *in_dev = dev->ip_ptr;
960 +       struct in_device *in_dev = (struct in_device *) dev->ip_ptr;
961         if (in_dev)
962                 in_dev = rcu_dereference(in_dev);
963         return in_dev;
964 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/jhash.h linux-2.6.27-720/include/linux/jhash.h
965 --- linux-2.6.27-710/include/linux/jhash.h      2008-10-09 18:13:53.000000000 -0400
966 +++ linux-2.6.27-720/include/linux/jhash.h      2009-05-04 16:03:46.000000000 -0400
967 @@ -44,7 +44,7 @@
968  static inline u32 jhash(const void *key, u32 length, u32 initval)
969  {
970         u32 a, b, c, len;
971 -       const u8 *k = key;
972 +       const u8 *k = (const u8 *) key;
973  
974         len = length;
975         a = b = JHASH_GOLDEN_RATIO;
976 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/kernel.h linux-2.6.27-720/include/linux/kernel.h
977 --- linux-2.6.27-710/include/linux/kernel.h     2008-10-09 18:13:53.000000000 -0400
978 +++ linux-2.6.27-720/include/linux/kernel.h     2009-05-04 16:03:46.000000000 -0400
979 @@ -213,7 +213,7 @@
980                 { return false; }
981  #endif
982  
983 -extern void asmlinkage __attribute__((format(printf, 1, 2)))
984 +asmlinkage void __attribute__((format(printf, 1, 2)))
985         early_printk(const char *fmt, ...);
986  
987  unsigned long int_sqrt(unsigned long);
988 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/ktime.h linux-2.6.27-720/include/linux/ktime.h
989 --- linux-2.6.27-710/include/linux/ktime.h      2008-10-09 18:13:53.000000000 -0400
990 +++ linux-2.6.27-720/include/linux/ktime.h      2009-05-04 16:03:46.000000000 -0400
991 @@ -71,6 +71,12 @@
992  
993  #if (BITS_PER_LONG == 64) || defined(CONFIG_KTIME_SCALAR)
994  
995 +#ifdef __cplusplus
996 +# define KTIME_TV64(__s)       ({ ktime_t __kt; __kt.tv64 = (__s); __kt; })
997 +#else
998 +# define KTIME_TV64(__s)       ((ktime_t) { .tv64 = (__s) })
999 +#endif
1000 +
1001  /**
1002   * ktime_set - Set a ktime_t variable from a seconds/nanoseconds value
1003   * @secs:      seconds to set
1004 @@ -82,32 +88,37 @@
1005  {
1006  #if (BITS_PER_LONG == 64)
1007         if (unlikely(secs >= KTIME_SEC_MAX))
1008 -               return (ktime_t){ .tv64 = KTIME_MAX };
1009 +               return KTIME_TV64(KTIME_MAX);
1010  #endif
1011 -       return (ktime_t) { .tv64 = (s64)secs * NSEC_PER_SEC + (s64)nsecs };
1012 +       return KTIME_TV64((s64)secs * NSEC_PER_SEC + (s64)nsecs);
1013  }
1014  
1015  /* Subtract two ktime_t variables. rem = lhs -rhs: */
1016  #define ktime_sub(lhs, rhs) \
1017 -               ({ (ktime_t){ .tv64 = (lhs).tv64 - (rhs).tv64 }; })
1018 +               KTIME_TV64((lhs).tv64 - (rhs).tv64)
1019  
1020  /* Add two ktime_t variables. res = lhs + rhs: */
1021  #define ktime_add(lhs, rhs) \
1022 -               ({ (ktime_t){ .tv64 = (lhs).tv64 + (rhs).tv64 }; })
1023 +               KTIME_TV64((lhs).tv64 + (rhs).tv64)
1024  
1025  /*
1026   * Add a ktime_t variable and a scalar nanosecond value.
1027   * res = kt + nsval:
1028   */
1029  #define ktime_add_ns(kt, nsval) \
1030 -               ({ (ktime_t){ .tv64 = (kt).tv64 + (nsval) }; })
1031 +               KTIME_TV64((kt).tv64 + (nsval))
1032  
1033  /*
1034   * Subtract a scalar nanosecod from a ktime_t variable
1035   * res = kt - nsval:
1036   */
1037 +#ifdef __cplusplus
1038 +#define ktime_sub_ns(kt, nsval) \
1039 +               ({ktime_t duh; duh.tv64 = (kt).tv64 - (nsval); duh; })
1040 +#else
1041  #define ktime_sub_ns(kt, nsval) \
1042                 ({ (ktime_t){ .tv64 = (kt).tv64 - (nsval) }; })
1043 +#endif
1044  
1045  /* convert a timespec to ktime_t format: */
1046  static inline ktime_t timespec_to_ktime(struct timespec ts)
1047 @@ -132,6 +143,18 @@
1048  
1049  #else
1050  
1051 +#ifdef __cplusplus
1052 +# define KTIME_TV64(__s)               ({ ktime_t __kt; __kt.tv64 = (__s); __kt; })
1053 +# define KTIME_SEC_NSEC(__sec, __nsec) ({ ktime_t __kt; __kt.tv.sec = (__sec); __kt.tv.nsec = (__nsec); __kt; })
1054 +# define TIMEVAL_SEC_USEC(__sec, __usec) ({ struct timeval __tv; __tv.tv_sec = (__sec); __tv.tv_usec = (__usec); __tv; })
1055 +# define TIMESPEC_SEC_NSEC(__sec, __nsec) ({ struct timespec __ts; __ts.tv_sec = (__sec); __ts.tv_nsec = (__nsec); __ts; })
1056 +#else
1057 +# define KTIME_TV64(__s)               ((ktime_t) { .tv64 = (__s) })
1058 +# define KTIME_SEC_NSEC(__sec, __nsec) ((ktime_t) { .tv = { .sec = (__sec), .nsec = (__nsec) } })
1059 +# define TIMEVAL_SEC_USEC(__sec, __usec) ((struct timeval) { .tv_sec = (__sec), .tv_usec = (__usec) })
1060 +# define TIMESPEC_SEC_NSEC(__sec, __nsec) ((struct timespec) { .tv_sec = (__sec), .tv_nsec = (__nsec) })
1061 +#endif
1062 +
1063  /*
1064   * Helper macros/inlines to get the ktime_t math right in the timespec
1065   * representation. The macros are sometimes ugly - their actual use is
1066 @@ -150,7 +173,7 @@
1067  /* Set a ktime_t variable to a value in sec/nsec representation: */
1068  static inline ktime_t ktime_set(const long secs, const unsigned long nsecs)
1069  {
1070 -       return (ktime_t) { .tv = { .sec = secs, .nsec = nsecs } };
1071 +       return KTIME_SEC_NSEC(secs, nsecs);
1072  }
1073  
1074  /**
1075 @@ -223,8 +246,7 @@
1076   */
1077  static inline ktime_t timespec_to_ktime(const struct timespec ts)
1078  {
1079 -       return (ktime_t) { .tv = { .sec = (s32)ts.tv_sec,
1080 -                                  .nsec = (s32)ts.tv_nsec } };
1081 +       return KTIME_SEC_NSEC((s32)ts.tv_sec, (s32)ts.tv_nsec);
1082  }
1083  
1084  /**
1085 @@ -235,8 +257,7 @@
1086   */
1087  static inline ktime_t timeval_to_ktime(const struct timeval tv)
1088  {
1089 -       return (ktime_t) { .tv = { .sec = (s32)tv.tv_sec,
1090 -                                  .nsec = (s32)tv.tv_usec * 1000 } };
1091 +       return KTIME_SEC_NSEC((s32)tv.tv_sec, (s32)tv.tv_usec * 1000);
1092  }
1093  
1094  /**
1095 @@ -247,8 +268,7 @@
1096   */
1097  static inline struct timespec ktime_to_timespec(const ktime_t kt)
1098  {
1099 -       return (struct timespec) { .tv_sec = (time_t) kt.tv.sec,
1100 -                                  .tv_nsec = (long) kt.tv.nsec };
1101 +       return TIMESPEC_SEC_NSEC((time_t) kt.tv.sec, (long) kt.tv.nsec);
1102  }
1103  
1104  /**
1105 @@ -259,9 +279,8 @@
1106   */
1107  static inline struct timeval ktime_to_timeval(const ktime_t kt)
1108  {
1109 -       return (struct timeval) {
1110 -               .tv_sec = (time_t) kt.tv.sec,
1111 -               .tv_usec = (suseconds_t) (kt.tv.nsec / NSEC_PER_USEC) };
1112 +       return TIMEVAL_SEC_USEC((time_t) kt.tv.sec,
1113 +                               (suseconds_t) (kt.tv.nsec / NSEC_PER_USEC));
1114  }
1115  
1116  /**
1117 @@ -329,7 +348,8 @@
1118  
1119  static inline ktime_t ns_to_ktime(u64 ns)
1120  {
1121 -       static const ktime_t ktime_zero = { .tv64 = 0 };
1122 +       static ktime_t ktime_zero;
1123 +    ktime_zero = ({ktime_t duh; duh.tv64 = 0;duh;});
1124         return ktime_add_ns(ktime_zero, ns);
1125  }
1126  
1127 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/linkage.h linux-2.6.27-720/include/linux/linkage.h
1128 --- linux-2.6.27-710/include/linux/linkage.h    2008-10-09 18:13:53.000000000 -0400
1129 +++ linux-2.6.27-720/include/linux/linkage.h    2009-05-04 16:03:46.000000000 -0400
1130 @@ -11,6 +11,13 @@
1131  #else
1132  #define CPP_ASMLINKAGE
1133  #endif
1134 +#ifndef extern_asmlinkage
1135 +# ifdef __cplusplus
1136 +#  define extern_asmlinkage asmlinkage
1137 +# else
1138 +#  define extern_asmlinkage extern asmlinkage
1139 +# endif
1140 +#endif
1141  
1142  #ifndef asmlinkage
1143  #define asmlinkage CPP_ASMLINKAGE
1144 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/list.h linux-2.6.27-720/include/linux/list.h
1145 --- linux-2.6.27-710/include/linux/list.h       2008-10-09 18:13:53.000000000 -0400
1146 +++ linux-2.6.27-720/include/linux/list.h       2009-05-04 16:03:46.000000000 -0400
1147 @@ -20,7 +20,11 @@
1148         struct list_head *next, *prev;
1149  };
1150  
1151 +#ifdef __cplusplus
1152 +#define LIST_HEAD_INIT(name) ({struct list_head duh;duh.next=&(name);duh.prev=&(name);duh;})
1153 +#else
1154  #define LIST_HEAD_INIT(name) { &(name), &(name) }
1155 +#endif
1156  
1157  #define LIST_HEAD(name) \
1158         struct list_head name = LIST_HEAD_INIT(name)
1159 @@ -103,8 +107,8 @@
1160  static inline void list_del(struct list_head *entry)
1161  {
1162         __list_del(entry->prev, entry->next);
1163 -       entry->next = LIST_POISON1;
1164 -       entry->prev = LIST_POISON2;
1165 +       entry->next = (struct list_head*)(LIST_POISON1);
1166 +       entry->prev = (struct list_head*)(LIST_POISON2);
1167  }
1168  #else
1169  extern void list_del(struct list_head *entry);
1170 @@ -576,8 +580,8 @@
1171  static inline void hlist_del(struct hlist_node *n)
1172  {
1173         __hlist_del(n);
1174 -       n->next = LIST_POISON1;
1175 -       n->pprev = LIST_POISON2;
1176 +       n->next = (struct hlist_node*)(LIST_POISON1);
1177 +       n->pprev = (struct hlist_node**)(LIST_POISON2);
1178  }
1179  
1180  static inline void hlist_del_init(struct hlist_node *n)
1181 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/mempolicy.h linux-2.6.27-720/include/linux/mempolicy.h
1182 --- linux-2.6.27-710/include/linux/mempolicy.h  2008-10-09 18:13:53.000000000 -0400
1183 +++ linux-2.6.27-720/include/linux/mempolicy.h  2009-05-04 16:03:46.000000000 -0400
1184 @@ -241,7 +241,7 @@
1185  
1186  #else
1187  
1188 -struct mempolicy {};
1189 +EMPTY_STRUCT_DECL(mempolicy);
1190  
1191  static inline int mpol_equal(struct mempolicy *a, struct mempolicy *b)
1192  {
1193 @@ -271,7 +271,7 @@
1194         return NULL;
1195  }
1196  
1197 -struct shared_policy {};
1198 +EMPTY_STRUCT_DECL(shared_policy);
1199  
1200  static inline int mpol_set_shared_policy(struct shared_policy *info,
1201                                         struct vm_area_struct *vma,
1202 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/mm.h linux-2.6.27-720/include/linux/mm.h
1203 --- linux-2.6.27-710/include/linux/mm.h 2009-05-04 12:35:57.000000000 -0400
1204 +++ linux-2.6.27-720/include/linux/mm.h 2009-05-04 16:03:46.000000000 -0400
1205 @@ -326,7 +326,7 @@
1206  static inline void set_compound_page_dtor(struct page *page,
1207                                                 compound_page_dtor *dtor)
1208  {
1209 -       page[1].lru.next = (void *)dtor;
1210 +       page[1].lru.next = (struct list_head *)dtor;
1211  }
1212  
1213  static inline compound_page_dtor *get_compound_page_dtor(struct page *page)
1214 @@ -343,7 +343,7 @@
1215  
1216  static inline void set_compound_order(struct page *page, unsigned long order)
1217  {
1218 -       page[1].lru.prev = (void *)order;
1219 +       page[1].lru.prev = (struct list_head  *)order;
1220  }
1221  
1222  /*
1223 @@ -493,7 +493,7 @@
1224  
1225  static inline enum zone_type page_zonenum(struct page *page)
1226  {
1227 -       return (page->flags >> ZONES_PGSHIFT) & ZONES_MASK;
1228 +       return (enum zone_type) ((page->flags >> ZONES_PGSHIFT) & ZONES_MASK);
1229  }
1230  
1231  /*
1232 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/netdevice.h linux-2.6.27-720/include/linux/netdevice.h
1233 --- linux-2.6.27-710/include/linux/netdevice.h  2009-05-04 12:36:43.000000000 -0400
1234 +++ linux-2.6.27-720/include/linux/netdevice.h  2009-05-04 16:03:46.000000000 -0400
1235 @@ -735,6 +735,46 @@
1236         /* GARP */
1237         struct garp_port        *garp_port;
1238  
1239 +       /* Click polling support */
1240 +       /*
1241 +        * polling is < 0 if the device does not support polling, == 0 if the
1242 +        * device supports polling but interrupts are on, and > 0 if polling
1243 +        * is on.
1244 +        */
1245 +       int                     polling;
1246 +       int                     (*poll_on)(struct net_device *);
1247 +       int                     (*poll_off)(struct net_device *);
1248 +       /*
1249 +        * rx_poll returns to caller a linked list of sk_buff objects received
1250 +        * by the device. on call, the want argument specifies the number of
1251 +        * packets wanted. on return, the want argument specifies the number
1252 +        * of packets actually returned.
1253 +        */
1254 +       struct sk_buff *        (*rx_poll)(struct net_device*, int *want);
1255 +       /* refill rx dma ring using the given sk_buff list. returns 0 if
1256 +        * successful, or if there are more entries need to be cleaned,
1257 +        * returns the number of dirty entries. the ptr to the sk_buff list is
1258 +        * updated by the driver to point to any unused skbs.
1259 +        */
1260 +       int                     (*rx_refill)(struct net_device*, struct sk_buff**);
1261 +       /*
1262 +        * place sk_buff on the transmit ring. returns 0 if successful, 1
1263 +        * otherwise
1264 +        */
1265 +       int                     (*tx_queue)(struct net_device *, struct sk_buff *);
1266 +       /*
1267 +        * clean tx dma ring. returns the list of skb objects cleaned
1268 +        */
1269 +       struct sk_buff*         (*tx_clean)(struct net_device *);
1270 +       /*
1271 +        * start transmission. returns 0 if successful, 1 otherwise
1272 +        */
1273 +       int                     (*tx_start)(struct net_device *);
1274 +       /*
1275 +        * tell device the end of a batch of packets
1276 +        */
1277 +       int                     (*tx_eob)(struct net_device *);
1278 +
1279         /* class/net/name entry */
1280         struct device           dev;
1281         /* space for optional statistics and wireless sysfs groups */
1282 @@ -919,6 +959,11 @@
1283  extern int             dev_queue_xmit(struct sk_buff *skb);
1284  extern int             register_netdevice(struct net_device *dev);
1285  extern void            unregister_netdevice(struct net_device *dev);
1286 +
1287 +extern int             register_net_in(struct notifier_block *nb); /* Click */
1288 +extern int             unregister_net_in(struct notifier_block *nb); /* Click */
1289 +extern int             ptype_dispatch(struct sk_buff *skb, unsigned short type); /* Click */
1290 +
1291  extern void            free_netdev(struct net_device *dev);
1292  extern void            synchronize_net(void);
1293  extern int             register_netdevice_notifier(struct notifier_block *nb);
1294 @@ -1217,7 +1262,10 @@
1295  extern int             netif_rx(struct sk_buff *skb);
1296  extern int             netif_rx_ni(struct sk_buff *skb);
1297  #define HAVE_NETIF_RECEIVE_SKB 1
1298 -extern int             netif_receive_skb(struct sk_buff *skb);
1299 +//extern int           netif_receive_skb(struct sk_buff *skb);
1300 +#define HAVE___NETIF_RECEIVE_SKB 1
1301 +extern int             __netif_receive_skb(struct sk_buff *skb, unsigned short protocol, int ignore_notifiers);
1302 +
1303  extern void            netif_nit_deliver(struct sk_buff *skb);
1304  extern int             dev_valid_name(const char *name);
1305  extern int             dev_ioctl(struct net *net, unsigned int cmd, void __user *);
1306 @@ -1358,6 +1406,11 @@
1307  
1308  extern void netif_device_attach(struct net_device *dev);
1309  
1310 +static inline int netif_receive_skb(struct sk_buff *skb)
1311 +{
1312 +       return __netif_receive_skb(skb, skb->protocol, 0);
1313 +}
1314 +
1315  /*
1316   * Network interface message level settings
1317   */
1318 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/netlink.h linux-2.6.27-720/include/linux/netlink.h
1319 --- linux-2.6.27-710/include/linux/netlink.h    2008-10-09 18:13:53.000000000 -0400
1320 +++ linux-2.6.27-720/include/linux/netlink.h    2009-05-04 16:03:46.000000000 -0400
1321 @@ -242,7 +242,7 @@
1322         nlh->nlmsg_flags = flags;
1323         nlh->nlmsg_pid = pid;
1324         nlh->nlmsg_seq = seq;
1325 -       memset(NLMSG_DATA(nlh) + len, 0, NLMSG_ALIGN(size) - size);
1326 +       memset((char*) NLMSG_DATA(nlh) + len, 0, NLMSG_ALIGN(size) - size);
1327         return nlh;
1328  }
1329  
1330 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/page-flags.h linux-2.6.27-720/include/linux/page-flags.h
1331 --- linux-2.6.27-710/include/linux/page-flags.h 2008-10-09 18:13:53.000000000 -0400
1332 +++ linux-2.6.27-720/include/linux/page-flags.h 2009-05-04 16:03:46.000000000 -0400
1333 @@ -174,8 +174,10 @@
1334  PAGEFLAG(Pinned, pinned) TESTSCFLAG(Pinned, pinned)    /* Xen */
1335  PAGEFLAG(SavePinned, savepinned);                      /* Xen */
1336  PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved)
1337 +#ifndef __cplusplus
1338  PAGEFLAG(Private, private) __CLEARPAGEFLAG(Private, private)
1339         __SETPAGEFLAG(Private, private)
1340 +#endif
1341  
1342  __PAGEFLAG(SlobPage, slob_page)
1343  __PAGEFLAG(SlobFree, slob_free)
1344 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/posix_types.h linux-2.6.27-720/include/linux/posix_types.h
1345 --- linux-2.6.27-710/include/linux/posix_types.h        2008-10-09 18:13:53.000000000 -0400
1346 +++ linux-2.6.27-720/include/linux/posix_types.h        2009-05-04 16:03:46.000000000 -0400
1347 @@ -33,6 +33,7 @@
1348  #undef __FDMASK
1349  #define        __FDMASK(d)     (1UL << ((d) % __NFDBITS))
1350  
1351 +
1352  typedef struct {
1353         unsigned long fds_bits [__FDSET_LONGS];
1354  } __kernel_fd_set;
1355 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/prefetch.h linux-2.6.27-720/include/linux/prefetch.h
1356 --- linux-2.6.27-710/include/linux/prefetch.h   2008-10-09 18:13:53.000000000 -0400
1357 +++ linux-2.6.27-720/include/linux/prefetch.h   2009-05-04 16:03:46.000000000 -0400
1358 @@ -54,9 +54,9 @@
1359  {
1360  #ifdef ARCH_HAS_PREFETCH
1361         char *cp;
1362 -       char *end = addr + len;
1363 +       char *end = (char*)(addr) + len;
1364  
1365 -       for (cp = addr; cp < end; cp += PREFETCH_STRIDE)
1366 +       for (cp = (char*)(addr); cp < end; cp += PREFETCH_STRIDE)
1367                 prefetch(cp);
1368  #endif
1369  }
1370 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/proc_fs.h linux-2.6.27-720/include/linux/proc_fs.h
1371 --- linux-2.6.27-710/include/linux/proc_fs.h    2009-05-04 12:36:01.000000000 -0400
1372 +++ linux-2.6.27-720/include/linux/proc_fs.h    2009-05-04 16:03:46.000000000 -0400
1373 @@ -315,7 +315,7 @@
1374  
1375  static inline struct net *PDE_NET(struct proc_dir_entry *pde)
1376  {
1377 -       return pde->parent->data;
1378 +       return (struct net *) pde->parent->data;
1379  }
1380  
1381  struct proc_maps_private {
1382 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/rculist.h linux-2.6.27-720/include/linux/rculist.h
1383 --- linux-2.6.27-710/include/linux/rculist.h    2008-10-09 18:13:53.000000000 -0400
1384 +++ linux-2.6.27-720/include/linux/rculist.h    2009-05-04 16:03:46.000000000 -0400
1385 @@ -94,7 +94,7 @@
1386  static inline void list_del_rcu(struct list_head *entry)
1387  {
1388         __list_del(entry->prev, entry->next);
1389 -       entry->prev = LIST_POISON2;
1390 +       entry->prev = (struct list_head *) LIST_POISON2;
1391  }
1392  
1393  /**
1394 @@ -140,7 +140,7 @@
1395         new->prev = old->prev;
1396         rcu_assign_pointer(new->prev->next, new);
1397         new->next->prev = new;
1398 -       old->prev = LIST_POISON2;
1399 +       old->prev = (struct list_head *) LIST_POISON2;
1400  }
1401  
1402  /**
1403 @@ -271,7 +271,7 @@
1404  static inline void hlist_del_rcu(struct hlist_node *n)
1405  {
1406         __hlist_del(n);
1407 -       n->pprev = LIST_POISON2;
1408 +       n->pprev = (struct hlist_node **) LIST_POISON2;
1409  }
1410  
1411  /**
1412 @@ -291,7 +291,7 @@
1413         rcu_assign_pointer(*new->pprev, new);
1414         if (next)
1415                 new->next->pprev = &new->next;
1416 -       old->pprev = LIST_POISON2;
1417 +       old->pprev = (struct hlist_node **) LIST_POISON2;
1418  }
1419  
1420  /**
1421 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/reiserfs_fs_sb.h linux-2.6.27-720/include/linux/reiserfs_fs_sb.h
1422 --- linux-2.6.27-710/include/linux/reiserfs_fs_sb.h     2009-05-04 12:36:01.000000000 -0400
1423 +++ linux-2.6.27-720/include/linux/reiserfs_fs_sb.h     2009-05-04 16:03:46.000000000 -0400
1424 @@ -337,8 +337,7 @@
1425         } journal;
1426  } reiserfs_proc_info_data_t;
1427  #else
1428 -typedef struct reiserfs_proc_info_data {
1429 -} reiserfs_proc_info_data_t;
1430 +typedef EMPTY_STRUCT_DECL(reiserfs_proc_info_data) reiserfs_proc_info_data_t;
1431  #endif
1432  
1433  /* reiserfs union of in-core super block data */
1434 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/rtnetlink.h linux-2.6.27-720/include/linux/rtnetlink.h
1435 --- linux-2.6.27-710/include/linux/rtnetlink.h  2008-10-09 18:13:53.000000000 -0400
1436 +++ linux-2.6.27-720/include/linux/rtnetlink.h  2009-05-04 16:03:46.000000000 -0400
1437 @@ -727,7 +727,7 @@
1438         rta = (struct rtattr*)skb_put(skb, RTA_ALIGN(size));
1439         rta->rta_type = attrtype;
1440         rta->rta_len = size;
1441 -       memset(RTA_DATA(rta) + attrlen, 0, RTA_ALIGN(size) - size);
1442 +       memset((char*) RTA_DATA(rta) + attrlen, 0, RTA_ALIGN(size) - size);
1443         return rta;
1444  }
1445  
1446 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/scatterlist.h linux-2.6.27-720/include/linux/scatterlist.h
1447 --- linux-2.6.27-710/include/linux/scatterlist.h        2008-10-09 18:13:53.000000000 -0400
1448 +++ linux-2.6.27-720/include/linux/scatterlist.h        2009-05-04 16:03:46.000000000 -0400
1449 @@ -196,7 +196,7 @@
1450   **/
1451  static inline void *sg_virt(struct scatterlist *sg)
1452  {
1453 -       return page_address(sg_page(sg)) + sg->offset;
1454 +       return (char *) page_address(sg_page(sg)) + sg->offset;
1455  }
1456  
1457  struct scatterlist *sg_next(struct scatterlist *);
1458 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/sched.h linux-2.6.27-720/include/linux/sched.h
1459 --- linux-2.6.27-710/include/linux/sched.h      2009-05-04 12:36:01.000000000 -0400
1460 +++ linux-2.6.27-720/include/linux/sched.h      2009-05-04 16:03:46.000000000 -0400
1461 @@ -242,7 +242,12 @@
1462  
1463  extern void sched_init(void);
1464  extern void sched_init_smp(void);
1465 +#ifdef __cplusplus
1466 +asmlinkage void schedule_tail(struct task_struct *prev);
1467 +#else
1468  extern asmlinkage void schedule_tail(struct task_struct *prev);
1469 +#endif
1470 +
1471  extern void init_idle(struct task_struct *idle, int cpu);
1472  extern void init_idle_bootup_task(struct task_struct *idle);
1473  
1474 @@ -1977,7 +1982,7 @@
1475  
1476  static inline unsigned long *end_of_stack(struct task_struct *p)
1477  {
1478 -       return (unsigned long *)(task_thread_info(p) + 1);
1479 +       return (unsigned long *)((char *) task_thread_info(p) + 1);
1480  }
1481  
1482  #endif
1483 @@ -1986,7 +1991,7 @@
1484  {
1485         void *stack = task_stack_page(current);
1486  
1487 -       return (obj >= stack) && (obj < (stack + THREAD_SIZE));
1488 +       return (obj >= stack) && ((char *) obj < ((char *) stack + THREAD_SIZE));
1489  }
1490  
1491  extern void thread_info_cache_init(void);
1492 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/seccomp.h linux-2.6.27-720/include/linux/seccomp.h
1493 --- linux-2.6.27-710/include/linux/seccomp.h    2008-10-09 18:13:53.000000000 -0400
1494 +++ linux-2.6.27-720/include/linux/seccomp.h    2009-05-04 16:03:46.000000000 -0400
1495 @@ -21,7 +21,7 @@
1496  
1497  #else /* CONFIG_SECCOMP */
1498  
1499 -typedef struct { } seccomp_t;
1500 +typedef EMPTY_STRUCT_DECL(/* unnamed */) seccomp_t;
1501  
1502  #define secure_computing(x) do { } while (0)
1503  
1504 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/security.h linux-2.6.27-720/include/linux/security.h
1505 --- linux-2.6.27-710/include/linux/security.h   2008-10-09 18:13:53.000000000 -0400
1506 +++ linux-2.6.27-720/include/linux/security.h   2009-05-04 16:03:46.000000000 -0400
1507 @@ -2427,7 +2427,7 @@
1508  static inline struct dentry *securityfs_create_dir(const char *name,
1509                                         struct dentry *parent)
1510  {
1511 -       return ERR_PTR(-ENODEV);
1512 +       return (struct dentry *) ERR_PTR(-ENODEV);
1513  }
1514  
1515  static inline struct dentry *securityfs_create_file(const char *name,
1516 @@ -2436,7 +2436,7 @@
1517                                                 void *data,
1518                                                 const struct file_operations *fops)
1519  {
1520 -       return ERR_PTR(-ENODEV);
1521 +       return (struct dentry *) ERR_PTR(-ENODEV);
1522  }
1523  
1524  static inline void securityfs_remove(struct dentry *dentry)
1525 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/semaphore.h linux-2.6.27-720/include/linux/semaphore.h
1526 --- linux-2.6.27-710/include/linux/semaphore.h  2008-10-09 18:13:53.000000000 -0400
1527 +++ linux-2.6.27-720/include/linux/semaphore.h  2009-05-04 16:03:46.000000000 -0400
1528 @@ -19,12 +19,21 @@
1529         struct list_head        wait_list;
1530  };
1531  
1532 +#ifdef __cplusplus
1533 +#define __SEMAPHORE_INITIALIZER(name, n)                               \
1534 +({ struct semaphore duh;                                                                       \
1535 +       duh.lock                = __SPIN_LOCK_UNLOCKED((name).lock),            \
1536 +       duh.count               = n,                                            \
1537 +       duh.wait_list   = LIST_HEAD_INIT((name).wait_list),             \
1538 +    duh;})
1539 +#else
1540  #define __SEMAPHORE_INITIALIZER(name, n)                               \
1541  {                                                                      \
1542         .lock           = __SPIN_LOCK_UNLOCKED((name).lock),            \
1543         .count          = n,                                            \
1544         .wait_list      = LIST_HEAD_INIT((name).wait_list),             \
1545  }
1546 +#endif
1547  
1548  #define DECLARE_MUTEX(name)    \
1549         struct semaphore name = __SEMAPHORE_INITIALIZER(name, 1)
1550 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/skbuff.h linux-2.6.27-720/include/linux/skbuff.h
1551 --- linux-2.6.27-710/include/linux/skbuff.h     2009-05-04 12:36:07.000000000 -0400
1552 +++ linux-2.6.27-720/include/linux/skbuff.h     2009-05-04 16:03:46.000000000 -0400
1553 @@ -194,6 +194,12 @@
1554  typedef unsigned char *sk_buff_data_t;
1555  #endif
1556  
1557 +/* Click: overload sk_buff.pkt_type to contain information about whether
1558 +   a packet is clean. Clean packets have the following fields zero:
1559 +   dst, destructor, pkt_bridged, prev, list, sk, security, priority. */
1560 +#define PACKET_CLEAN           128             /* Is packet clean? */
1561 +#define PACKET_TYPE_MASK       127             /* Actual packet type */
1562 +
1563  /** 
1564   *     struct sk_buff - socket buffer
1565   *     @next: Next buffer in list
1566 @@ -377,6 +383,7 @@
1567                                 gfp_t priority);
1568  extern struct sk_buff *pskb_copy(struct sk_buff *skb,
1569                                  gfp_t gfp_mask);
1570 +extern struct sk_buff *skb_recycle(struct sk_buff *skb);
1571  extern int            pskb_expand_head(struct sk_buff *skb,
1572                                         int nhead, int ntail,
1573                                         gfp_t gfp_mask);
1574 @@ -1326,7 +1333,7 @@
1575  }
1576  
1577  static inline int skb_add_data(struct sk_buff *skb,
1578 -                              char __user *from, int copy)
1579 +                              unsigned char __user *from, int copy)
1580  {
1581         const int off = skb->len;
1582  
1583 @@ -1402,7 +1409,7 @@
1584                                       const void *start, unsigned int len)
1585  {
1586         if (skb->ip_summed == CHECKSUM_COMPLETE)
1587 -               skb->csum = csum_sub(skb->csum, csum_partial(start, len, 0));
1588 +               skb->csum = csum_sub(skb->csum, csum_partial((const unsigned char *) start, len, 0));
1589  }
1590  
1591  unsigned char *skb_pull_rcsum(struct sk_buff *skb, unsigned int len);
1592 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/spinlock.h linux-2.6.27-720/include/linux/spinlock.h
1593 --- linux-2.6.27-710/include/linux/spinlock.h   2008-10-09 18:13:53.000000000 -0400
1594 +++ linux-2.6.27-720/include/linux/spinlock.h   2009-05-04 16:03:46.000000000 -0400
1595 @@ -54,6 +54,7 @@
1596  #include <linux/kernel.h>
1597  #include <linux/stringify.h>
1598  #include <linux/bottom_half.h>
1599 +#include <linux/types.h>
1600  
1601  #include <asm/system.h>
1602  
1603 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/spinlock_types.h linux-2.6.27-720/include/linux/spinlock_types.h
1604 --- linux-2.6.27-710/include/linux/spinlock_types.h     2008-10-09 18:13:53.000000000 -0400
1605 +++ linux-2.6.27-720/include/linux/spinlock_types.h     2009-05-04 16:03:46.000000000 -0400
1606 @@ -51,37 +51,47 @@
1607  
1608  #define SPINLOCK_OWNER_INIT    ((void *)-1L)
1609  
1610 +#if defined(CONFIG_PREEMPT) && defined(CONFIG_SMP)
1611 +# define SPINLOCK_BREAK_LOCK_INIT 0,
1612 +#else
1613 +# define SPINLOCK_BREAK_LOCK_INIT
1614 +#endif
1615 +
1616  #ifdef CONFIG_DEBUG_LOCK_ALLOC
1617 -# define SPIN_DEP_MAP_INIT(lockname)   .dep_map = { .name = #lockname }
1618 +# define SPIN_DEP_MAP_INIT(lockname)   { 0, 0, #lockname }
1619  #else
1620  # define SPIN_DEP_MAP_INIT(lockname)
1621  #endif
1622  
1623  #ifdef CONFIG_DEBUG_LOCK_ALLOC
1624 -# define RW_DEP_MAP_INIT(lockname)     .dep_map = { .name = #lockname }
1625 +# define RW_DEP_MAP_INIT(lockname)     { 0, 0, #lockname }
1626  #else
1627  # define RW_DEP_MAP_INIT(lockname)
1628  #endif
1629  
1630  #ifdef CONFIG_DEBUG_SPINLOCK
1631  # define __SPIN_LOCK_UNLOCKED(lockname)                                        \
1632 -       (spinlock_t)    {       .raw_lock = __RAW_SPIN_LOCK_UNLOCKED,   \
1633 -                               .magic = SPINLOCK_MAGIC,                \
1634 -                               .owner = SPINLOCK_OWNER_INIT,           \
1635 -                               .owner_cpu = -1,                        \
1636 +       (spinlock_t)    { /*raw_lock*/  __RAW_SPIN_LOCK_UNLOCKED,       \
1637 +                         /*break_lock*/ SPINLOCK_BREAK_LOCK_INIT       \
1638 +                         /*magic*/     SPINLOCK_MAGIC,                 \
1639 +                         /*owner_cpu*/ -1,                             \
1640 +                         /*owner*/     SPINLOCK_OWNER_INIT,            \
1641                                 SPIN_DEP_MAP_INIT(lockname) }
1642  #define __RW_LOCK_UNLOCKED(lockname)                                   \
1643 -       (rwlock_t)      {       .raw_lock = __RAW_RW_LOCK_UNLOCKED,     \
1644 -                               .magic = RWLOCK_MAGIC,                  \
1645 -                               .owner = SPINLOCK_OWNER_INIT,           \
1646 -                               .owner_cpu = -1,                        \
1647 +       (rwlock_t)      { /*raw_lock*/  __RAW_RW_LOCK_UNLOCKED,         \
1648 +                         /*break_lock*/ SPINLOCK_BREAK_LOCK_INIT       \
1649 +                         /*magic*/     RWLOCK_MAGIC,                   \
1650 +                         /*owner_cpu*/ -1,                             \
1651 +                         /*owner*/     SPINLOCK_OWNER_INIT,            \
1652                                 RW_DEP_MAP_INIT(lockname) }
1653  #else
1654  # define __SPIN_LOCK_UNLOCKED(lockname) \
1655 -       (spinlock_t)    {       .raw_lock = __RAW_SPIN_LOCK_UNLOCKED,   \
1656 +       (spinlock_t)    { /*raw_lock*/  __RAW_SPIN_LOCK_UNLOCKED,       \
1657 +                         /*break_lock*/ SPINLOCK_BREAK_LOCK_INIT       \
1658                                 SPIN_DEP_MAP_INIT(lockname) }
1659  #define __RW_LOCK_UNLOCKED(lockname) \
1660 -       (rwlock_t)      {       .raw_lock = __RAW_RW_LOCK_UNLOCKED,     \
1661 +       (rwlock_t)      { /*raw_lock*/  __RAW_RW_LOCK_UNLOCKED,         \
1662 +                         /*break_lock*/ SPINLOCK_BREAK_LOCK_INIT       \
1663                                 RW_DEP_MAP_INIT(lockname) }
1664  #endif
1665  
1666 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/stddef.h linux-2.6.27-720/include/linux/stddef.h
1667 --- linux-2.6.27-710/include/linux/stddef.h     2008-10-09 18:13:53.000000000 -0400
1668 +++ linux-2.6.27-720/include/linux/stddef.h     2009-05-04 16:03:46.000000000 -0400
1669 @@ -11,11 +11,12 @@
1670  #endif
1671  
1672  #ifdef __KERNEL__
1673 -
1674 +#ifndef __cplusplus
1675  enum {
1676         false   = 0,
1677         true    = 1
1678  };
1679 +#endif
1680  
1681  #undef offsetof
1682  #ifdef __compiler_offsetof
1683 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/sysctl.h linux-2.6.27-720/include/linux/sysctl.h
1684 --- linux-2.6.27-710/include/linux/sysctl.h     2009-05-04 12:36:06.000000000 -0400
1685 +++ linux-2.6.27-720/include/linux/sysctl.h     2009-05-04 16:03:46.000000000 -0400
1686 @@ -985,7 +985,7 @@
1687                          void __user *oldval, size_t __user *oldlenp,
1688                          void __user *newval, size_t newlen);
1689  
1690 -typedef int proc_handler (struct ctl_table *ctl, int write, struct file * filp,
1691 +typedef int proc_handler_t (struct ctl_table *ctl, int write, struct file * filp,
1692                           void __user *buffer, size_t *lenp, loff_t *ppos);
1693  
1694  extern int proc_dostring(struct ctl_table *, int, struct file *,
1695 @@ -1066,7 +1066,7 @@
1696         mode_t mode;
1697         struct ctl_table *child;
1698         struct ctl_table *parent;       /* Automatically set */
1699 -       proc_handler *proc_handler;     /* Callback for text formatting */
1700 +       proc_handler_t *proc_handler;   /* Callback for text formatting */
1701         ctl_handler *strategy;          /* Callback function for all r/w */
1702         void *extra1;
1703         void *extra2;
1704 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/textsearch.h linux-2.6.27-720/include/linux/textsearch.h
1705 --- linux-2.6.27-710/include/linux/textsearch.h 2008-10-09 18:13:53.000000000 -0400
1706 +++ linux-2.6.27-720/include/linux/textsearch.h 2009-05-04 16:03:46.000000000 -0400
1707 @@ -162,9 +162,9 @@
1708  {
1709         struct ts_config *conf;
1710  
1711 -       conf = kzalloc(TS_PRIV_ALIGN(sizeof(*conf)) + payload, gfp_mask);
1712 +       conf = (struct ts_config *) kzalloc(TS_PRIV_ALIGN(sizeof(*conf)) + payload, gfp_mask);
1713         if (conf == NULL)
1714 -               return ERR_PTR(-ENOMEM);
1715 +               return (struct ts_config *) ERR_PTR(-ENOMEM);
1716  
1717         return conf;
1718  }
1719 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/types.h linux-2.6.27-720/include/linux/types.h
1720 --- linux-2.6.27-710/include/linux/types.h      2009-05-04 12:36:01.000000000 -0400
1721 +++ linux-2.6.27-720/include/linux/types.h      2009-05-04 16:03:46.000000000 -0400
1722 @@ -30,7 +30,9 @@
1723  typedef __kernel_mqd_t         mqd_t;
1724  
1725  #ifdef __KERNEL__
1726 +#ifndef __cplusplus
1727  typedef _Bool                  bool;
1728 +#endif
1729  
1730  typedef __kernel_uid32_t       uid_t;
1731  typedef __kernel_gid32_t       gid_t;
1732 @@ -209,4 +211,12 @@
1733  
1734  #endif /* __KERNEL__ */
1735  
1736 +/*
1737 + * Click: Macros for defining empty structures. Needed because GCC's C and C++
1738 + * compilers have different ABIs for empty structures.
1739 + */
1740 +
1741 +#define EMPTY_STRUCT_DECL(s) struct s { int gcc_is_buggy; }
1742 +#define EMPTY_STRUCT_INIT(s) (s) { 0 }
1743 +
1744  #endif /* _LINUX_TYPES_H */
1745 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/unwind.h linux-2.6.27-720/include/linux/unwind.h
1746 --- linux-2.6.27-710/include/linux/unwind.h     2008-10-09 18:13:53.000000000 -0400
1747 +++ linux-2.6.27-720/include/linux/unwind.h     2009-05-04 16:03:46.000000000 -0400
1748 @@ -14,7 +14,7 @@
1749  
1750  struct module;
1751  
1752 -struct unwind_frame_info {};
1753 +EMPTY_STRUCT_DECL(unwind_frame_info);
1754  
1755  static inline void unwind_init(void) {}
1756  static inline void unwind_setup(void) {}
1757 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/linux/wait.h linux-2.6.27-720/include/linux/wait.h
1758 --- linux-2.6.27-710/include/linux/wait.h       2008-10-09 18:13:53.000000000 -0400
1759 +++ linux-2.6.27-720/include/linux/wait.h       2009-05-04 16:03:46.000000000 -0400
1760 @@ -485,7 +485,7 @@
1761  static inline int wait_on_bit(void *word, int bit,
1762                                 int (*action)(void *), unsigned mode)
1763  {
1764 -       if (!test_bit(bit, word))
1765 +       if (!test_bit(bit, (volatile unsigned long *) word))
1766                 return 0;
1767         return out_of_line_wait_on_bit(word, bit, action, mode);
1768  }
1769 @@ -509,7 +509,7 @@
1770  static inline int wait_on_bit_lock(void *word, int bit,
1771                                 int (*action)(void *), unsigned mode)
1772  {
1773 -       if (!test_and_set_bit(bit, word))
1774 +       if (!test_and_set_bit(bit, (volatile unsigned long *) word))
1775                 return 0;
1776         return out_of_line_wait_on_bit_lock(word, bit, action, mode);
1777  }
1778 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/net/compat.h linux-2.6.27-720/include/net/compat.h
1779 --- linux-2.6.27-710/include/net/compat.h       2008-10-09 18:13:53.000000000 -0400
1780 +++ linux-2.6.27-720/include/net/compat.h       2009-05-04 16:03:46.000000000 -0400
1781 @@ -33,9 +33,9 @@
1782  
1783  extern int get_compat_msghdr(struct msghdr *, struct compat_msghdr __user *);
1784  extern int verify_compat_iovec(struct msghdr *, struct iovec *, struct sockaddr *, int);
1785 -extern asmlinkage long compat_sys_sendmsg(int,struct compat_msghdr __user *,unsigned);
1786 -extern asmlinkage long compat_sys_recvmsg(int,struct compat_msghdr __user *,unsigned);
1787 -extern asmlinkage long compat_sys_getsockopt(int, int, int, char __user *, int __user *);
1788 +asmlinkage long compat_sys_sendmsg(int,struct compat_msghdr __user *,unsigned);
1789 +asmlinkage long compat_sys_recvmsg(int,struct compat_msghdr __user *,unsigned);
1790 +asmlinkage long compat_sys_getsockopt(int, int, int, char __user *, int __user *);
1791  extern int put_cmsg_compat(struct msghdr*, int, int, int, void *);
1792  
1793  extern int cmsghdr_from_user_compat_to_kern(struct msghdr *, struct sock *, unsigned char *, int);
1794 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/net/neighbour.h linux-2.6.27-720/include/net/neighbour.h
1795 --- linux-2.6.27-710/include/net/neighbour.h    2008-10-09 18:13:53.000000000 -0400
1796 +++ linux-2.6.27-720/include/net/neighbour.h    2009-05-04 16:03:46.000000000 -0400
1797 @@ -275,7 +275,7 @@
1798                                                       struct neigh_parms *p,
1799                                                       int p_id, int pdev_id,
1800                                                       char *p_name,
1801 -                                                     proc_handler *proc_handler,
1802 +                                                     proc_handler_t *proc_handler,
1803                                                       ctl_handler *strategy);
1804  extern void                    neigh_sysctl_unregister(struct neigh_parms *p);
1805  
1806 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/net/netlink.h linux-2.6.27-720/include/net/netlink.h
1807 --- linux-2.6.27-710/include/net/netlink.h      2008-10-09 18:13:53.000000000 -0400
1808 +++ linux-2.6.27-720/include/net/netlink.h      2009-05-04 16:03:46.000000000 -0400
1809 @@ -315,7 +315,7 @@
1810  static inline struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh,
1811                                             int hdrlen)
1812  {
1813 -       unsigned char *data = nlmsg_data(nlh);
1814 +       unsigned char *data = (unsigned char *)  nlmsg_data(nlh);
1815         return (struct nlattr *) (data + NLMSG_ALIGN(hdrlen));
1816  }
1817  
1818 @@ -732,7 +732,7 @@
1819   */
1820  static inline struct nlattr *nla_find_nested(struct nlattr *nla, int attrtype)
1821  {
1822 -       return nla_find(nla_data(nla), nla_len(nla), attrtype);
1823 +       return nla_find((struct nlattr *) nla_data(nla), nla_len(nla), attrtype);
1824  }
1825  
1826  /**
1827 @@ -748,7 +748,7 @@
1828                                    struct nlattr *nla,
1829                                    const struct nla_policy *policy)
1830  {
1831 -       return nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy);
1832 +       return nla_parse(tb, maxtype, (struct nlattr *) nla_data(nla), nla_len(nla), policy);
1833  }
1834  
1835  /**
1836 @@ -775,7 +775,7 @@
1837         if (nested_len < 0)
1838                 return -EINVAL;
1839         if (nested_len >= nla_attr_size(0))
1840 -               return nla_parse(tb, maxtype, nla_data(nla) + NLA_ALIGN(len),
1841 +               return nla_parse(tb, maxtype, (struct nlattr *) nla_data(nla) + NLA_ALIGN(len),
1842                                  nested_len, policy);
1843         memset(tb, 0, sizeof(struct nlattr *) * (maxtype + 1));
1844         return 0;
1845 @@ -1069,7 +1069,7 @@
1846   */
1847  static inline int nla_nest_compat_end(struct sk_buff *skb, struct nlattr *start)
1848  {
1849 -       struct nlattr *nest = (void *)start + NLMSG_ALIGN(start->nla_len);
1850 +       struct nlattr *nest = (struct nlattr *) (char *)start + NLMSG_ALIGN(start->nla_len);
1851  
1852         start->nla_len = skb_tail_pointer(skb) - (unsigned char *)start;
1853         return nla_nest_end(skb, nest);
1854 @@ -1103,7 +1103,7 @@
1855  static inline int nla_validate_nested(struct nlattr *start, int maxtype,
1856                                       const struct nla_policy *policy)
1857  {
1858 -       return nla_validate(nla_data(start), nla_len(start), maxtype, policy);
1859 +       return nla_validate((struct nlattr *) nla_data(start), nla_len(start), maxtype, policy);
1860  }
1861  
1862  /**
1863 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/net/pkt_cls.h linux-2.6.27-720/include/net/pkt_cls.h
1864 --- linux-2.6.27-710/include/net/pkt_cls.h      2008-10-09 18:13:53.000000000 -0400
1865 +++ linux-2.6.27-720/include/net/pkt_cls.h      2009-05-04 16:03:46.000000000 -0400
1866 @@ -302,9 +302,7 @@
1867  
1868  #else /* CONFIG_NET_EMATCH */
1869  
1870 -struct tcf_ematch_tree
1871 -{
1872 -};
1873 +EMPTY_STRUCT_DECL(tcf_ematch_tree);
1874  
1875  #define tcf_em_tree_validate(tp, tb, t) ((void)(t), 0)
1876  #define tcf_em_tree_destroy(tp, t) do { (void)(t); } while(0)
1877 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/net/request_sock.h linux-2.6.27-720/include/net/request_sock.h
1878 --- linux-2.6.27-710/include/net/request_sock.h 2008-10-09 18:13:53.000000000 -0400
1879 +++ linux-2.6.27-720/include/net/request_sock.h 2009-05-04 16:03:46.000000000 -0400
1880 @@ -60,7 +60,7 @@
1881  
1882  static inline struct request_sock *reqsk_alloc(const struct request_sock_ops *ops)
1883  {
1884 -       struct request_sock *req = kmem_cache_alloc(ops->slab, GFP_ATOMIC);
1885 +       struct request_sock *req = (struct request_sock *) kmem_cache_alloc(ops->slab, GFP_ATOMIC);
1886  
1887         if (req != NULL)
1888                 req->rsk_ops = ops;
1889 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/net/route.h linux-2.6.27-720/include/net/route.h
1890 --- linux-2.6.27-710/include/net/route.h        2009-05-04 12:36:01.000000000 -0400
1891 +++ linux-2.6.27-720/include/net/route.h        2009-05-04 16:03:46.000000000 -0400
1892 @@ -161,6 +161,16 @@
1893                                    __be16 sport, __be16 dport, struct sock *sk,
1894                                    int flags)
1895  {
1896 +#ifdef __cplusplus
1897 +       struct flowi fl;
1898 +       fl.oif = oif;
1899 +       fl.nl_u.ip4_u.daddr = dst;
1900 +       fl.nl_u.ip4_u.saddr = src;
1901 +       fl.nl_u.ip4_u.tos = tos;
1902 +       fl.proto = protocol;
1903 +       fl.uli_u.ports.sport = sport;
1904 +       fl.uli_u.ports.dport = dport;
1905 +#else
1906         struct flowi fl = { .oif = oif,
1907                             .mark = sk->sk_mark,
1908                             .nl_u = { .ip4_u = { .daddr = dst,
1909 @@ -170,6 +180,7 @@
1910                             .uli_u = { .ports =
1911                                        { .sport = sport,
1912                                          .dport = dport } } };
1913 +#endif
1914  
1915         int err;
1916         struct net *net = sock_net(sk);
1917 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/net/sock.h linux-2.6.27-720/include/net/sock.h
1918 --- linux-2.6.27-710/include/net/sock.h 2009-05-04 12:36:01.000000000 -0400
1919 +++ linux-2.6.27-720/include/net/sock.h 2009-05-04 16:03:46.000000000 -0400
1920 @@ -1104,13 +1104,13 @@
1921  {
1922         if (skb->ip_summed == CHECKSUM_NONE) {
1923                 int err = 0;
1924 -               __wsum csum = csum_and_copy_from_user(from,
1925 -                                                    page_address(page) + off,
1926 +               __wsum csum = csum_and_copy_from_user((unsigned char *) from,
1927 +                                                    (unsigned char *) page_address(page) + off,
1928                                                             copy, 0, &err);
1929                 if (err)
1930                         return err;
1931                 skb->csum = csum_block_add(skb->csum, csum, skb->len);
1932 -       } else if (copy_from_user(page_address(page) + off, from, copy))
1933 +       } else if (copy_from_user((char *) page_address(page) + off, from, copy))
1934                 return -EFAULT;
1935  
1936         skb->len             += copy;
1937 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/include/rdma/ib_user_verbs.h linux-2.6.27-720/include/rdma/ib_user_verbs.h
1938 --- linux-2.6.27-710/include/rdma/ib_user_verbs.h       2008-10-09 18:13:53.000000000 -0400
1939 +++ linux-2.6.27-720/include/rdma/ib_user_verbs.h       2009-05-04 16:03:47.000000000 -0400
1940 @@ -504,8 +504,7 @@
1941         __u64 driver_data[0];
1942  };
1943  
1944 -struct ib_uverbs_modify_qp_resp {
1945 -};
1946 +EMPTY_STRUCT_DECL(ib_uverbs_modify_qp_resp);
1947  
1948  struct ib_uverbs_destroy_qp {
1949         __u64 response;
1950 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/kernel/sched.c linux-2.6.27-720/kernel/sched.c
1951 --- linux-2.6.27-710/kernel/sched.c     2009-05-04 12:36:01.000000000 -0400
1952 +++ linux-2.6.27-720/kernel/sched.c     2009-05-04 16:03:47.000000000 -0400
1953 @@ -6298,7 +6298,7 @@
1954  static void
1955  set_table_entry(struct ctl_table *entry,
1956                 const char *procname, void *data, int maxlen,
1957 -               mode_t mode, proc_handler *proc_handler)
1958 +               mode_t mode, proc_handler_t *proc_handler)
1959  {
1960         entry->procname = procname;
1961         entry->data = data;
1962 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/net/core/dev.c linux-2.6.27-720/net/core/dev.c
1963 --- linux-2.6.27-710/net/core/dev.c     2009-05-04 12:36:43.000000000 -0400
1964 +++ linux-2.6.27-720/net/core/dev.c     2009-05-04 16:05:12.000000000 -0400
1965 @@ -252,6 +252,9 @@
1966         write_unlock_bh(&dev_base_lock);
1967  }
1968  
1969 +/* Click: input packet handlers, might steal packets from net_rx_action. */
1970 +static RAW_NOTIFIER_HEAD(net_in_chain);
1971 +
1972  /*
1973   *     Our notifier list
1974   */
1975 @@ -2021,6 +2024,31 @@
1976         return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
1977  }
1978  
1979 +
1980 +/*
1981 + * Click: Allow Click to ask to intercept input packets.
1982 + */
1983 +int
1984 +register_net_in(struct notifier_block *nb)
1985 +{
1986 +       int err;
1987 +       rtnl_lock();
1988 +       err = raw_notifier_chain_register(&net_in_chain, nb);
1989 +       rtnl_unlock();
1990 +       return err;
1991 +}
1992 +
1993 +int
1994 +unregister_net_in(struct notifier_block *nb)
1995 +{
1996 +       int err;
1997 +       rtnl_lock();
1998 +       err = raw_notifier_chain_unregister(&net_in_chain, nb);
1999 +       rtnl_unlock();
2000 +       return err;
2001 +}
2002 +
2003 +
2004  #if defined(CONFIG_BRIDGE) || defined (CONFIG_BRIDGE_MODULE)
2005  /* These hooks defined here for ATM */
2006  struct net_bridge;
2007 @@ -2191,14 +2219,16 @@
2008   *     NET_RX_SUCCESS: no congestion
2009   *     NET_RX_DROP: packet was dropped
2010   */
2011 -int netif_receive_skb(struct sk_buff *skb)
2012 +
2013 +int __netif_receive_skb(struct sk_buff *skb, unsigned short type, int notifier_data)
2014 +//int netif_receive_skb(struct sk_buff *skb)
2015  {
2016         struct packet_type *ptype, *pt_prev;
2017         struct net_device *orig_dev;
2018         struct net_device *null_or_orig;
2019         int ret = NET_RX_DROP;
2020         int *cur_elevator = &__get_cpu_var(sknid_elevator);
2021 -       __be16 type;
2022 +       //__be16 type;
2023  
2024         *cur_elevator = 0;
2025  
2026 @@ -2227,6 +2257,14 @@
2027         skb_reset_transport_header(skb);
2028         skb->mac_len = skb->network_header - skb->mac_header;
2029  
2030 +       /* Click: may want to steal the packet */
2031 +       if (notifier_data >= 0
2032 +           && raw_notifier_call_chain(&net_in_chain,
2033 +                                  notifier_data,
2034 +                                  skb) & NOTIFY_STOP_MASK) {
2035 +               return ret;
2036 +       }
2037
2038         pt_prev = NULL;
2039  
2040         rcu_read_lock();
2041 @@ -2345,7 +2383,8 @@
2042                 }
2043                 local_irq_enable();
2044  
2045 -               netif_receive_skb(skb);
2046 +               __netif_receive_skb(skb, skb->protocol, skb_queue_len(&queue->input_pkt_queue));
2047 +//XXX          netif_receive_skb(skb);
2048         } while (++work < quota && jiffies == start_time);
2049  
2050         return work;
2051 @@ -4898,6 +4937,7 @@
2052  EXPORT_SYMBOL(dev_get_by_index);
2053  EXPORT_SYMBOL(dev_get_by_name);
2054  EXPORT_SYMBOL(dev_open);
2055 +EXPORT_SYMBOL(dev_ioctl);
2056  EXPORT_SYMBOL(dev_queue_xmit);
2057  EXPORT_SYMBOL(dev_remove_pack);
2058  EXPORT_SYMBOL(dev_set_allmulti);
2059 @@ -4910,10 +4950,16 @@
2060  EXPORT_SYMBOL(netdev_set_master);
2061  EXPORT_SYMBOL(netdev_state_change);
2062  EXPORT_SYMBOL(netif_receive_skb);
2063 +EXPORT_SYMBOL(__netif_receive_skb);
2064  EXPORT_SYMBOL(netif_rx);
2065  EXPORT_SYMBOL(register_gifconf);
2066  EXPORT_SYMBOL(register_netdevice);
2067  EXPORT_SYMBOL(register_netdevice_notifier);
2068 +
2069 +/* Click */
2070 +EXPORT_SYMBOL(register_net_in);
2071 +EXPORT_SYMBOL(unregister_net_in);
2072 +
2073  EXPORT_SYMBOL(skb_checksum_help);
2074  EXPORT_SYMBOL(synchronize_net);
2075  EXPORT_SYMBOL(unregister_netdevice);
2076 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/net/core/dev.c.rej linux-2.6.27-720/net/core/dev.c.rej
2077 --- linux-2.6.27-710/net/core/dev.c.rej 1969-12-31 19:00:00.000000000 -0500
2078 +++ linux-2.6.27-720/net/core/dev.c.rej 2009-05-04 16:03:47.000000000 -0400
2079 @@ -0,0 +1,30 @@
2080 +***************
2081 +*** 2187,2199 ****
2082 +   *   NET_RX_SUCCESS: no congestion
2083 +   *   NET_RX_DROP: packet was dropped
2084 +   */
2085 +- int netif_receive_skb(struct sk_buff *skb)
2086 +  {
2087 +       struct packet_type *ptype, *pt_prev;
2088 +       struct net_device *orig_dev;
2089 +       struct net_device *null_or_orig;
2090 +       int ret = NET_RX_DROP;
2091 +-      __be16 type;
2092 +  
2093 +       /* if we've gotten here through NAPI, check netpoll */
2094 +       if (netpoll_receive_skb(skb))
2095 +--- 2215,2228 ----
2096 +   *   NET_RX_SUCCESS: no congestion
2097 +   *   NET_RX_DROP: packet was dropped
2098 +   */
2099 ++ //int netif_receive_skb(struct sk_buff *skb)
2100 ++ int __netif_receive_skb(struct sk_buff *skb, unsigned short type, int notifier_data)
2101 +  {
2102 +       struct packet_type *ptype, *pt_prev;
2103 +       struct net_device *orig_dev;
2104 +       struct net_device *null_or_orig;
2105 +       int ret = NET_RX_DROP;
2106 ++ //   __be16 type;
2107 +  
2108 +       /* if we've gotten here through NAPI, check netpoll */
2109 +       if (netpoll_receive_skb(skb))
2110 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/net/core/neighbour.c linux-2.6.27-720/net/core/neighbour.c
2111 --- linux-2.6.27-710/net/core/neighbour.c       2008-10-09 18:13:53.000000000 -0400
2112 +++ linux-2.6.27-720/net/core/neighbour.c       2009-05-04 16:03:47.000000000 -0400
2113 @@ -2702,7 +2702,7 @@
2114  
2115  int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,
2116                           int p_id, int pdev_id, char *p_name,
2117 -                         proc_handler *handler, ctl_handler *strategy)
2118 +                         proc_handler_t *handler, ctl_handler *strategy)
2119  {
2120         struct neigh_sysctl_table *t;
2121         const char *dev_name_source = NULL;
2122 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/net/core/skbuff.c linux-2.6.27-720/net/core/skbuff.c
2123 --- linux-2.6.27-710/net/core/skbuff.c  2009-05-04 12:36:07.000000000 -0400
2124 +++ linux-2.6.27-720/net/core/skbuff.c  2009-05-04 16:03:47.000000000 -0400
2125 @@ -575,6 +575,112 @@
2126         skb_shinfo(new)->gso_type = skb_shinfo(old)->gso_type;
2127  }
2128  
2129 +
2130 +/* Click: clear skb header state */
2131 +static inline void skb_headerinit(void *p, struct kmem_cache *cache,
2132 +                                 unsigned long flags)
2133 +{
2134 +       struct sk_buff *skb = p;
2135 +
2136 +       skb->next = NULL;
2137 +       skb->prev = NULL;
2138 +       skb->sk = NULL;
2139 +       skb->tstamp.tv64 = 0;     /* No idea about time */
2140 +       skb->dev = NULL;
2141 +       skb->iif = 0;
2142 +       skb->dst = NULL;
2143 +       skb->sp = NULL;
2144 +       memset(skb->cb, 0, sizeof(skb->cb));
2145 +       skb->priority = 0;
2146 +       skb->pkt_type = PACKET_HOST;   /* Default type */
2147 +       skb->ip_summed = 0;
2148 +       skb->destructor = NULL;
2149 +
2150 +#ifdef CONFIG_NETFILTER
2151 +       skb->mark = 0;
2152 +       skb->nfct = NULL;
2153 +# if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
2154 +       skb->nfct_reasm = NULL;
2155 +# endif
2156 +# ifdef CONFIG_BRIDGE_NETFILTER
2157 +       skb->nf_bridge = NULL;
2158 +# endif
2159 +#endif
2160 +#ifdef CONFIG_NET_SCHED
2161 +       skb->tc_index = 0;
2162 +# ifdef CONFIG_NET_CLS_ACT
2163 +       skb->tc_verd = 0;
2164 +# endif
2165 +#endif
2166 +}
2167 +
2168 +/* Click: attempts to recycle a sk_buff. if it can be recycled, return it */
2169 +struct sk_buff *skb_recycle(struct sk_buff *skb)
2170 +{
2171 +       if (atomic_dec_and_test(&skb->users)) { 
2172 +               dst_release(skb->dst);
2173 +#ifdef CONFIG_XFRM
2174 +               secpath_put(skb->sp);
2175 +#endif
2176 +               if(skb->destructor) {
2177 +                       WARN_ON(in_irq());
2178 +                       skb->destructor(skb);
2179 +               }
2180 +#ifdef CONFIG_NETFILTER
2181 +               nf_conntrack_put(skb->nfct);
2182 +# if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
2183 +               nf_conntrack_put_reasm(skb->nfct_reasm);
2184 +# endif
2185 +# ifdef CONFIG_BRIDGE_NETFILTER
2186 +               nf_bridge_put(skb->nf_bridge);
2187 +# endif
2188 +#endif
2189 +               skb_headerinit(skb, NULL, 0);
2190 +
2191 +               if (skb->fclone == SKB_FCLONE_UNAVAILABLE
2192 +                   && (!skb->cloned ||
2193 +                       atomic_read(&skb_shinfo(skb)->dataref) == (skb->nohdr ? (1 << SKB_DATAREF_SHIFT) + 1 : 1))) {
2194 +                       /* Don't need to atomic_sub skb_shinfo(skb)->dataref,
2195 +                          as we set that to 1 below. */
2196 +                       
2197 +                       if (skb_shinfo(skb)->nr_frags) {
2198 +                               int i;
2199 +                               for (i = 0; i < skb_shinfo(skb)->nr_frags; i++)
2200 +                                       put_page(skb_shinfo(skb)->frags[i].page);
2201 +                               /* Jason Park patch */
2202 +                               skb_shinfo(skb)->nr_frags = 0;
2203 +                       }
2204 +
2205 +                       if (skb_shinfo(skb)->frag_list)
2206 +                               skb_drop_fraglist(skb);
2207 +
2208 +                       /* Load the data pointers. */
2209 +                       skb->data = skb->head;
2210 +                       skb->tail = skb->data;
2211 +                       /* end and truesize should have never changed */
2212 +                       /* skb->end = skb->data + skb->truesize; */
2213 +
2214 +                       /* set up other state */
2215 +                       skb->len = 0;
2216 +                       skb->cloned = 0;
2217 +
2218 +                       atomic_set(&skb->users, 1);
2219 +                       atomic_set(&(skb_shinfo(skb)->dataref), 1);
2220 +                       /* Jason Park patch */
2221 +                       skb_shinfo(skb)->gso_size = 0;
2222 +                       skb_shinfo(skb)->gso_segs = 0;
2223 +                       skb_shinfo(skb)->gso_type = 0;
2224 +                       skb_shinfo(skb)->ip6_frag_id = 0;
2225 +
2226 +                       return skb;
2227 +               }
2228 +
2229 +               kfree_skbmem(skb);
2230 +       }
2231 +
2232 +       return 0;
2233 +}
2234 +
2235  /**
2236   *     skb_copy        -       create private copy of an sk_buff
2237   *     @skb: buffer to copy
2238 @@ -2604,6 +2710,7 @@
2239  EXPORT_SYMBOL(skb_append_datato_frags);
2240  EXPORT_SYMBOL(__skb_warn_lro_forwarding);
2241  
2242 +EXPORT_SYMBOL(skb_recycle);
2243  EXPORT_SYMBOL_GPL(skb_to_sgvec);
2244  EXPORT_SYMBOL_GPL(skb_cow_data);
2245  EXPORT_SYMBOL_GPL(skb_partial_csum_set);
2246 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/net/ipv4/arp.c linux-2.6.27-720/net/ipv4/arp.c
2247 --- linux-2.6.27-710/net/ipv4/arp.c     2008-10-09 18:13:53.000000000 -0400
2248 +++ linux-2.6.27-720/net/ipv4/arp.c     2009-05-04 16:03:47.000000000 -0400
2249 @@ -328,6 +328,7 @@
2250  {
2251         __be32 saddr = 0;
2252         u8  *dst_ha = NULL;
2253 +       u8  dst_ha_buf[MAX_ADDR_LEN+sizeof(unsigned long)];
2254         struct net_device *dev = neigh->dev;
2255         __be32 target = *(__be32*)neigh->primary_key;
2256         int probes = atomic_read(&neigh->probes);
2257 @@ -365,8 +366,8 @@
2258         if ((probes -= neigh->parms->ucast_probes) < 0) {
2259                 if (!(neigh->nud_state&NUD_VALID))
2260                         printk(KERN_DEBUG "trying to ucast probe in NUD_INVALID\n");
2261 -               dst_ha = neigh->ha;
2262 -               read_lock_bh(&neigh->lock);
2263 +               memcpy(dst_ha_buf, neigh->ha, sizeof(neigh->ha));
2264 +               dst_ha = dst_ha_buf;
2265         } else if ((probes -= neigh->parms->app_probes) < 0) {
2266  #ifdef CONFIG_ARPD
2267                 neigh_app_ns(neigh);
2268 @@ -376,8 +377,6 @@
2269  
2270         arp_send(ARPOP_REQUEST, ETH_P_ARP, target, dev, saddr,
2271                  dst_ha, dev->dev_addr, NULL);
2272 -       if (dst_ha)
2273 -               read_unlock_bh(&neigh->lock);
2274  }
2275  
2276  static int arp_ignore(struct in_device *in_dev, __be32 sip, __be32 tip)
2277 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/net/ipv4/devinet.c linux-2.6.27-720/net/ipv4/devinet.c
2278 --- linux-2.6.27-710/net/ipv4/devinet.c 2009-05-04 12:36:01.000000000 -0400
2279 +++ linux-2.6.27-720/net/ipv4/devinet.c 2009-05-04 16:03:47.000000000 -0400
2280 @@ -1687,3 +1687,4 @@
2281  EXPORT_SYMBOL(inetdev_by_index);
2282  EXPORT_SYMBOL(register_inetaddr_notifier);
2283  EXPORT_SYMBOL(unregister_inetaddr_notifier);
2284 +EXPORT_SYMBOL(devinet_ioctl);
2285 diff -Nurb --exclude='*.a' --exclude='*.dbg' --exclude='*.order' --exclude='*.d' --exclude='*.elf' --exclude='*.o' --exclude='*.mod' --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.27-710/scr linux-2.6.27-720/scr
2286 --- linux-2.6.27-710/scr        1969-12-31 19:00:00.000000000 -0500
2287 +++ linux-2.6.27-720/scr        2009-05-04 16:03:47.000000000 -0400
2288 @@ -0,0 +1,29 @@
2289 +vi -o ./include/asm-um/elf-x86_64.h ./include/asm-um/elf-x86_64.h.rej
2290 +vi -o ./include/asm-frv/tlbflush.h ./include/asm-frv/tlbflush.h.rej
2291 +vi -o ./include/asm-frv/pgtable.h ./include/asm-frv/pgtable.h.rej
2292 +vi -o ./include/asm-xtensa/pgalloc.h ./include/asm-xtensa/pgalloc.h.rej
2293 +vi -o ./include/asm-xtensa/pgtable.h ./include/asm-xtensa/pgtable.h.rej
2294 +vi -o ./include/asm-xtensa/module.h ./include/asm-xtensa/module.h.rej
2295 +vi -o ./include/asm-xtensa/system.h ./include/asm-xtensa/system.h.rej
2296 +vi -o ./include/asm-xtensa/timex.h ./include/asm-xtensa/timex.h.rej
2297 +vi -o ./include/net/sock.h ./include/net/sock.h.rej
2298 +vi -o ./include/net/compat.h ./include/net/compat.h.rej
2299 +vi -o ./include/asm-mips/fpu.h ./include/asm-mips/fpu.h.rej
2300 +vi -o ./include/asm-mips/time.h ./include/asm-mips/time.h.rej
2301 +vi -o ./include/asm-mips/irq.h ./include/asm-mips/irq.h.rej
2302 +vi -o ./include/asm-mips/system.h ./include/asm-mips/system.h.rej
2303 +vi -o ./include/linux/lockdep.h ./include/linux/lockdep.h.rej
2304 +vi -o ./include/linux/ktime.h ./include/linux/ktime.h.rej
2305 +vi -o ./include/linux/textsearch.h ./include/linux/textsearch.h.rej
2306 +vi -o ./include/linux/backing-dev.h ./include/linux/backing-dev.h.rej
2307 +vi -o ./include/linux/kexec.h ./include/linux/kexec.h.rej
2308 +vi -o ./include/linux/sysctl.h ./include/linux/sysctl.h.rej
2309 +vi -o ./include/linux/netdevice.h ./include/linux/netdevice.h.rej
2310 +vi -o ./include/linux/spinlock_types_up.h ./include/linux/spinlock_types_up.h.rej
2311 +vi -o ./include/linux/list.h ./include/linux/list.h.rej
2312 +vi -o ./include/asm-m68k/module.h ./include/asm-m68k/module.h.rej
2313 +vi -o ./net/core/dev.c ./net/core/dev.c.rej
2314 +vi -o ./net/core/skbuff.c ./net/core/skbuff.c.rej
2315 +vi -o ./net/core/neighbour.c ./net/core/neighbour.c.rej
2316 +vi -o ./drivers/media/dvb/bt8xx/bt878.h ./drivers/media/dvb/bt8xx/bt878.h.rej
2317 +vi -o ./drivers/net/ibmveth.c ./drivers/net/ibmveth.c.rej