On Mon, Jul 4, 2016 at 6:07 AM, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > Hi all, > > Today's linux-next merge of the net-next tree got a conflict in: > > drivers/net/ethernet/mellanox/mlx5/core/en_main.c > > between commit: > > 29429f3300a3 ("net/mlx5e: Timeout if SQ doesn't flush during close") > > from the net tree and commit: > > 507f0c817f7a ("net/mlx5e: Add TXQ set max rate support") > > from the net-next tree. > > I fixed it up (see below) and can carry the fix as necessary. This > is now fixed as far as linux-next is concerned, but any non trivial > conflicts should be mentioned to your upstream maintainer when your tree > is submitted for merging. You may also want to consider cooperating > with the maintainer of the conflicting tree to minimise any particularly > complex conflicts. > > -- > Cheers, > Stephen Rothwell > > diff --cc drivers/net/ethernet/mellanox/mlx5/core/en_main.c > index 7a0dca29c642,96ec53a6a595..000000000000 > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > @@@ -39,16 -39,10 +39,17 @@@ > #include "eswitch.h" > #include "vxlan.h" > > +enum { > + MLX5_EN_QP_FLUSH_TIMEOUT_MS = 5000, > + MLX5_EN_QP_FLUSH_MSLEEP_QUANT = 20, > + MLX5_EN_QP_FLUSH_MAX_ITER = MLX5_EN_QP_FLUSH_TIMEOUT_MS / > + MLX5_EN_QP_FLUSH_MSLEEP_QUANT, > +}; > + > struct mlx5e_rq_param { > - u32 rqc[MLX5_ST_SZ_DW(rqc)]; > - struct mlx5_wq_param wq; > + u32 rqc[MLX5_ST_SZ_DW(rqc)]; > + struct mlx5_wq_param wq; > + bool am_enabled; > }; > > struct mlx5e_sq_param { > @@@ -574,8 -543,9 +582,10 @@@ static void mlx5e_close_rq(struct mlx5e > /* avoid destroying rq before mlx5e_poll_rx_cq() is done with it */ > napi_synchronize(&rq->channel->napi); > > + cancel_work_sync(&rq->am.work); > + > mlx5e_disable_rq(rq); > + mlx5e_free_rx_descs(rq); > mlx5e_destroy_rq(rq); > } > > @@@ -835,19 -810,12 +853,19 @@@ static void mlx5e_close_sq(struct mlx5e > if (mlx5e_sq_has_room_for(sq, 1)) > mlx5e_send_nop(sq, true); > > - mlx5e_modify_sq(sq, MLX5_SQC_STATE_RDY, MLX5_SQC_STATE_ERR, > - false, 0); > + err = mlx5e_modify_sq(sq, MLX5_SQC_STATE_RDY, > - MLX5_SQC_STATE_ERR); > ++ MLX5_SQC_STATE_ERR, false, 0); > + if (err) > + set_bit(MLX5E_SQ_STATE_TX_TIMEOUT, &sq->state); > } Thanks Stephen, the fixup looks good. I already notified Dave on those issues and how to fix, see mail thread "Mellanox 100G mlx5 resiliency and xmit path fixes" Thanks, Saeed. -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html