| From foo@baz Fri 26 Jul 2019 10:52:07 AM CEST |
| From: Aya Levin <ayal@mellanox.com> |
| Date: Mon, 17 Jun 2019 12:01:45 +0300 |
| Subject: net/mlx5e: Fix return value from timeout recover function |
| |
| From: Aya Levin <ayal@mellanox.com> |
| |
| [ Upstream commit 39825350ae2a52f8513741b36e42118bd80dd689 ] |
| |
| Fix timeout recover function to return a meaningful return value. |
| When an interrupt was not sent by the FW, return IO error instead of |
| 'true'. |
| |
| Fixes: c7981bea48fb ("net/mlx5e: Fix return status of TX reporter timeout recover") |
| Signed-off-by: Aya Levin <ayal@mellanox.com> |
| Acked-by: Jiri Pirko <jiri@mellanox.com> |
| Reviewed-by: Tariq Toukan <tariqt@mellanox.com> |
| Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c | 6 ++---- |
| 1 file changed, 2 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c |
| +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c |
| @@ -142,22 +142,20 @@ static int mlx5e_tx_reporter_timeout_rec |
| { |
| struct mlx5_eq_comp *eq = sq->cq.mcq.eq; |
| u32 eqe_count; |
| - int ret; |
| |
| netdev_err(sq->channel->netdev, "EQ 0x%x: Cons = 0x%x, irqn = 0x%x\n", |
| eq->core.eqn, eq->core.cons_index, eq->core.irqn); |
| |
| eqe_count = mlx5_eq_poll_irq_disabled(eq); |
| - ret = eqe_count ? false : true; |
| if (!eqe_count) { |
| clear_bit(MLX5E_SQ_STATE_ENABLED, &sq->state); |
| - return ret; |
| + return -EIO; |
| } |
| |
| netdev_err(sq->channel->netdev, "Recover %d eqes on EQ 0x%x\n", |
| eqe_count, eq->core.eqn); |
| sq->channel->stats->eq_rearm++; |
| - return ret; |
| + return 0; |
| } |
| |
| int mlx5e_tx_reporter_timeout(struct mlx5e_txqsq *sq) |