Hi Andrew, Today's linux-next merge of the akpm tree got a conflict in arch/x86/include/asm/i387.h between commits 8546c008924d ("i387: Uninline the generic FP helpers that we expose to kernel modules") and 1361b83a13d4 ("i387: Split up into exported and internal interfaces") from the tip tree and commit "percpu-remove-percpu_xxx-functions-fix" from the akpm tree. I applied the appropriate part of the latter patch to arch/x86/include/asm/fpu-internal.h and arch/x86/kernel/i387.c (see below). -- Cheers, Stephen Rothwell sfr@canb.auug.org.au diff --git a/arch/x86/include/asm/fpu-internal.h b/arch/x86/include/asm/fpu-internal.h index 5caaf43..e9801b4 100644 --- a/arch/x86/include/asm/fpu-internal.h +++ b/arch/x86/include/asm/fpu-internal.h @@ -290,14 +290,14 @@ static inline int __thread_has_fpu(struct task_struct *tsk) static inline void __thread_clear_has_fpu(struct task_struct *tsk) { tsk->thread.fpu.has_fpu = 0; - percpu_write(fpu_owner_task, NULL); + __this_cpu_write(fpu_owner_task, NULL); } /* Must be paired with a 'clts' before! */ static inline void __thread_set_has_fpu(struct task_struct *tsk) { tsk->thread.fpu.has_fpu = 1; - percpu_write(fpu_owner_task, tsk); + __this_cpu_write(fpu_owner_task, tsk); } /* diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c index 7734bcb..32c3972 100644 --- a/arch/x86/kernel/i387.c +++ b/arch/x86/kernel/i387.c @@ -88,7 +88,7 @@ void kernel_fpu_begin(void) __thread_clear_has_fpu(me); /* We do 'stts()' in kernel_fpu_end() */ } else { - percpu_write(fpu_owner_task, NULL); + __this_cpu_write(fpu_owner_task, NULL); clts(); } }