Merge branch 'org.openembedded.dev' of git@git.openembedded.net:/openembedded into...
[vuplus_openembedded] / packages / linux / linux-dm800 / linuxmips-2.6.12-gcc4-compile-fix.patch
1 diff -Naur 2.6.12-5.0-org/include/asm-mips/uaccess.h 2.6.12-5.0-patched/include/asm-mips/uaccess.h
2 --- 2.6.12-5.0-org/include/asm-mips/uaccess.h   2007-07-26 00:56:08.000000000 +0200
3 +++ 2.6.12-5.0-patched/include/asm-mips/uaccess.h       2007-12-11 12:34:52.000000000 +0100
4 @@ -234,39 +234,72 @@
5  
6  #define __get_user_nocheck(x,ptr,size)                                 \
7  ({                                                                     \
8 -       __typeof(*(ptr)) __gu_val =  (__typeof(*(ptr))) 0;              \
9         long __gu_err = 0;                                              \
10 -                                                                       \
11         might_sleep();                                                  \
12         switch (size) {                                                 \
13 -       case 1: __get_user_asm("lb", ptr); break;                       \
14 -       case 2: __get_user_asm("lh", ptr); break;                       \
15 -       case 4: __get_user_asm("lw", ptr); break;                       \
16 -       case 8: __GET_USER_DW(ptr); break;                              \
17 +       case 1: {                                                       \
18 +               s8 __gu_val =  (s8) 0;                                  \
19 +               __get_user_asm("lb", ptr);                              \
20 +               (x) = (__typeof__(*(ptr))) __gu_val;                    \
21 +               break;                                                  \
22 +               }                                                       \
23 +       case 2: {                                                       \
24 +               s16 __gu_val =  (s16) 0;                                \
25 +               __get_user_asm("lh", ptr);                              \
26 +               (x) = (__typeof__(*(ptr))) __gu_val;                    \
27 +               break;                                                  \
28 +               }                                                       \
29 +       case 4: {                                                       \
30 +               s32 __gu_val = (s32) 0;                                 \
31 +               __get_user_asm("lw", ptr);                              \
32 +               (x) = (__typeof__(*(ptr))) __gu_val;                    \
33 +               break;                                                  \
34 +               }                                                       \
35 +       case 8: {                                                       \
36 +               s64 __gu_val = (s64) 0;                                 \
37 +               __GET_USER_DW(ptr);                                     \
38 +               (x) = (__typeof__(*(ptr))) __gu_val;                    \
39 +               break;                                                  \
40 +               }                                                       \
41         default: __get_user_unknown(); break;                           \
42         }                                                               \
43 -       (x) = (__typeof__(*(ptr))) __gu_val;                            \
44         __gu_err;                                                       \
45  })
46  
47  #define __get_user_check(x,ptr,size)                                   \
48  ({                                                                     \
49         const __typeof__(*(ptr)) __user * __gu_addr = (ptr);            \
50 -       __typeof__(*(ptr)) __gu_val = 0;                                \
51         long __gu_err = -EFAULT;                                        \
52 -                                                                       \
53         might_sleep();                                                  \
54 -                                                                       \
55         if (likely(access_ok(VERIFY_READ,  __gu_addr, size))) {         \
56                 switch (size) {                                         \
57 -               case 1: __get_user_asm("lb", __gu_addr); break;         \
58 -               case 2: __get_user_asm("lh", __gu_addr); break;         \
59 -               case 4: __get_user_asm("lw", __gu_addr); break;         \
60 -               case 8: __GET_USER_DW(__gu_addr); break;                \
61 +               case 1: {                                                       \
62 +                       s8 __gu_val =  (s8) 0;                                  \
63 +                       __get_user_asm("lb", ptr);                              \
64 +                       (x) = (__typeof__(*(ptr))) __gu_val;                    \
65 +                       break;                                                  \
66 +                       }                                                       \
67 +               case 2: {                                                       \
68 +                       s16 __gu_val =  (s16) 0;                                \
69 +                       __get_user_asm("lh", ptr);                              \
70 +                       (x) = (__typeof__(*(ptr))) __gu_val;                    \
71 +                       break;                                                  \
72 +                       }                                                       \
73 +               case 4: {                                                       \
74 +                       s32 __gu_val = (s32) 0;                                 \
75 +                       __get_user_asm("lw", ptr);                              \
76 +                       (x) = (__typeof__(*(ptr))) __gu_val;                    \
77 +                       break;                                                  \
78 +                       }                                                       \
79 +               case 8: {                                                       \
80 +                       s64 __gu_val = (s64) 0;                                 \
81 +                       __GET_USER_DW(ptr);                                     \
82 +                       (x) = (__typeof__(*(ptr))) __gu_val;                    \
83 +                       break;                                                  \
84 +               }                                                       \
85                 default: __get_user_unknown(); break;                   \
86                 }                                                       \
87         }                                                               \
88 -       (x) = (__typeof__(*(ptr))) __gu_val;                            \
89         __gu_err;                                                       \
90  })
91