# Re: \[patch 07/14\] tasklets: Prevent tasklet\_unlock\_spin\_wait() deadlock on RT

- From: Sebastian Andrzej Siewior \<bigeasy@linutronix.de\>
- Date: 2021-03-09 15:22:40 
- List: linux-wireless
- Page: https://ratatoskr.run/linux-wireless/2021/03/6293895
- Thread: https://ratatoskr.run/netdev/2021/03/6293293/t.md

```text
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
```
