diff options
Diffstat (limited to 'arch/mips/kernel/signal.c')
-rw-r--r-- | arch/mips/kernel/signal.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index b5e88fd83277..fd3ef2c2afbc 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <asm/war.h> | 35 | #include <asm/war.h> |
36 | #include <asm/vdso.h> | 36 | #include <asm/vdso.h> |
37 | #include <asm/dsp.h> | 37 | #include <asm/dsp.h> |
38 | #include <asm/inst.h> | ||
38 | 39 | ||
39 | #include "signal-common.h" | 40 | #include "signal-common.h" |
40 | 41 | ||
@@ -480,7 +481,15 @@ static void handle_signal(unsigned long sig, siginfo_t *info, | |||
480 | sigset_t *oldset = sigmask_to_save(); | 481 | sigset_t *oldset = sigmask_to_save(); |
481 | int ret; | 482 | int ret; |
482 | struct mips_abi *abi = current->thread.abi; | 483 | struct mips_abi *abi = current->thread.abi; |
484 | #ifdef CONFIG_CPU_MICROMIPS | ||
485 | void *vdso; | ||
486 | unsigned int tmp = (unsigned int)current->mm->context.vdso; | ||
487 | |||
488 | set_isa16_mode(tmp); | ||
489 | vdso = (void *)tmp; | ||
490 | #else | ||
483 | void *vdso = current->mm->context.vdso; | 491 | void *vdso = current->mm->context.vdso; |
492 | #endif | ||
484 | 493 | ||
485 | if (regs->regs[0]) { | 494 | if (regs->regs[0]) { |
486 | switch(regs->regs[2]) { | 495 | switch(regs->regs[2]) { |