diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2013-05-28 19:07:19 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2013-06-10 12:02:30 -0400 |
commit | c3fc5cd5c5a5f4738776a965a020a32c1a37c8fd (patch) | |
tree | 59c7114e5c9e682b0b6ec647cabfa4d942ee1377 /arch/mips/kernel/unaligned.c | |
parent | e7f3b48af7be9f8007a224663a5b91340626fed5 (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.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 @@ | |||
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 | } |
1551 | asmlinkage void do_ade(struct pt_regs *regs) | 1552 | asmlinkage 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 |