Pass mode to wait_on_atomic_t() action funcs and provide default actions
Make wait_on_atomic_t() pass the TASK_* mode onto its action function as an extra argument and make it 'unsigned int throughout. Also, consolidate a bunch of identical action functions into a default function that can do the appropriate thing for the mode. Also, change the argument name in the bit_wait*() function declarations to reflect the fact that it's the mode and not the bit number. [Peter Z gives this a grudging ACK, but thinks that the whole atomic_t wait should be done differently, though he's not immediately sure as to how] Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Peter Zijlstra <peterz@infradead.org> cc: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
@@ -1233,18 +1233,6 @@ static int default_cu2_call(struct notifier_block *nfb, unsigned long action,
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
static int wait_on_fp_mode_switch(atomic_t *p)
|
||||
{
|
||||
/*
|
||||
* The FP mode for this task is currently being switched. That may
|
||||
* involve modifications to the format of this tasks FP context which
|
||||
* make it unsafe to proceed with execution for the moment. Instead,
|
||||
* schedule some other task.
|
||||
*/
|
||||
schedule();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int enable_restore_fp_context(int msa)
|
||||
{
|
||||
int err, was_fpu_owner, prior_msa;
|
||||
@@ -1254,7 +1242,7 @@ static int enable_restore_fp_context(int msa)
|
||||
* complete before proceeding.
|
||||
*/
|
||||
wait_on_atomic_t(¤t->mm->context.fp_mode_switching,
|
||||
wait_on_fp_mode_switch, TASK_KILLABLE);
|
||||
atomic_t_wait, TASK_KILLABLE);
|
||||
|
||||
if (!used_math()) {
|
||||
/* First time FP context user. */
|
||||
|
Reference in New Issue
Block a user