Re: [PATCH 2/2] rcu/nocb: Add missing annotation for rcu_nocb_bypass_unlock()

From: Boqun Feng
Date: Thu Jan 30 2020 - 20:00:01 EST


On Thu, Jan 30, 2020 at 12:30:09AM +0000, Jules Irenge wrote:
> Sparse reports warning at rcu_nocb_bypass_unlock()
>
> warning: context imbalance in rcu_nocb_bypass_unlock() - unexpected unlock
>
> The root cause is a missing annotation of rcu_nocb_bypass_unlock()
> which causes the warning.
>
> Add the missing __releases(&rdp->nocb_bypass_lock) annotation.
>
> Signed-off-by: Jules Irenge <jbi.octave@xxxxxxxxx>

Acked-by: Boqun Feng <boqun.feng@xxxxxxxxx>

> ---
> kernel/rcu/tree_plugin.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
> index 9d21cb07d57c..8783d19a58b2 100644
> --- a/kernel/rcu/tree_plugin.h
> +++ b/kernel/rcu/tree_plugin.h
> @@ -1553,6 +1553,7 @@ static bool rcu_nocb_bypass_trylock(struct rcu_data *rdp)
> * Release the specified rcu_data structure's ->nocb_bypass_lock.
> */
> static void rcu_nocb_bypass_unlock(struct rcu_data *rdp)
> + __releases(&rdp->nocb_bypass_lock)
> {
> lockdep_assert_irqs_disabled();
> raw_spin_unlock(&rdp->nocb_bypass_lock);
> --
> 2.24.1
>