hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
kernel/kernel/sched/completion.c
....@@ -29,12 +29,12 @@
2929 {
3030 unsigned long flags;
3131
32
- spin_lock_irqsave(&x->wait.lock, flags);
32
+ raw_spin_lock_irqsave(&x->wait.lock, flags);
3333
3434 if (x->done != UINT_MAX)
3535 x->done++;
36
- __wake_up_locked(&x->wait, TASK_NORMAL, 1);
37
- spin_unlock_irqrestore(&x->wait.lock, flags);
36
+ swake_up_locked(&x->wait);
37
+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
3838 }
3939 EXPORT_SYMBOL(complete);
4040
....@@ -58,10 +58,10 @@
5858 {
5959 unsigned long flags;
6060
61
- spin_lock_irqsave(&x->wait.lock, flags);
61
+ raw_spin_lock_irqsave(&x->wait.lock, flags);
6262 x->done = UINT_MAX;
63
- __wake_up_locked(&x->wait, TASK_NORMAL, 0);
64
- spin_unlock_irqrestore(&x->wait.lock, flags);
63
+ swake_up_all_locked(&x->wait);
64
+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
6565 }
6666 EXPORT_SYMBOL(complete_all);
6767
....@@ -70,20 +70,20 @@
7070 long (*action)(long), long timeout, int state)
7171 {
7272 if (!x->done) {
73
- DECLARE_WAITQUEUE(wait, current);
73
+ DECLARE_SWAITQUEUE(wait);
7474
75
- __add_wait_queue_entry_tail_exclusive(&x->wait, &wait);
7675 do {
7776 if (signal_pending_state(state, current)) {
7877 timeout = -ERESTARTSYS;
7978 break;
8079 }
80
+ __prepare_to_swait(&x->wait, &wait);
8181 __set_current_state(state);
82
- spin_unlock_irq(&x->wait.lock);
82
+ raw_spin_unlock_irq(&x->wait.lock);
8383 timeout = action(timeout);
84
- spin_lock_irq(&x->wait.lock);
84
+ raw_spin_lock_irq(&x->wait.lock);
8585 } while (!x->done && timeout);
86
- __remove_wait_queue(&x->wait, &wait);
86
+ __finish_swait(&x->wait, &wait);
8787 if (!x->done)
8888 return timeout;
8989 }
....@@ -100,9 +100,9 @@
100100
101101 complete_acquire(x);
102102
103
- spin_lock_irq(&x->wait.lock);
103
+ raw_spin_lock_irq(&x->wait.lock);
104104 timeout = do_wait_for_common(x, action, timeout, state);
105
- spin_unlock_irq(&x->wait.lock);
105
+ raw_spin_unlock_irq(&x->wait.lock);
106106
107107 complete_release(x);
108108
....@@ -291,12 +291,12 @@
291291 if (!READ_ONCE(x->done))
292292 return false;
293293
294
- spin_lock_irqsave(&x->wait.lock, flags);
294
+ raw_spin_lock_irqsave(&x->wait.lock, flags);
295295 if (!x->done)
296296 ret = false;
297297 else if (x->done != UINT_MAX)
298298 x->done--;
299
- spin_unlock_irqrestore(&x->wait.lock, flags);
299
+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
300300 return ret;
301301 }
302302 EXPORT_SYMBOL(try_wait_for_completion);
....@@ -322,8 +322,8 @@
322322 * otherwise we can end up freeing the completion before complete()
323323 * is done referencing it.
324324 */
325
- spin_lock_irqsave(&x->wait.lock, flags);
326
- spin_unlock_irqrestore(&x->wait.lock, flags);
325
+ raw_spin_lock_irqsave(&x->wait.lock, flags);
326
+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
327327 return true;
328328 }
329329 EXPORT_SYMBOL(completion_done);