kernel: Fixup bad lock ordering in process_awaken_signal

This commit is contained in:
K. Lange 2021-10-20 19:37:31 +09:00
parent c1e5f206d5
commit 1efc36e51a

View File

@ -1148,14 +1148,14 @@ int process_awaken_from_fswait(process_t * process, int index) {
} }
void process_awaken_signal(process_t * process) { void process_awaken_signal(process_t * process) {
spin_lock(sleep_lock);
spin_lock(process->sched_lock); spin_lock(process->sched_lock);
if (process->node_waits) { if (process->node_waits) {
spin_lock(sleep_lock);
process_awaken_from_fswait(process, -1); process_awaken_from_fswait(process, -1);
spin_unlock(sleep_lock);
} else { } else {
spin_unlock(process->sched_lock); spin_unlock(process->sched_lock);
} }
spin_unlock(sleep_lock);
} }
int process_alert_node_locked(process_t * process, void * value) { int process_alert_node_locked(process_t * process, void * value) {