Messages in this thread | | | From | Eric Dumazet <> | Date | Wed, 10 Nov 2021 12:11:24 -0800 | Subject | Re: [PATCH v2 net] net: fix premature exit from NAPI state polling in napi_disable() |
| |
On Wed, Nov 10, 2021 at 11:56 AM Alexander Lobakin <alexandr.lobakin@intel.com> wrote: > > Commit 719c57197010 ("net: make napi_disable() symmetric with > enable") accidentally introduced a bug sometimes leading to a kernel > BUG when bringing an iface up/down under heavy traffic load. > > Prior to this commit, napi_disable() was polling n->state until > none of (NAPIF_STATE_SCHED | NAPIF_STATE_NPSVC) is set and then > always flip them. Now there's a possibility to get away with the > NAPIF_STATE_SCHE unset as 'continue' drops us to the cmpxchg() > call with an unitialized variable, rather than straight to > another round of the state check. >
...
> > [0] https://lore.kernel.org/netdev/20211110191126.1214-1-alexandr.lobakin@intel.com > > Fixes: 719c57197010 ("net: make napi_disable() symmetric with enable") > Suggested-by: Eric Dumazet <edumazet@google.com> # for-loop > Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com> > Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com> > ---
Thanks a lot ! Reviewed-by: Eric Dumazet <edumazet@google.com>
| |