net/mlx5e: Release skb in case of failure in tc update skb
In case of failure in tc update skb the packet is dropped without freeing the skb. Fixed by freeing the skb in case failure in tc update skb. Fixes: d6d27782864f ("net/mlx5: E-Switch, Restore chain id on miss") Fixes: c75690972228 ("net/mlx5e: Add tc chains offload support for nic flows") Signed-off-by: Maor Dickman <maord@nvidia.com> Reviewed-by: Roi Dayan <roid@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
5a2ba25a55
commit
a34ffec8af
@ -1262,8 +1262,10 @@ static void mlx5e_handle_rx_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe)
|
||||
mlx5e_complete_rx_cqe(rq, cqe, cqe_bcnt, skb);
|
||||
|
||||
if (mlx5e_cqe_regb_chain(cqe))
|
||||
if (!mlx5e_tc_update_skb(cqe, skb))
|
||||
if (!mlx5e_tc_update_skb(cqe, skb)) {
|
||||
dev_kfree_skb_any(skb);
|
||||
goto free_wqe;
|
||||
}
|
||||
|
||||
napi_gro_receive(rq->cq.napi, skb);
|
||||
|
||||
@ -1316,8 +1318,10 @@ 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 (!mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv)) {
|
||||
dev_kfree_skb_any(skb);
|
||||
goto free_wqe;
|
||||
}
|
||||
|
||||
napi_gro_receive(rq->cq.napi, skb);
|
||||
|
||||
@ -1371,8 +1375,10 @@ 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 (!mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv)) {
|
||||
dev_kfree_skb_any(skb);
|
||||
goto mpwrq_cqe_out;
|
||||
}
|
||||
|
||||
napi_gro_receive(rq->cq.napi, skb);
|
||||
|
||||
@ -1528,8 +1534,10 @@ static void mlx5e_handle_rx_cqe_mpwrq(struct mlx5e_rq *rq, struct mlx5_cqe64 *cq
|
||||
mlx5e_complete_rx_cqe(rq, cqe, cqe_bcnt, skb);
|
||||
|
||||
if (mlx5e_cqe_regb_chain(cqe))
|
||||
if (!mlx5e_tc_update_skb(cqe, skb))
|
||||
if (!mlx5e_tc_update_skb(cqe, skb)) {
|
||||
dev_kfree_skb_any(skb);
|
||||
goto mpwrq_cqe_out;
|
||||
}
|
||||
|
||||
napi_gro_receive(rq->cq.napi, skb);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user