aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/hack-5.4
diff options
context:
space:
mode:
authorJohn Audia <graysky@archlinux.us>2021-06-03 14:46:59 -0400
committerHauke Mehrtens <hauke@hauke-m.de>2021-06-06 00:25:25 +0200
commit752cd29904c9304125005b34354b75b968bfc449 (patch)
treed3ae84605ec5662eb77b49e7886971c61c0dfb48 /target/linux/generic/hack-5.4
parentda77b9c2f185db72a2917aa2e18f0c8bb164d3c4 (diff)
downloadupstream-752cd29904c9304125005b34354b75b968bfc449.tar.gz
upstream-752cd29904c9304125005b34354b75b968bfc449.tar.bz2
upstream-752cd29904c9304125005b34354b75b968bfc449.zip
kernel: bump 5.4 to 5.4.124
Manually rebased: generic/hack-5.4/662-remove_pfifo_fast.patch All other patches automatically rebased. Build system: x86_64 Build-tested: ipq806x/R7800 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> [manual changes to ramips/patches-5.10/835-asoc-add-mt7620-support.patch] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Diffstat (limited to 'target/linux/generic/hack-5.4')
-rw-r--r--target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch6
-rw-r--r--target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch21
2 files changed, 23 insertions, 4 deletions
diff --git a/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch b/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch
index 10197eeb04..6d0a54c01d 100644
--- a/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch
+++ b/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
-@@ -570,12 +570,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
+@@ -603,12 +603,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
extern struct Qdisc_ops pfifo_fast_ops;
extern struct Qdisc_ops mq_qdisc_ops;
extern struct Qdisc_ops noqueue_qdisc_ops;
@@ -82,8 +82,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+const struct Qdisc_ops *default_qdisc_ops = &fq_codel_qdisc_ops;
EXPORT_SYMBOL(default_qdisc_ops);
- /* Main transmission queue. */
-@@ -1035,12 +1035,12 @@ static void attach_one_default_qdisc(str
+ static void qdisc_maybe_clear_missed(struct Qdisc *q,
+@@ -1079,12 +1079,12 @@ static void attach_one_default_qdisc(str
void *_unused)
{
struct Qdisc *qdisc;
diff --git a/target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch b/target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch
index 27946f8cec..9df3a8258d 100644
--- a/target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch
+++ b/target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
-@@ -595,211 +595,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea
+@@ -620,230 +620,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea
.owner = THIS_MODULE,
};
@@ -64,8 +64,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
-{
- struct pfifo_fast_priv *priv = qdisc_priv(qdisc);
- struct sk_buff *skb = NULL;
+- bool need_retry = true;
- int band;
-
+-retry:
- for (band = 0; band < PFIFO_FAST_BANDS && !skb; band++) {
- struct skb_array *q = band2list(priv, band);
-
@@ -76,6 +78,23 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
- }
- if (likely(skb)) {
- qdisc_update_stats_at_dequeue(qdisc, skb);
+- } else if (need_retry &&
+- test_bit(__QDISC_STATE_MISSED, &qdisc->state)) {
+- /* Delay clearing the STATE_MISSED here to reduce
+- * the overhead of the second spin_trylock() in
+- * qdisc_run_begin() and __netif_schedule() calling
+- * in qdisc_run_end().
+- */
+- clear_bit(__QDISC_STATE_MISSED, &qdisc->state);
+-
+- /* Make sure dequeuing happens after clearing
+- * STATE_MISSED.
+- */
+- smp_mb__after_atomic();
+-
+- need_retry = false;
+-
+- goto retry;
- } else {
- WRITE_ONCE(qdisc->empty, true);
- }