diff options
Diffstat (limited to 'arch/mips/kernel/syscall.c')
| -rw-r--r-- | arch/mips/kernel/syscall.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index 541b5005957e..7c800ec3ff55 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c | |||
| @@ -281,16 +281,24 @@ asmlinkage int sys_set_thread_area(unsigned long addr) | |||
| 281 | 281 | ||
| 282 | asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3) | 282 | asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3) |
| 283 | { | 283 | { |
| 284 | int tmp; | 284 | switch (cmd) { |
| 285 | |||
| 286 | switch(cmd) { | ||
| 287 | case MIPS_ATOMIC_SET: | 285 | case MIPS_ATOMIC_SET: |
| 288 | printk(KERN_CRIT "How did I get here?\n"); | 286 | printk(KERN_CRIT "How did I get here?\n"); |
| 289 | return -EINVAL; | 287 | return -EINVAL; |
| 290 | 288 | ||
| 291 | case MIPS_FIXADE: | 289 | case MIPS_FIXADE: |
| 292 | tmp = current->thread.mflags & ~3; | 290 | if (arg1 & ~3) |
| 293 | current->thread.mflags = tmp | (arg1 & 3); | 291 | return -EINVAL; |
| 292 | |||
| 293 | if (arg1 & 1) | ||
| 294 | set_thread_flag(TIF_FIXADE); | ||
| 295 | else | ||
| 296 | clear_thread_flag(TIF_FIXADE); | ||
| 297 | if (arg1 & 2) | ||
| 298 | set_thread_flag(TIF_LOGADE); | ||
| 299 | else | ||
| 300 | clear_thread_flag(TIF_FIXADE); | ||
| 301 | |||
| 294 | return 0; | 302 | return 0; |
| 295 | 303 | ||
| 296 | case FLUSH_CACHE: | 304 | case FLUSH_CACHE: |
