1 diff -Nur linux.old/arch/mips/kernel/mips_ksyms.c linux.dev/arch/mips/kernel/mips_ksyms.c
2 --- linux.old/arch/mips/kernel/mips_ksyms.c 2004-02-18 14:36:30.000000000 +0100
3 +++ linux.dev/arch/mips/kernel/mips_ksyms.c 2005-10-24 14:21:53.702396250 +0200
5 #include <asm/floppy.h>
8 +asmlinkage long long __ashldi3 (long long, int);
9 +asmlinkage long long __ashrdi3 (long long, int);
10 +asmlinkage long long __lshrdi3 (long long, int);
11 +asmlinkage long long __muldi3 (long long, long long);
12 extern void *__bzero(void *__s, size_t __count);
13 extern long __strncpy_from_user_nocheck_asm(char *__to,
14 const char *__from, long __len);
16 EXPORT_SYMBOL_NOVERS(__strnlen_user_asm);
20 +EXPORT_SYMBOL_NOVERS(__ashldi3);
21 +EXPORT_SYMBOL_NOVERS(__ashrdi3);
22 +EXPORT_SYMBOL_NOVERS(__lshrdi3);
23 +EXPORT_SYMBOL_NOVERS(__muldi3);
26 /* Networking helper routines. */
27 EXPORT_SYMBOL(csum_partial_copy);
29 diff -Nur linux.old/arch/mips/lib/Makefile linux.dev/arch/mips/lib/Makefile
30 --- linux.old/arch/mips/lib/Makefile 2004-02-18 14:36:30.000000000 +0100
31 +++ linux.dev/arch/mips/lib/Makefile 2005-10-24 14:21:53.774400750 +0200
33 obj-y += csum_partial.o csum_partial_copy.o \
34 promlib.o rtc-std.o rtc-no.o memcpy.o \
35 memset.o watch.o strlen_user.o \
36 - strncpy_user.o strnlen_user.o
37 + strncpy_user.o strnlen_user.o \
38 + ashldi3.o ashrdi3.o lshrdi3.o muldi3.o
40 export-objs := rtc-std.o rtc-no.o
42 diff -Nur linux.old/arch/mips/lib/ashldi3.c linux.dev/arch/mips/lib/ashldi3.c
43 --- linux.old/arch/mips/lib/ashldi3.c 1970-01-01 01:00:00.000000000 +0100
44 +++ linux.dev/arch/mips/lib/ashldi3.c 2005-10-24 14:21:53.774400750 +0200
46 +/* ashrdi3.c extracted from gcc-2.95.2/libgcc2.c which is: */
47 +/* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc.
49 +This file is part of GNU CC.
51 +GNU CC is free software; you can redistribute it and/or modify
52 +it under the terms of the GNU General Public License as published by
53 +the Free Software Foundation; either version 2, or (at your option)
56 +GNU CC is distributed in the hope that it will be useful,
57 +but WITHOUT ANY WARRANTY; without even the implied warranty of
58 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
59 +GNU General Public License for more details.
61 +You should have received a copy of the GNU General Public License
62 +along with GNU CC; see the file COPYING. If not, write to
63 +the Free Software Foundation, 59 Temple Place - Suite 330,
64 +Boston, MA 02111-1307, USA. */
66 +#define BITS_PER_UNIT 8
68 +typedef int SItype __attribute__ ((mode (SI)));
69 +typedef unsigned int USItype __attribute__ ((mode (SI)));
70 +typedef int DItype __attribute__ ((mode (DI)));
71 +typedef int word_type __attribute__ ((mode (__word__)));
73 +struct DIstruct {SItype high, low;};
82 +__ashldi3 (DItype u, word_type b)
93 + bm = (sizeof (SItype) * BITS_PER_UNIT) - b;
97 + w.s.high = (USItype)uu.s.low << -bm;
101 + USItype carries = (USItype)uu.s.low >> bm;
102 + w.s.low = (USItype)uu.s.low << b;
103 + w.s.high = ((USItype)uu.s.high << b) | carries;
108 diff -Nur linux.old/arch/mips/lib/ashrdi3.c linux.dev/arch/mips/lib/ashrdi3.c
109 --- linux.old/arch/mips/lib/ashrdi3.c 1970-01-01 01:00:00.000000000 +0100
110 +++ linux.dev/arch/mips/lib/ashrdi3.c 2005-10-24 14:21:53.774400750 +0200
112 +/* ashrdi3.c extracted from gcc-2.7.2/libgcc2.c which is: */
113 +/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
115 +This file is part of GNU CC.
117 +GNU CC is free software; you can redistribute it and/or modify
118 +it under the terms of the GNU General Public License as published by
119 +the Free Software Foundation; either version 2, or (at your option)
122 +GNU CC is distributed in the hope that it will be useful,
123 +but WITHOUT ANY WARRANTY; without even the implied warranty of
124 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
125 +GNU General Public License for more details.
127 +You should have received a copy of the GNU General Public License
128 +along with GNU CC; see the file COPYING. If not, write to
129 +the Free Software Foundation, 59 Temple Place - Suite 330,
130 +Boston, MA 02111-1307, USA. */
132 +#define BITS_PER_UNIT 8
134 +typedef int SItype __attribute__ ((mode (SI)));
135 +typedef unsigned int USItype __attribute__ ((mode (SI)));
136 +typedef int DItype __attribute__ ((mode (DI)));
137 +typedef int word_type __attribute__ ((mode (__word__)));
139 +struct DIstruct {SItype high, low;};
148 +__ashrdi3 (DItype u, word_type b)
159 + bm = (sizeof (SItype) * BITS_PER_UNIT) - b;
162 + /* w.s.high = 1..1 or 0..0 */
163 + w.s.high = uu.s.high >> (sizeof (SItype) * BITS_PER_UNIT - 1);
164 + w.s.low = uu.s.high >> -bm;
168 + USItype carries = (USItype)uu.s.high << bm;
169 + w.s.high = uu.s.high >> b;
170 + w.s.low = ((USItype)uu.s.low >> b) | carries;
175 diff -Nur linux.old/arch/mips/lib/lshrdi3.c linux.dev/arch/mips/lib/lshrdi3.c
176 --- linux.old/arch/mips/lib/lshrdi3.c 1970-01-01 01:00:00.000000000 +0100
177 +++ linux.dev/arch/mips/lib/lshrdi3.c 2005-10-24 14:21:53.774400750 +0200
179 +/* lshrdi3.c extracted from gcc-2.7.2/libgcc2.c which is: */
180 +/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
182 +This file is part of GNU CC.
184 +GNU CC is free software; you can redistribute it and/or modify
185 +it under the terms of the GNU General Public License as published by
186 +the Free Software Foundation; either version 2, or (at your option)
189 +GNU CC is distributed in the hope that it will be useful,
190 +but WITHOUT ANY WARRANTY; without even the implied warranty of
191 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
192 +GNU General Public License for more details.
194 +You should have received a copy of the GNU General Public License
195 +along with GNU CC; see the file COPYING. If not, write to
196 +the Free Software Foundation, 59 Temple Place - Suite 330,
197 +Boston, MA 02111-1307, USA. */
199 +#define BITS_PER_UNIT 8
201 +typedef int SItype __attribute__ ((mode (SI)));
202 +typedef unsigned int USItype __attribute__ ((mode (SI)));
203 +typedef int DItype __attribute__ ((mode (DI)));
204 +typedef int word_type __attribute__ ((mode (__word__)));
206 +struct DIstruct {SItype high, low;};
215 +__lshrdi3 (DItype u, word_type b)
226 + bm = (sizeof (SItype) * BITS_PER_UNIT) - b;
230 + w.s.low = (USItype)uu.s.high >> -bm;
234 + USItype carries = (USItype)uu.s.high << bm;
235 + w.s.high = (USItype)uu.s.high >> b;
236 + w.s.low = ((USItype)uu.s.low >> b) | carries;
241 diff -Nur linux.old/arch/mips/lib/muldi3.c linux.dev/arch/mips/lib/muldi3.c
242 --- linux.old/arch/mips/lib/muldi3.c 1970-01-01 01:00:00.000000000 +0100
243 +++ linux.dev/arch/mips/lib/muldi3.c 2005-10-24 14:21:53.774400750 +0200
245 +/* muldi3.c extracted from gcc-2.7.2.3/libgcc2.c and
246 + gcc-2.7.2.3/longlong.h which is: */
247 +/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
249 +This file is part of GNU CC.
251 +GNU CC is free software; you can redistribute it and/or modify
252 +it under the terms of the GNU General Public License as published by
253 +the Free Software Foundation; either version 2, or (at your option)
256 +GNU CC is distributed in the hope that it will be useful,
257 +but WITHOUT ANY WARRANTY; without even the implied warranty of
258 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
259 +GNU General Public License for more details.
261 +You should have received a copy of the GNU General Public License
262 +along with GNU CC; see the file COPYING. If not, write to
263 +the Free Software Foundation, 59 Temple Place - Suite 330,
264 +Boston, MA 02111-1307, USA. */
266 +#define BITS_PER_UNIT 8
268 +#define umul_ppmm(w1, w0, u, v) \
269 + __asm__ ("multu %2,%3" \
270 + : "=l" ((USItype)(w0)), \
271 + "=h" ((USItype)(w1)) \
272 + : "d" ((USItype)(u)), \
273 + "d" ((USItype)(v)))
275 +#define __umulsidi3(u, v) \
277 + umul_ppmm (__w.s.high, __w.s.low, u, v); \
280 +typedef int SItype __attribute__ ((mode (SI)));
281 +typedef unsigned int USItype __attribute__ ((mode (SI)));
282 +typedef int DItype __attribute__ ((mode (DI)));
283 +typedef int word_type __attribute__ ((mode (__word__)));
285 +struct DIstruct {SItype high, low;};
294 +__muldi3 (DItype u, DItype v)
302 + w.ll = __umulsidi3 (uu.s.low, vv.s.low);
303 + w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
304 + + (USItype) uu.s.high * (USItype) vv.s.low);
308 diff -Nur linux.old/fs/cifs/cifsfs.c linux.dev/fs/cifs/cifsfs.c
309 --- linux.old/fs/cifs/cifsfs.c 2005-10-24 13:48:27.599659000 +0200
310 +++ linux.dev/fs/cifs/cifsfs.c 2005-10-24 14:25:06.526447000 +0200
312 static struct quotactl_ops cifs_quotactl_ops;
315 -extern struct file_system_type cifs_fs_type;
320 diff -Nur linux.old/include/asm-mips/uaccess.h linux.dev/include/asm-mips/uaccess.h
321 --- linux.old/include/asm-mips/uaccess.h 2005-01-19 15:10:12.000000000 +0100
322 +++ linux.dev/include/asm-mips/uaccess.h 2005-10-24 14:11:48.563214250 +0200
324 * Returns zero on success, or -EFAULT on error.
326 #define put_user(x,ptr) \
327 - __put_user_check((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
328 + __put_user_check((x),(ptr),sizeof(*(ptr)))
331 * get_user: - Get a simple variable from user space.
333 * On error, the variable @x is set to zero.
335 #define get_user(x,ptr) \
336 - __get_user_check((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
337 + __get_user_check((x),(ptr),sizeof(*(ptr)))
340 * __put_user: - Write a simple value into user space, with less checking.
342 * Returns zero on success, or -EFAULT on error.
344 #define __put_user(x,ptr) \
345 - __put_user_nocheck((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
346 + __put_user_nocheck((x),(ptr),sizeof(*(ptr)))
349 * __get_user: - Get a simple variable from user space, with less checking.
351 * On error, the variable @x is set to zero.
353 #define __get_user(x,ptr) \
354 - __get_user_nocheck((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
355 + __get_user_nocheck((x),(ptr),sizeof(*(ptr)))
357 struct __large_struct { unsigned long buf[100]; };
358 #define __m(x) (*(struct __large_struct *)(x))
360 #define __get_user_nocheck(x,ptr,size) \
363 - __typeof(*(ptr)) __gu_val = 0; \
364 + __typeof(*(ptr)) __gu_val = (__typeof(*(ptr))) 0; \
366 __gu_addr = (long) (ptr); \