On Mon, 2016-09-12 at 16:10 -0700, Eric Dumazet wrote:
>
> diff --git a/net/core/gen_stats.c b/net/core/gen_stats.c
> index
> 508e051304fb62627e61b5065b2325edd1b84f2e..dc9dd8ae7d5405f76c775278dac7689655b21041
> 100644
> --- a/net/core/gen_stats.c
> +++ b/net/core/gen_stats.c
> @@ -142,10 +142,14 @@ __gnet_stats_copy_basic(const seqcount_t *running,
> return;
> }
> do {
> - if (running)
> + if (running) {
> + local_bh_disable();
> seq = read_seqcount_begin(running);
> + }
> bstats->bytes = b->bytes;
> bstats->packets = b->packets;
> + if (running)
> + local_bh_enable();
> } while (running && read_seqcount_retry(running, seq));
> }
Ah well, forget this patch, re-enabling bh right before
read_seqcount_retry() is not going to help.