mirror of
https://github.com/torvalds/linux.git
synced 2026-07-31 19:47:08 +02:00
net/mlx5e: Remove unused VLAN insertion logic in TX path
The VLAN insertion capability (`wqe_vlan_insert`) was never enabled on all mlx5 devices. When VLAN TX offload is advertised but this capability is not supported, the driver uses inline headers to insert the VLAN tag. To support this, the driver used to set the `MLX5E_SQ_STATE_VLAN_NEED_L2_INLINE` bit to enforce L2 inline mode when `wqe_vlan_insert` was not supported. Since the capability is disabled on all devices, this logic was always active, and the SQ flag has become redundant. L2 inline is enforced unconditionally for VLAN-tagged packets. The `skb_vlan_tag_present()` check in the else-if block of `mlx5e_sq_xmit_wqe()` is never true by this point in the TX flow, as the VLAN tag has already been inserted by the driver using inline headers. As a result, this code is never executed. Remove the redundant SQ state, dead VLAN insertion code block, and related logic. Signed-off-by: Carolina Jubran <cjubran@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/1752009387-13300-2-git-send-email-tariqt@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
5d6fc6b4d0
commit
ade89d1f24
|
|
@ -383,7 +383,6 @@ enum {
|
|||
MLX5E_SQ_STATE_RECOVERING,
|
||||
MLX5E_SQ_STATE_IPSEC,
|
||||
MLX5E_SQ_STATE_DIM,
|
||||
MLX5E_SQ_STATE_VLAN_NEED_L2_INLINE,
|
||||
MLX5E_SQ_STATE_PENDING_XSK_TX,
|
||||
MLX5E_SQ_STATE_PENDING_TLS_RX_RESYNC,
|
||||
MLX5E_NUM_SQ_STATES, /* Must be kept last */
|
||||
|
|
|
|||
|
|
@ -340,8 +340,6 @@ static int mlx5e_ptp_alloc_txqsq(struct mlx5e_ptp *c, int txq_ix,
|
|||
sq->stats = &c->priv->ptp_stats.sq[tc];
|
||||
sq->ptpsq = ptpsq;
|
||||
INIT_WORK(&sq->recover_work, mlx5e_tx_err_cqe_work);
|
||||
if (!MLX5_CAP_ETH(mdev, wqe_vlan_insert))
|
||||
set_bit(MLX5E_SQ_STATE_VLAN_NEED_L2_INLINE, &sq->state);
|
||||
sq->stop_room = param->stop_room;
|
||||
sq->ptp_cyc2time = mlx5_sq_ts_translator(mdev);
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ static const char * const sq_sw_state_type_name[] = {
|
|||
[MLX5E_SQ_STATE_RECOVERING] = "recovering",
|
||||
[MLX5E_SQ_STATE_IPSEC] = "ipsec",
|
||||
[MLX5E_SQ_STATE_DIM] = "dim",
|
||||
[MLX5E_SQ_STATE_VLAN_NEED_L2_INLINE] = "vlan_need_l2_inline",
|
||||
[MLX5E_SQ_STATE_PENDING_XSK_TX] = "pending_xsk_tx",
|
||||
[MLX5E_SQ_STATE_PENDING_TLS_RX_RESYNC] = "pending_tls_rx_resync",
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1677,8 +1677,6 @@ static int mlx5e_alloc_txqsq(struct mlx5e_channel *c,
|
|||
sq->hw_mtu = MLX5E_SW2HW_MTU(params, params->sw_mtu);
|
||||
sq->max_sq_mpw_wqebbs = mlx5e_get_max_sq_aligned_wqebbs(mdev);
|
||||
INIT_WORK(&sq->recover_work, mlx5e_tx_err_cqe_work);
|
||||
if (!MLX5_CAP_ETH(mdev, wqe_vlan_insert))
|
||||
set_bit(MLX5E_SQ_STATE_VLAN_NEED_L2_INLINE, &sq->state);
|
||||
if (mlx5_ipsec_device_caps(c->priv->mdev))
|
||||
set_bit(MLX5E_SQ_STATE_IPSEC, &sq->state);
|
||||
if (param->is_mpw)
|
||||
|
|
|
|||
|
|
@ -256,8 +256,7 @@ mlx5e_tx_wqe_inline_mode(struct mlx5e_txqsq *sq, struct sk_buff *skb,
|
|||
|
||||
mode = sq->min_inline_mode;
|
||||
|
||||
if (skb_vlan_tag_present(skb) &&
|
||||
test_bit(MLX5E_SQ_STATE_VLAN_NEED_L2_INLINE, &sq->state))
|
||||
if (skb_vlan_tag_present(skb))
|
||||
mode = max_t(u8, MLX5_INLINE_MODE_L2, mode);
|
||||
|
||||
return mode;
|
||||
|
|
@ -483,12 +482,6 @@ mlx5e_sq_xmit_wqe(struct mlx5e_txqsq *sq, struct sk_buff *skb,
|
|||
}
|
||||
eseg->inline_hdr.sz |= cpu_to_be16(ihs);
|
||||
dseg += wqe_attr->ds_cnt_inl;
|
||||
} else if (skb_vlan_tag_present(skb)) {
|
||||
eseg->insert.type = cpu_to_be16(MLX5_ETH_WQE_INSERT_VLAN);
|
||||
if (skb->vlan_proto == cpu_to_be16(ETH_P_8021AD))
|
||||
eseg->insert.type |= cpu_to_be16(MLX5_ETH_WQE_SVLAN);
|
||||
eseg->insert.vlan_tci = cpu_to_be16(skb_vlan_tag_get(skb));
|
||||
stats->added_vlan_packets++;
|
||||
}
|
||||
|
||||
dseg += wqe_attr->ds_cnt_ids;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user