b3f95490b9
This adds initial support for kernel 4.14 based on the patches for kernel 4.9. In the configuration I deactivated some of the new possible security features like: CONFIG_REFCOUNT_FULL CONFIG_SLAB_FREELIST_HARDENED CONFIG_SOFTLOCKUP_DETECTOR CONFIG_WARN_ALL_UNSEEDED_RANDOM And these overlay FS options are also deactivated: CONFIG_OVERLAY_FS_INDEX CONFIG_OVERLAY_FS_REDIRECT_DIR I activated this: CONFIG_FORTIFY_SOURCE CONFIG_POSIX_TIMERS CONFIG_SLAB_MERGE_DEFAULT CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED I am not sure if I did the porting correct for the following patches: target/linux/generic/backport-4.14/020-backport_netfilter_rtcache.patch target/linux/generic/hack-4.14/220-gc_sections.patch target/linux/generic/hack-4.14/321-powerpc_crtsavres_prereq.patch target/linux/generic/pending-4.14/305-mips_module_reloc.patch target/linux/generic/pending-4.14/611-netfilter_match_bypass_default_table.patch target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
94 lines
2.9 KiB
Diff
94 lines
2.9 KiB
Diff
From 1d418f7e88035ed7a94073f6354246c66e9193e9 Mon Sep 17 00:00:00 2001
|
|
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Fri, 7 Jul 2017 17:22:58 +0200
|
|
Subject: fq_codel: switch default qdisc from pfifo_fast to fq_codel and remove pfifo_fast
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
---
|
|
include/net/sch_generic.h | 3 ++-
|
|
net/sched/Kconfig | 3 ++-
|
|
net/sched/sch_api.c | 2 +-
|
|
net/sched/sch_fq_codel.c | 3 ++-
|
|
net/sched/sch_generic.c | 4 ++--
|
|
5 files changed, 9 insertions(+), 6 deletions(-)
|
|
|
|
--- a/include/net/sch_generic.h
|
|
+++ b/include/net/sch_generic.h
|
|
@@ -369,12 +369,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;
|
|
+extern struct Qdisc_ops fq_codel_qdisc_ops;
|
|
extern const struct Qdisc_ops *default_qdisc_ops;
|
|
static inline const struct Qdisc_ops *
|
|
get_default_qdisc_ops(const struct net_device *dev, int ntx)
|
|
{
|
|
return ntx < dev->real_num_tx_queues ?
|
|
- default_qdisc_ops : &pfifo_fast_ops;
|
|
+ default_qdisc_ops : &fq_codel_qdisc_ops;
|
|
}
|
|
|
|
struct Qdisc_class_common {
|
|
--- a/net/sched/Kconfig
|
|
+++ b/net/sched/Kconfig
|
|
@@ -3,8 +3,9 @@
|
|
#
|
|
|
|
menuconfig NET_SCHED
|
|
- bool "QoS and/or fair queueing"
|
|
+ def_bool y
|
|
select NET_SCH_FIFO
|
|
+ select NET_SCH_FQ_CODEL
|
|
---help---
|
|
When the kernel has several packets to send out over a network
|
|
device, it has to decide which ones to send first, which ones to
|
|
--- a/net/sched/sch_api.c
|
|
+++ b/net/sched/sch_api.c
|
|
@@ -2014,7 +2014,7 @@ static int __init pktsched_init(void)
|
|
return err;
|
|
}
|
|
|
|
- register_qdisc(&pfifo_fast_ops);
|
|
+ register_qdisc(&fq_codel_qdisc_ops);
|
|
register_qdisc(&pfifo_qdisc_ops);
|
|
register_qdisc(&bfifo_qdisc_ops);
|
|
register_qdisc(&pfifo_head_drop_qdisc_ops);
|
|
--- a/net/sched/sch_fq_codel.c
|
|
+++ b/net/sched/sch_fq_codel.c
|
|
@@ -694,7 +694,7 @@ static const struct Qdisc_class_ops fq_c
|
|
.walk = fq_codel_walk,
|
|
};
|
|
|
|
-static struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = {
|
|
+struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = {
|
|
.cl_ops = &fq_codel_class_ops,
|
|
.id = "fq_codel",
|
|
.priv_size = sizeof(struct fq_codel_sched_data),
|
|
@@ -709,6 +709,7 @@ static struct Qdisc_ops fq_codel_qdisc_o
|
|
.dump_stats = fq_codel_dump_stats,
|
|
.owner = THIS_MODULE,
|
|
};
|
|
+EXPORT_SYMBOL(fq_codel_qdisc_ops);
|
|
|
|
static int __init fq_codel_module_init(void)
|
|
{
|
|
--- a/net/sched/sch_generic.c
|
|
+++ b/net/sched/sch_generic.c
|
|
@@ -32,7 +32,7 @@
|
|
#include <trace/events/qdisc.h>
|
|
|
|
/* Qdisc to use by default */
|
|
-const struct Qdisc_ops *default_qdisc_ops = &pfifo_fast_ops;
|
|
+const struct Qdisc_ops *default_qdisc_ops = &fq_codel_qdisc_ops;
|
|
EXPORT_SYMBOL(default_qdisc_ops);
|
|
|
|
/* Main transmission queue. */
|
|
@@ -764,7 +764,7 @@ static void attach_one_default_qdisc(str
|
|
void *_unused)
|
|
{
|
|
struct Qdisc *qdisc;
|
|
- const struct Qdisc_ops *ops = default_qdisc_ops;
|
|
+ const struct Qdisc_ops *ops = &fq_codel_qdisc_ops;
|
|
|
|
if (dev->priv_flags & IFF_NO_QUEUE)
|
|
ops = &noqueue_qdisc_ops;
|