diff options
Diffstat (limited to 'arch/x86/include/asm/system.h')
-rw-r--r-- | arch/x86/include/asm/system.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/include/asm/system.h b/arch/x86/include/asm/system.h index 7a80f72bec4..c00bfdbdd45 100644 --- a/arch/x86/include/asm/system.h +++ b/arch/x86/include/asm/system.h | |||
@@ -130,16 +130,16 @@ do { \ | |||
130 | "movq "__percpu_arg([current_task])",%%rsi\n\t" \ | 130 | "movq "__percpu_arg([current_task])",%%rsi\n\t" \ |
131 | __switch_canary \ | 131 | __switch_canary \ |
132 | "movq %P[thread_info](%%rsi),%%r8\n\t" \ | 132 | "movq %P[thread_info](%%rsi),%%r8\n\t" \ |
133 | LOCK_PREFIX "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \ | ||
134 | "movq %%rax,%%rdi\n\t" \ | 133 | "movq %%rax,%%rdi\n\t" \ |
135 | "jc ret_from_fork\n\t" \ | 134 | "testl %[_tif_fork],%P[ti_flags](%%r8)\n\t" \ |
135 | "jnz ret_from_fork\n\t" \ | ||
136 | RESTORE_CONTEXT \ | 136 | RESTORE_CONTEXT \ |
137 | : "=a" (last) \ | 137 | : "=a" (last) \ |
138 | __switch_canary_oparam \ | 138 | __switch_canary_oparam \ |
139 | : [next] "S" (next), [prev] "D" (prev), \ | 139 | : [next] "S" (next), [prev] "D" (prev), \ |
140 | [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \ | 140 | [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \ |
141 | [ti_flags] "i" (offsetof(struct thread_info, flags)), \ | 141 | [ti_flags] "i" (offsetof(struct thread_info, flags)), \ |
142 | [tif_fork] "i" (TIF_FORK), \ | 142 | [_tif_fork] "i" (_TIF_FORK), \ |
143 | [thread_info] "i" (offsetof(struct task_struct, stack)), \ | 143 | [thread_info] "i" (offsetof(struct task_struct, stack)), \ |
144 | [current_task] "m" (per_cpu_var(current_task)) \ | 144 | [current_task] "m" (per_cpu_var(current_task)) \ |
145 | __switch_canary_iparam \ | 145 | __switch_canary_iparam \ |