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 ? Thanks !