core/cpu: move cpu_wake out of job_lock

There is no need to send the IPI while holding the job_lock. If the
target does wake after the job is queued and before we send the IPI,
it will check for new jobs anyway.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
diff --git a/core/cpu.c b/core/cpu.c
index e915d44..a1ef631 100644
--- a/core/cpu.c
+++ b/core/cpu.c
@@ -198,8 +198,9 @@
 		cpu->job_has_no_return = true;
 	else
 		cpu->job_count++;
-	cpu_wake(cpu);
 	unlock(&cpu->job_lock);
+
+	cpu_wake(cpu);
 }
 
 struct cpu_job *__cpu_queue_job(struct cpu_thread *cpu,