On 06/29, Paul E. McKenney wrote:
>
> --- a/kernel/task_work.c
> +++ b/kernel/task_work.c
> @@ -109,7 +109,8 @@ void task_work_run(void)
>                * the first entry == work, cmpxchg(task_works) should
>                * fail, but it can play with *work and other entries.
>                */
> -             raw_spin_unlock_wait(&task->pi_lock);
> +             raw_spin_lock(&task->pi_lock);
> +             raw_spin_unlock(&task->pi_lock);

Well, bit the you need spin_lock_irq(). And this is one of the reasons
why I personally think unlock_wait have some sense...

Oleg.

Reply via email to