Re: [PATCH 3/8] tcp: Add missing annotation for tcp_child_process()

From: Eric Dumazet
Date: Tue Mar 10 2020 - 21:14:14 EST


On Tue, Mar 10, 2020 at 6:09 PM Jules Irenge <jbi.octave@xxxxxxxxx> wrote:
>
> Sparse reports warning at tcp_child_process()
> warning: context imbalance in tcp_child_process() - unexpected unlock
> The root cause is the missing annotation at tcp_child_process()
>
> Add the missing __releases(&((child)->sk_lock.slock)) annotation
>
> Signed-off-by: Jules Irenge <jbi.octave@xxxxxxxxx>
> ---
> net/ipv4/tcp_minisocks.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
> index ad3b56d9fa71..0e8a5b6e477c 100644
> --- a/net/ipv4/tcp_minisocks.c
> +++ b/net/ipv4/tcp_minisocks.c
> @@ -817,6 +817,7 @@ EXPORT_SYMBOL(tcp_check_req);
>
> int tcp_child_process(struct sock *parent, struct sock *child,
> struct sk_buff *skb)
> + __releases(&((child)->sk_lock.slock))
> {
> int ret = 0;
> int state = child->sk_state;


Yeah, although we prefer to use lockdep these days ;)

Reviewed-by: Eric Dumazet <edumazet@xxxxxxxxxx>