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/mm | |
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/mm')
-rw-r--r-- | arch/mips/mm/fault.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index 0fead53d1c26..85df1cd8d446 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c | |||
@@ -5,6 +5,7 @@ | |||
5 | * | 5 | * |
6 | * Copyright (C) 1995 - 2000 by Ralf Baechle | 6 | * Copyright (C) 1995 - 2000 by Ralf Baechle |
7 | */ | 7 | */ |
8 | #include <linux/context_tracking.h> | ||
8 | #include <linux/signal.h> | 9 | #include <linux/signal.h> |
9 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
10 | #include <linux/interrupt.h> | 11 | #include <linux/interrupt.h> |
@@ -32,8 +33,8 @@ | |||
32 | * and the problem, and then passes it off to one of the appropriate | 33 | * and the problem, and then passes it off to one of the appropriate |
33 | * routines. | 34 | * routines. |
34 | */ | 35 | */ |
35 | asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, unsigned long write, | 36 | static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write, |
36 | unsigned long address) | 37 | unsigned long address) |
37 | { | 38 | { |
38 | struct vm_area_struct * vma = NULL; | 39 | struct vm_area_struct * vma = NULL; |
39 | struct task_struct *tsk = current; | 40 | struct task_struct *tsk = current; |
@@ -312,3 +313,13 @@ vmalloc_fault: | |||
312 | } | 313 | } |
313 | #endif | 314 | #endif |
314 | } | 315 | } |
316 | |||
317 | asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, | ||
318 | unsigned long write, unsigned long address) | ||
319 | { | ||
320 | enum ctx_state prev_state; | ||
321 | |||
322 | prev_state = exception_enter(); | ||
323 | __do_page_fault(regs, write, address); | ||
324 | exception_exit(prev_state); | ||
325 | } | ||