Skip to content

Commit a34ffec

Browse files
dickmanmaorSaeed Mahameed
authored andcommitted
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: d6d2778 ("net/mlx5: E-Switch, Restore chain id on miss") Fixes: c756909 ("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>
1 parent 5a2ba25 commit a34ffec

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

  • drivers/net/ethernet/mellanox/mlx5/core

drivers/net/ethernet/mellanox/mlx5/core/en_rx.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,8 +1262,10 @@ static void mlx5e_handle_rx_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe)
12621262
mlx5e_complete_rx_cqe(rq, cqe, cqe_bcnt, skb);
12631263

12641264
if (mlx5e_cqe_regb_chain(cqe))
1265-
if (!mlx5e_tc_update_skb(cqe, skb))
1265+
if (!mlx5e_tc_update_skb(cqe, skb)) {
1266+
dev_kfree_skb_any(skb);
12661267
goto free_wqe;
1268+
}
12671269

12681270
napi_gro_receive(rq->cq.napi, skb);
12691271

@@ -1316,8 +1318,10 @@ static void mlx5e_handle_rx_cqe_rep(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe)
13161318
if (rep->vlan && skb_vlan_tag_present(skb))
13171319
skb_vlan_pop(skb);
13181320

1319-
if (!mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv))
1321+
if (!mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv)) {
1322+
dev_kfree_skb_any(skb);
13201323
goto free_wqe;
1324+
}
13211325

13221326
napi_gro_receive(rq->cq.napi, skb);
13231327

@@ -1371,8 +1375,10 @@ static void mlx5e_handle_rx_cqe_mpwrq_rep(struct mlx5e_rq *rq, struct mlx5_cqe64
13711375

13721376
mlx5e_complete_rx_cqe(rq, cqe, cqe_bcnt, skb);
13731377

1374-
if (!mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv))
1378+
if (!mlx5e_rep_tc_update_skb(cqe, skb, &tc_priv)) {
1379+
dev_kfree_skb_any(skb);
13751380
goto mpwrq_cqe_out;
1381+
}
13761382

13771383
napi_gro_receive(rq->cq.napi, skb);
13781384

@@ -1528,8 +1534,10 @@ static void mlx5e_handle_rx_cqe_mpwrq(struct mlx5e_rq *rq, struct mlx5_cqe64 *cq
15281534
mlx5e_complete_rx_cqe(rq, cqe, cqe_bcnt, skb);
15291535

15301536
if (mlx5e_cqe_regb_chain(cqe))
1531-
if (!mlx5e_tc_update_skb(cqe, skb))
1537+
if (!mlx5e_tc_update_skb(cqe, skb)) {
1538+
dev_kfree_skb_any(skb);
15321539
goto mpwrq_cqe_out;
1540+
}
15331541

15341542
napi_gro_receive(rq->cq.napi, skb);
15351543

0 commit comments

Comments
 (0)