diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2013-05-29 01:07:19 +0200 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2013-06-10 18:02:30 +0200 |
commit | c3fc5cd5c5a5f4738776a965a020a32c1a37c8fd (patch) | |
tree | 59c7114e5c9e682b0b6ec647cabfa4d942ee1377 /arch/mips/kernel/unaligned.c | |
parent | MIPS: Cleanup flags in syscall flags handlers. (diff) | |
download | linux-c3fc5cd5c5a5f4738776a965a020a32c1a37c8fd.tar.xz linux-c3fc5cd5c5a5f4738776a965a020a32c1a37c8fd.zip |
MIPS: Implement HAVE_CONTEXT_TRACKING.
This enables support for CONFIG_NO_HZ_FULL.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/unaligned.c')
-rw-r--r-- | arch/mips/kernel/unaligned.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c index 203d8857070d..3eaa02aa8ae0 100644 --- a/arch/mips/kernel/unaligned.c +++ b/arch/mips/kernel/unaligned.c @@ -72,6 +72,7 @@ * A store crossing a page boundary might be executed only partially. * Undo the partial store in this case. */ +#include <linux/context_tracking.h> #include <linux/mm.h> #include <linux/signal.h> #include <linux/smp.h> @@ -1550,9 +1551,11 @@ sigill: } asmlinkage void do_ade(struct pt_regs *regs) { + enum ctx_state prev_state; unsigned int __user *pc; mm_segment_t seg; + prev_state = exception_enter(); perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, regs, regs->cp0_badvaddr); /* @@ -1628,6 +1631,7 @@ sigbus: /* * XXX On return from the signal handler we should advance the epc */ + exception_exit(prev_state); } #ifdef CONFIG_DEBUG_FS |