Commit 299a1195 authored by Tariq Toukan's avatar Tariq Toukan Committed by Saeed Mahameed
Browse files

net/mlx5e: Fix wrong xmit_more application



Cited patch refactored the xmit_more indication while not preserving
its functionality. Fix it.

Fixes: 3c31ff22 ("drivers: mellanox: use netdev_xmit_more() helper")
Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
parent dd064867
Loading
Loading
Loading
Loading
+5 −4
Original line number Original line Diff line number Diff line
@@ -361,7 +361,7 @@ netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
	}
	}


	stats->bytes     += num_bytes;
	stats->bytes     += num_bytes;
	stats->xmit_more += netdev_xmit_more();
	stats->xmit_more += xmit_more;


	headlen = skb->len - ihs - skb->data_len;
	headlen = skb->len - ihs - skb->data_len;
	ds_cnt += !!headlen;
	ds_cnt += !!headlen;
@@ -624,7 +624,8 @@ mlx5i_txwqe_build_datagram(struct mlx5_av *av, u32 dqpn, u32 dqkey,
}
}


netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
			  struct mlx5_av *av, u32 dqpn, u32 dqkey)
			  struct mlx5_av *av, u32 dqpn, u32 dqkey,
			  bool xmit_more)
{
{
	struct mlx5_wq_cyc *wq = &sq->wq;
	struct mlx5_wq_cyc *wq = &sq->wq;
	struct mlx5i_tx_wqe *wqe;
	struct mlx5i_tx_wqe *wqe;
@@ -660,7 +661,7 @@ netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
	}
	}


	stats->bytes     += num_bytes;
	stats->bytes     += num_bytes;
	stats->xmit_more += netdev_xmit_more();
	stats->xmit_more += xmit_more;


	headlen = skb->len - ihs - skb->data_len;
	headlen = skb->len - ihs - skb->data_len;
	ds_cnt += !!headlen;
	ds_cnt += !!headlen;
@@ -705,7 +706,7 @@ netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
		goto err_drop;
		goto err_drop;


	mlx5e_txwqe_complete(sq, skb, opcode, ds_cnt, num_wqebbs, num_bytes,
	mlx5e_txwqe_complete(sq, skb, opcode, ds_cnt, num_wqebbs, num_bytes,
			     num_dma, wi, cseg, false);
			     num_dma, wi, cseg, xmit_more);


	return NETDEV_TX_OK;
	return NETDEV_TX_OK;


+1 −1
Original line number Original line Diff line number Diff line
@@ -619,7 +619,7 @@ static int mlx5i_xmit(struct net_device *dev, struct sk_buff *skb,
	struct mlx5_ib_ah *mah   = to_mah(address);
	struct mlx5_ib_ah *mah   = to_mah(address);
	struct mlx5i_priv *ipriv = epriv->ppriv;
	struct mlx5i_priv *ipriv = epriv->ppriv;


	return mlx5i_sq_xmit(sq, skb, &mah->av, dqpn, ipriv->qkey);
	return mlx5i_sq_xmit(sq, skb, &mah->av, dqpn, ipriv->qkey, netdev_xmit_more());
}
}


static void mlx5i_set_pkey_index(struct net_device *netdev, int id)
static void mlx5i_set_pkey_index(struct net_device *netdev, int id)
+2 −1
Original line number Original line Diff line number Diff line
@@ -119,7 +119,8 @@ static inline void mlx5i_sq_fetch_wqe(struct mlx5e_txqsq *sq,
}
}


netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
			  struct mlx5_av *av, u32 dqpn, u32 dqkey);
			  struct mlx5_av *av, u32 dqpn, u32 dqkey,
			  bool xmit_more);
void mlx5i_handle_rx_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe);
void mlx5i_handle_rx_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe);
void mlx5i_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats);
void mlx5i_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats);