On 6/6/17 6:27 PM, Eric Dumazet wrote:
> Good catch, but it looks like similar fix is needed a few lines before.
> 
> diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
> index 
> deea901746c8570c5e801e40592c91e3b62812e0..b214443dc8346cef3690df7f27cc48a864028865
>  100644
> --- a/net/ipv6/ip6_fib.c
> +++ b/net/ipv6/ip6_fib.c
> @@ -372,12 +372,13 @@ static int fib6_dump_table(struct fib6_table *table, 
> struct sk_buff *skb,
>  
>               read_lock_bh(&table->tb6_lock);
>               res = fib6_walk(net, w);
> -             read_unlock_bh(&table->tb6_lock);
>               if (res > 0) {
>                       cb->args[4] = 1;
>                       cb->args[5] = w->root->fn_sernum;
>               }
> +             read_unlock_bh(&table->tb6_lock);

indeed. tunnel vision on Ben's problem

Reply via email to