2020-03-11 01:10:24

by Jules Irenge

[permalink] [raw]
Subject: [PATCH 5/8] netfilter: conntrack: Add missing annotations for nf_conntrack_all_lock() and nf_conntrack_all_unlock()

Sparse reports warnings at nf_conntrack_all_lock()
and nf_conntrack_all_unlock()

warning: context imbalance in nf_conntrack_all_lock()
- wrong count at exit
warning: context imbalance in nf_conntrack_all_unlock()
- unexpected unlock

Add the missing __acquires(&nf_conntrack_locks_all_lock)
Add missing __releases(&nf_conntrack_locks_all_lock)

Signed-off-by: Jules Irenge <[email protected]>
---
net/netfilter/nf_conntrack_core.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index d1305423640f..a0bc122d5df1 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -143,6 +143,7 @@ static bool nf_conntrack_double_lock(struct net *net, unsigned int h1,
}

static void nf_conntrack_all_lock(void)
+ __acquires(&nf_conntrack_locks_all_lock)
{
int i;

@@ -162,6 +163,7 @@ static void nf_conntrack_all_lock(void)
}

static void nf_conntrack_all_unlock(void)
+ __releases(&nf_conntrack_locks_all_lock)
{
/* All prior stores must be complete before we clear
* 'nf_conntrack_locks_all'. Otherwise nf_conntrack_lock()
--
2.24.1


2020-03-27 17:23:24

by Pablo Neira Ayuso

[permalink] [raw]
Subject: Re: [PATCH 5/8] netfilter: conntrack: Add missing annotations for nf_conntrack_all_lock() and nf_conntrack_all_unlock()

On Wed, Mar 11, 2020 at 01:09:05AM +0000, Jules Irenge wrote:
> Sparse reports warnings at nf_conntrack_all_lock()
> and nf_conntrack_all_unlock()
>
> warning: context imbalance in nf_conntrack_all_lock()
> - wrong count at exit
> warning: context imbalance in nf_conntrack_all_unlock()
> - unexpected unlock
>
> Add the missing __acquires(&nf_conntrack_locks_all_lock)
> Add missing __releases(&nf_conntrack_locks_all_lock)

Also applied, thanks.