On Thu, 2018-11-29 at 01:54 +0000, Yang Xiao wrote: > From: Young Xiao <yang...@hotmail.com> > > If ice driver has q_vectors w/ active NAPI that has no rings, > then this will result in a divide by zero error. To correct it > I am updating the driver code so that we only support NAPI on > q_vectors that have 1 or more rings allocated to them. > > See commit 13a8cd191a2b ("i40e: Do not enable NAPI on q_vectors > that have no rings") for detail. > > Signed-off-by: Young Xiao <yang...@hotmail.com> > --- > drivers/net/ethernet/intel/ice/ice_main.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/intel/ice/ice_main.c > b/drivers/net/ethernet/intel/ice/ice_main.c > index 333312a..9450004 100644 > --- a/drivers/net/ethernet/intel/ice/ice_main.c > +++ b/drivers/net/ethernet/intel/ice/ice_main.c > @@ -2563,8 +2563,12 @@ static void ice_napi_enable_all(struct ice_vsi > *vsi) > if (!vsi->netdev) > return; > > - for (q_idx = 0; q_idx < vsi->num_q_vectors; q_idx++) > - napi_enable(&vsi->q_vectors[q_idx]->napi); > + for (q_idx = 0; q_idx < vsi->num_q_vectors; q_idx++) { > + struct ice_q_vector *q_vector = vsi- > >q_vectors[q_idx]; > + > + if (q_vector->rx.ring || q_vector->tx.ring) > + napi_enable(&q_vector->napi); > + } > } > > /** > @@ -2931,8 +2935,12 @@ static void ice_napi_disable_all(struct > ice_vsi *vsi) > if (!vsi->netdev) > return; > > - for (q_idx = 0; q_idx < vsi->num_q_vectors; q_idx++) > - napi_disable(&vsi->q_vectors[q_idx]->napi); > + for (q_idx = 0; q_idx < vsi->num_q_vectors; q_idx++) { > + struct ice_q_vector *q_vector = vsi- > >q_vectors[q_idx]; > + > + if (q_vector->rx.ring || q_vector->tx.ring) > + napi_disable(&q_vector->napi); > + } > } > > /**
Acked-by: Anirudh Venkataramanan <anirudh.venkatarama...@intel.com> Thanks for the patch, Yang! - Ani
smime.p7s
Description: S/MIME cryptographic signature