Re: [PATCH] rcu: Add missing __releases() annotation

From: Paul E. McKenney
Date: Thu Apr 29 2021 - 14:40:05 EST


On Thu, Apr 29, 2021 at 12:12:19AM +0100, Jules Irenge wrote:
> Sparse report a warning at rcu_print_task_stall()
>
> "warning: context imbalance in rcu_print_task_stall - unexpected unlock"
>
> The root cause is a missing annotation at rcu_print_task_stall() function
>
> Add the missing __releases(rnp->lock) annotation
>
> Signed-off-by: Jules Irenge <jbi.octave@xxxxxxxxx>

Good catch, applied, thank you!

Thanx, Paul

> ---
> kernel/rcu/tree_stall.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h
> index 59b95cc5cbdf..18b2d5274d65 100644
> --- a/kernel/rcu/tree_stall.h
> +++ b/kernel/rcu/tree_stall.h
> @@ -314,6 +314,7 @@ static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp)
> * tasks blocked within RCU read-side critical sections.
> */
> static int rcu_print_task_stall(struct rcu_node *rnp, unsigned long flags)
> + __releases(rnp->lock)
> {
> raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
> return 0;
> --
> 2.31.1
>