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.