lkml.org 
[lkml]   [2021]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 046/266] net/mlx5e: IPsec/rep_tc: Fix rep_tc_update_skb drops IPsec packet
    Date
    From: Huy Nguyen <huyn@nvidia.com>

    [ Upstream commit c07274ab1ab2c38fb128e32643c22c89cb319384 ]

    rep_tc copy REG_C1 to REG_B. IPsec crypto utilizes the whole REG_B
    register with BIT31 as IPsec marker. rep_tc_update_skb drops
    IPsec because it thought REG_B contains bad value.

    In previous patch, BIT 31 of REG_C1 is reserved for IPsec.
    Skip the rep_tc_update_skb if BIT31 of REG_B is set.

    Signed-off-by: Huy Nguyen <huyn@nvidia.com>
    Signed-off-by: Raed Salem <raeds@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
    index f90894eea9e0..5346271974f5 100644
    --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
    @@ -1310,7 +1310,8 @@ static void mlx5e_handle_rx_cqe_rep(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe)
    if (rep->vlan && skb_vlan_tag_present(skb))
    skb_vlan_pop(skb);

    - if (!mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv)) {
    + if (unlikely(!mlx5_ipsec_is_rx_flow(cqe) &&
    + !mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv))) {
    dev_kfree_skb_any(skb);
    goto free_wqe;
    }
    @@ -1367,7 +1368,8 @@ static void mlx5e_handle_rx_cqe_mpwrq_rep(struct mlx5e_rq *rq, struct mlx5_cqe64

    mlx5e_complete_rx_cqe(rq, cqe, cqe_bcnt, skb);

    - if (!mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv)) {
    + if (unlikely(!mlx5_ipsec_is_rx_flow(cqe) &&
    + !mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv))) {
    dev_kfree_skb_any(skb);
    goto mpwrq_cqe_out;
    }
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-15 21:39    [W:5.141 / U:1.256 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site