diff options
Diffstat (limited to 'arch/arm/vfp/vfphw.S')
-rw-r--r-- | arch/arm/vfp/vfphw.S | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S index 3e5d3115a2a6..be807625ed8c 100644 --- a/arch/arm/vfp/vfphw.S +++ b/arch/arm/vfp/vfphw.S | |||
@@ -14,10 +14,13 @@ | |||
14 | * r10 points at the start of the private FP workspace in the thread structure | 14 | * r10 points at the start of the private FP workspace in the thread structure |
15 | * sp points to a struct pt_regs (as defined in include/asm/proc/ptrace.h) | 15 | * sp points to a struct pt_regs (as defined in include/asm/proc/ptrace.h) |
16 | */ | 16 | */ |
17 | #include <linux/init.h> | ||
18 | #include <linux/linkage.h> | ||
17 | #include <asm/thread_info.h> | 19 | #include <asm/thread_info.h> |
18 | #include <asm/vfpmacros.h> | 20 | #include <asm/vfpmacros.h> |
19 | #include <linux/kern_levels.h> | 21 | #include <linux/kern_levels.h> |
20 | #include "../kernel/entry-header.S" | 22 | #include <asm/assembler.h> |
23 | #include <asm/asm-offsets.h> | ||
21 | 24 | ||
22 | .macro DBGSTR, str | 25 | .macro DBGSTR, str |
23 | #ifdef DEBUG | 26 | #ifdef DEBUG |
@@ -179,12 +182,7 @@ vfp_hw_state_valid: | |||
179 | @ else it's one 32-bit instruction, so | 182 | @ else it's one 32-bit instruction, so |
180 | @ always subtract 4 from the following | 183 | @ always subtract 4 from the following |
181 | @ instruction address. | 184 | @ instruction address. |
182 | #ifdef CONFIG_PREEMPT_COUNT | 185 | dec_preempt_count_ti r10, r4 |
183 | get_thread_info r10 | ||
184 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count | ||
185 | sub r11, r4, #1 @ decrement it | ||
186 | str r11, [r10, #TI_PREEMPT] | ||
187 | #endif | ||
188 | mov pc, r9 @ we think we have handled things | 186 | mov pc, r9 @ we think we have handled things |
189 | 187 | ||
190 | 188 | ||
@@ -203,12 +201,7 @@ look_for_VFP_exceptions: | |||
203 | @ not recognised by VFP | 201 | @ not recognised by VFP |
204 | 202 | ||
205 | DBGSTR "not VFP" | 203 | DBGSTR "not VFP" |
206 | #ifdef CONFIG_PREEMPT_COUNT | 204 | dec_preempt_count_ti r10, r4 |
207 | get_thread_info r10 | ||
208 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count | ||
209 | sub r11, r4, #1 @ decrement it | ||
210 | str r11, [r10, #TI_PREEMPT] | ||
211 | #endif | ||
212 | mov pc, lr | 205 | mov pc, lr |
213 | 206 | ||
214 | process_exception: | 207 | process_exception: |