Skip to content

Commit 379349e

Browse files
Paolo Abenidavem330
authored andcommitted
Revert "net: dev: introduce support for sch BYPASS for lockless qdisc"
This reverts commit ba27b4c Ahmed reported ouf-of-order issues bisected to commit ba27b4c ("net: dev: introduce support for sch BYPASS for lockless qdisc"). I can't find any working solution other than a plain revert. This will introduce some minor performance regressions for pfifo_fast qdisc. I plan to address them in net-next with more indirect call wrapper boilerplate for qdiscs. Reported-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Fixes: ba27b4c ("net: dev: introduce support for sch BYPASS for lockless qdisc") Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 29f20dd commit 379349e

File tree

1 file changed

+2
-20
lines changed

1 file changed

+2
-20
lines changed

net/core/dev.c

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3662,26 +3662,8 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q,
36623662
qdisc_calculate_pkt_len(skb, q);
36633663

36643664
if (q->flags & TCQ_F_NOLOCK) {
3665-
if ((q->flags & TCQ_F_CAN_BYPASS) && READ_ONCE(q->empty) &&
3666-
qdisc_run_begin(q)) {
3667-
if (unlikely(test_bit(__QDISC_STATE_DEACTIVATED,
3668-
&q->state))) {
3669-
__qdisc_drop(skb, &to_free);
3670-
rc = NET_XMIT_DROP;
3671-
goto end_run;
3672-
}
3673-
qdisc_bstats_cpu_update(q, skb);
3674-
3675-
rc = NET_XMIT_SUCCESS;
3676-
if (sch_direct_xmit(skb, q, dev, txq, NULL, true))
3677-
__qdisc_run(q);
3678-
3679-
end_run:
3680-
qdisc_run_end(q);
3681-
} else {
3682-
rc = q->enqueue(skb, q, &to_free) & NET_XMIT_MASK;
3683-
qdisc_run(q);
3684-
}
3665+
rc = q->enqueue(skb, q, &to_free) & NET_XMIT_MASK;
3666+
qdisc_run(q);
36853667

36863668
if (unlikely(to_free))
36873669
kfree_skb_list(to_free);

0 commit comments

Comments
 (0)