[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected. No action required from the submitter.
The upstream commit SHA1 provided is correct: 52f671db18823089a02f07efc04efdb2272ddc17
WARNING: Author mismatch between patch and upstream commit: Backport author: jianqi.ren.cn@windriver.com Commit author: Jakub Kicinskikuba@kernel.org
Status in newer kernel trees: 6.14.y | Present (exact SHA1) 6.12.y | Present (exact SHA1) 6.6.y | Present (different SHA1: 7c787888d164)
Note: The patch differs from the upstream commit: --- 1: 52f671db18823 ! 1: 97f4f1be939a2 net/sched: act_mirred: use the backlog for mirred ingress @@ Metadata ## Commit message ## net/sched: act_mirred: use the backlog for mirred ingress
+ [ Upstream commit 52f671db18823089a02f07efc04efdb2272ddc17 ] + The test Davide added in commit ca22da2fbd69 ("act_mirred: use the backlog for nested calls to mirred ingress") hangs our testing VMs every 10 or so runs, with the familiar tcp_v4_rcv -> tcp_v4_rcv deadlock reported by @@ Commit message Signed-off-by: Jakub Kicinski kuba@kernel.org Acked-by: Jamal Hadi Salim jhs@mojatatu.com Signed-off-by: David S. Miller davem@davemloft.net + [Minor conflict resolved due to code context change.] + Signed-off-by: Jianqi Ren jianqi.ren.cn@windriver.com + Signed-off-by: He Zhe zhe.he@windriver.com
## net/sched/act_mirred.c ## @@ net/sched/act_mirred.c: static int tcf_mirred_init(struct net *net, struct nlattr *nla, @@ net/sched/act_mirred.c: static int tcf_mirred_init(struct net *net, struct nlatt err = netif_rx(skb); else err = netif_receive_skb(skb); -@@ net/sched/act_mirred.c: static int tcf_mirred_to_dev(struct sk_buff *skb, struct tcf_mirred *m, - - skb_set_redirected(skb_to_send, skb_to_send->tc_at_ingress); +@@ net/sched/act_mirred.c: static int tcf_mirred_act(struct sk_buff *skb, const struct tc_action *a,
-- err = tcf_mirred_forward(want_ingress, skb_to_send); -+ err = tcf_mirred_forward(at_ingress, want_ingress, skb_to_send); - } else { -- err = tcf_mirred_forward(want_ingress, skb_to_send); -+ err = tcf_mirred_forward(at_ingress, want_ingress, skb_to_send); + /* let's the caller reinsert the packet, if possible */ + if (use_reinsert) { +- err = tcf_mirred_forward(want_ingress, skb); ++ err = tcf_mirred_forward(at_ingress, want_ingress, skb); + if (err) + tcf_action_inc_overlimit_qstats(&m->common); + __this_cpu_dec(mirred_nest_level); +@@ net/sched/act_mirred.c: static int tcf_mirred_act(struct sk_buff *skb, const struct tc_action *a, + } }
- if (err) { +- err = tcf_mirred_forward(want_ingress, skb2); ++ err = tcf_mirred_forward(at_ingress, want_ingress, skb2); + if (err) + tcf_action_inc_overlimit_qstats(&m->common); + __this_cpu_dec(mirred_nest_level);
## tools/testing/selftests/net/forwarding/tc_actions.sh ## @@ tools/testing/selftests/net/forwarding/tc_actions.sh: mirred_egress_to_ingress_tcp_test() ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-6.1.y | Success | Success |