On Sat, 2016-12-03 at 07:00 -0800, Eric Dumazet wrote: > On Wed, 2016-11-16 at 07:26 -0800, Eric Dumazet wrote: > > From: Eric Dumazet <eduma...@google.com> > > > > Calling napi_hash_del() before netif_napi_del() is dangerous > > if a synchronize_rcu() is not enforced before NAPI struct freeing. > > > > Lets leave this detail to core networking stack to get it right. > > > > Signed-off-by: Eric Dumazet <eduma...@google.com> > > Cc: Jeff Kirsher <jeffrey.t.kirs...@intel.com> > > --- > > drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 6 ------ > > 1 file changed, 6 deletions(-) > > > > diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c > > b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c > > index 7eaac3234049..bf4d7efc7dbd 100644 > > --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c > > +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c > > @@ -2511,9 +2511,6 @@ static int ixgbevf_alloc_q_vectors(struct > > ixgbevf_adapter *adapter) > > while (q_idx) { > > q_idx--; > > q_vector = adapter->q_vector[q_idx]; > > -#ifdef CONFIG_NET_RX_BUSY_POLL > > - napi_hash_del(&q_vector->napi); > > -#endif > > netif_napi_del(&q_vector->napi); > > kfree(q_vector); > > adapter->q_vector[q_idx] = NULL; > > @@ -2537,9 +2534,6 @@ static void ixgbevf_free_q_vectors(struct > > ixgbevf_adapter *adapter) > > struct ixgbevf_q_vector *q_vector = adapter- > > >q_vector[q_idx]; > > > > adapter->q_vector[q_idx] = NULL; > > -#ifdef CONFIG_NET_RX_BUSY_POLL > > - napi_hash_del(&q_vector->napi); > > -#endif > > netif_napi_del(&q_vector->napi); > > kfree(q_vector); > > } > > > > > > It looks this patch was not picked up ?
Yeah, sorry I missed it since it was not sent to intel-wired-lan mailing list. Dave I am fine if you want to pick this up for your net tree (if it is not too late).
signature.asc
Description: This is a digitally signed message part