From 6887a56b6e8ef5daf1160f2ebe5cbe38fd8819a2 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 15 Mar 2018 11:45:44 +0100 Subject: sched/wait, arch/mips: Fix and convert wait_on_atomic_t() usage to the new wait_var_event() API The old wait_on_atomic_t() is going to get removed, use the more flexible wait_var_event() API instead. And while there, fix a bug and add the missing wakeup... Signed-off-by: Peter Zijlstra (Intel) Cc: James Hogan Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar --- arch/mips/kernel/process.c | 2 ++ arch/mips/kernel/traps.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'arch/mips') diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index 57028d49c202..b9e9bf628849 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c @@ -781,6 +781,8 @@ int mips_set_process_fp_mode(struct task_struct *task, unsigned int value) atomic_set(&task->mm->context.fp_mode_switching, 0); preempt_enable(); + wake_up_var(&task->mm->context.fp_mode_switching); + return 0; } diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 0ae4a731cc12..967e9e4e795e 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c @@ -1248,8 +1248,8 @@ static int enable_restore_fp_context(int msa) * If an FP mode switch is currently underway, wait for it to * complete before proceeding. */ - wait_on_atomic_t(¤t->mm->context.fp_mode_switching, - atomic_t_wait, TASK_KILLABLE); + wait_var_event(¤t->mm->context.fp_mode_switching, + !atomic_read(¤t->mm->context.fp_mode_switching)); if (!used_math()) { /* First time FP context user. */ -- cgit v1.2.3-73-gaa49b