diff options
Diffstat (limited to 'arch/powerpc/oprofile/backtrace.c')
-rw-r--r-- | arch/powerpc/oprofile/backtrace.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/powerpc/oprofile/backtrace.c b/arch/powerpc/oprofile/backtrace.c index 6adf55fa5d88..ecc66d5f02c9 100644 --- a/arch/powerpc/oprofile/backtrace.c +++ b/arch/powerpc/oprofile/backtrace.c | |||
@@ -10,7 +10,7 @@ | |||
10 | #include <linux/oprofile.h> | 10 | #include <linux/oprofile.h> |
11 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
12 | #include <asm/processor.h> | 12 | #include <asm/processor.h> |
13 | #include <asm/uaccess.h> | 13 | #include <linux/uaccess.h> |
14 | #include <asm/compat.h> | 14 | #include <asm/compat.h> |
15 | #include <asm/oprofile_impl.h> | 15 | #include <asm/oprofile_impl.h> |
16 | 16 | ||
@@ -105,6 +105,7 @@ void op_powerpc_backtrace(struct pt_regs * const regs, unsigned int depth) | |||
105 | first_frame = 0; | 105 | first_frame = 0; |
106 | } | 106 | } |
107 | } else { | 107 | } else { |
108 | pagefault_disable(); | ||
108 | #ifdef CONFIG_PPC64 | 109 | #ifdef CONFIG_PPC64 |
109 | if (!is_32bit_task()) { | 110 | if (!is_32bit_task()) { |
110 | while (depth--) { | 111 | while (depth--) { |
@@ -113,7 +114,7 @@ void op_powerpc_backtrace(struct pt_regs * const regs, unsigned int depth) | |||
113 | break; | 114 | break; |
114 | first_frame = 0; | 115 | first_frame = 0; |
115 | } | 116 | } |
116 | 117 | pagefault_enable(); | |
117 | return; | 118 | return; |
118 | } | 119 | } |
119 | #endif | 120 | #endif |
@@ -124,5 +125,6 @@ void op_powerpc_backtrace(struct pt_regs * const regs, unsigned int depth) | |||
124 | break; | 125 | break; |
125 | first_frame = 0; | 126 | first_frame = 0; |
126 | } | 127 | } |
128 | pagefault_enable(); | ||
127 | } | 129 | } |
128 | } | 130 | } |