aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/kernel/signal32.c10
-rw-r--r--arch/mips/mm/c-sb1.c2
-rw-r--r--include/asm-mips/paccess.h8
3 files changed, 11 insertions, 9 deletions
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c
index 18c028ba9efa..663fa547ee18 100644
--- a/arch/mips/kernel/signal32.c
+++ b/arch/mips/kernel/signal32.c
@@ -261,11 +261,12 @@ asmlinkage int sys32_sigaction(int sig, const struct sigaction32 *act,
261 261
262 if (act) { 262 if (act) {
263 old_sigset_t mask; 263 old_sigset_t mask;
264 s32 handler;
264 265
265 if (!access_ok(VERIFY_READ, act, sizeof(*act))) 266 if (!access_ok(VERIFY_READ, act, sizeof(*act)))
266 return -EFAULT; 267 return -EFAULT;
267 err |= __get_user((u32)(u64)new_ka.sa.sa_handler, 268 err |= __get_user(handler, &act->sa_handler);
268 &act->sa_handler); 269 new_ka.sa.sa_handler = (void*)(s64)handler;
269 err |= __get_user(new_ka.sa.sa_flags, &act->sa_flags); 270 err |= __get_user(new_ka.sa.sa_flags, &act->sa_flags);
270 err |= __get_user(mask, &act->sa_mask.sig[0]); 271 err |= __get_user(mask, &act->sa_mask.sig[0]);
271 if (err) 272 if (err)
@@ -826,12 +827,13 @@ asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 *act,
826 goto out; 827 goto out;
827 828
828 if (act) { 829 if (act) {
830 s32 handler;
829 int err = 0; 831 int err = 0;
830 832
831 if (!access_ok(VERIFY_READ, act, sizeof(*act))) 833 if (!access_ok(VERIFY_READ, act, sizeof(*act)))
832 return -EFAULT; 834 return -EFAULT;
833 err |= __get_user((u32)(u64)new_sa.sa.sa_handler, 835 err |= __get_user(handler, &act->sa_handler);
834 &act->sa_handler); 836 new_sa.sa.sa_handler = (void*)(s64)handler;
835 err |= __get_user(new_sa.sa.sa_flags, &act->sa_flags); 837 err |= __get_user(new_sa.sa.sa_flags, &act->sa_flags);
836 err |= get_sigset(&new_sa.sa.sa_mask, &act->sa_mask); 838 err |= get_sigset(&new_sa.sa.sa_mask, &act->sa_mask);
837 if (err) 839 if (err)
diff --git a/arch/mips/mm/c-sb1.c b/arch/mips/mm/c-sb1.c
index 502f68c664b2..e65b1bb576fd 100644
--- a/arch/mips/mm/c-sb1.c
+++ b/arch/mips/mm/c-sb1.c
@@ -235,7 +235,7 @@ static inline void __sb1_flush_icache_range(unsigned long start,
235/* 235/*
236 * Invalidate all caches on this CPU 236 * Invalidate all caches on this CPU
237 */ 237 */
238static void local_sb1___flush_cache_all(void) 238static void __attribute_used__ local_sb1___flush_cache_all(void)
239{ 239{
240 __sb1_writeback_inv_dcache_all(); 240 __sb1_writeback_inv_dcache_all();
241 __sb1_flush_icache_all(); 241 __sb1_flush_icache_all();
diff --git a/include/asm-mips/paccess.h b/include/asm-mips/paccess.h
index 309bc3099f68..46f2d23d2697 100644
--- a/include/asm-mips/paccess.h
+++ b/include/asm-mips/paccess.h
@@ -52,7 +52,7 @@ struct __large_pstruct { unsigned long buf[100]; };
52}) 52})
53 53
54#define __get_dbe_asm(insn) \ 54#define __get_dbe_asm(insn) \
55({ \ 55{ \
56 __asm__ __volatile__( \ 56 __asm__ __volatile__( \
57 "1:\t" insn "\t%1,%2\n\t" \ 57 "1:\t" insn "\t%1,%2\n\t" \
58 "move\t%0,$0\n" \ 58 "move\t%0,$0\n" \
@@ -67,7 +67,7 @@ struct __large_pstruct { unsigned long buf[100]; };
67 ".previous" \ 67 ".previous" \
68 :"=r" (__gu_err), "=r" (__gu_val) \ 68 :"=r" (__gu_err), "=r" (__gu_val) \
69 :"o" (__mp(__gu_addr)), "i" (-EFAULT)); \ 69 :"o" (__mp(__gu_addr)), "i" (-EFAULT)); \
70}) 70}
71 71
72extern void __get_dbe_unknown(void); 72extern void __get_dbe_unknown(void);
73 73
@@ -90,7 +90,7 @@ extern void __get_dbe_unknown(void);
90}) 90})
91 91
92#define __put_dbe_asm(insn) \ 92#define __put_dbe_asm(insn) \
93({ \ 93{ \
94 __asm__ __volatile__( \ 94 __asm__ __volatile__( \
95 "1:\t" insn "\t%1,%2\n\t" \ 95 "1:\t" insn "\t%1,%2\n\t" \
96 "move\t%0,$0\n" \ 96 "move\t%0,$0\n" \
@@ -104,7 +104,7 @@ extern void __get_dbe_unknown(void);
104 ".previous" \ 104 ".previous" \
105 : "=r" (__pu_err) \ 105 : "=r" (__pu_err) \
106 : "r" (__pu_val), "o" (__mp(__pu_addr)), "i" (-EFAULT)); \ 106 : "r" (__pu_val), "o" (__mp(__pu_addr)), "i" (-EFAULT)); \
107}) 107}
108 108
109extern void __put_dbe_unknown(void); 109extern void __put_dbe_unknown(void);
110 110