Re: [patch 07/14] tasklets: Prevent tasklet_unlock_spin_wait() deadlock on RT

From: Sebastian Andrzej Siewior
Date: Tue Mar 09 2021 - 10:22:40 EST


On 2021-03-09 16:00:37 [+0100], To Thomas Gleixner wrote:
> diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
> index 07c7329d21aa7..1c14ccd351091 100644
> --- a/include/linux/interrupt.h
> +++ b/include/linux/interrupt.h
> @@ -663,15 +663,6 @@ static inline int tasklet_trylock(struct tasklet_struct *t)
> void tasklet_unlock(struct tasklet_struct *t);
> void tasklet_unlock_wait(struct tasklet_struct *t);
>
> -/*
> - * Do not use in new code. Waiting for tasklets from atomic contexts is
> - * error prone and should be avoided.
> - */
> -static inline void tasklet_unlock_spin_wait(struct tasklet_struct *t)
> -{
> - while (test_bit(TASKLET_STATE_RUN, &t->state))
> - cpu_relax();
> -}

Look at that. The forward declaration for tasklet_unlock_spin_wait()
should have remained. Sorry for that.

Sebastian