aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/unaligned.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2013-05-28 19:07:19 -0400
committerRalf Baechle <ralf@linux-mips.org>2013-06-10 12:02:30 -0400
commitc3fc5cd5c5a5f4738776a965a020a32c1a37c8fd (patch)
tree59c7114e5c9e682b0b6ec647cabfa4d942ee1377 /arch/mips/kernel/unaligned.c
parente7f3b48af7be9f8007a224663a5b91340626fed5 (diff)
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.c4
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 @@
72 * A store crossing a page boundary might be executed only partially. 72 * A store crossing a page boundary might be executed only partially.
73 * Undo the partial store in this case. 73 * Undo the partial store in this case.
74 */ 74 */
75#include <linux/context_tracking.h>
75#include <linux/mm.h> 76#include <linux/mm.h>
76#include <linux/signal.h> 77#include <linux/signal.h>
77#include <linux/smp.h> 78#include <linux/smp.h>
@@ -1550,9 +1551,11 @@ sigill:
1550} 1551}
1551asmlinkage void do_ade(struct pt_regs *regs) 1552asmlinkage void do_ade(struct pt_regs *regs)
1552{ 1553{
1554 enum ctx_state prev_state;
1553 unsigned int __user *pc; 1555 unsigned int __user *pc;
1554 mm_segment_t seg; 1556 mm_segment_t seg;
1555 1557
1558 prev_state = exception_enter();
1556 perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1559 perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS,
1557 1, regs, regs->cp0_badvaddr); 1560 1, regs, regs->cp0_badvaddr);
1558 /* 1561 /*
@@ -1628,6 +1631,7 @@ sigbus:
1628 /* 1631 /*
1629 * XXX On return from the signal handler we should advance the epc 1632 * XXX On return from the signal handler we should advance the epc
1630 */ 1633 */
1634 exception_exit(prev_state);
1631} 1635}
1632 1636
1633#ifdef CONFIG_DEBUG_FS 1637#ifdef CONFIG_DEBUG_FS