aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel
diff options
context:
space:
mode:
authorKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>2018-09-28 09:42:33 +0100
committerKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>2018-10-02 12:04:11 +0100
commitb47614f9f18c7d1c24104ef1d53c8d1ac8920ba4 (patch)
treec1d05a101aee5b27bcb6c4defd743a86c8e45bd6 /package/kernel
parent031c31ccdb89a53f5c13ce55b8e2b73c398ebdb8 (diff)
downloadupstream-b47614f9f18c7d1c24104ef1d53c8d1ac8920ba4.tar.gz
upstream-b47614f9f18c7d1c24104ef1d53c8d1ac8920ba4.tar.bz2
upstream-b47614f9f18c7d1c24104ef1d53c8d1ac8920ba4.zip
kmod-sched-cake: don't gso fixup on fixed kernels
Kernels 4.14.73 & 4.9.140 include the gso fixup fix, so cake doesn't need to do it. Let's not waste cpu cycles by doing it in cake which could be really important on cpu constrained devices. Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Diffstat (limited to 'package/kernel')
-rw-r--r--package/kernel/kmod-sched-cake/Makefile2
-rw-r--r--package/kernel/kmod-sched-cake/patches/100-remove-skb-max-fix-on-fixed-kernels.patch22
2 files changed, 23 insertions, 1 deletions
diff --git a/package/kernel/kmod-sched-cake/Makefile b/package/kernel/kmod-sched-cake/Makefile
index ce7ac27261..3510437eb9 100644
--- a/package/kernel/kmod-sched-cake/Makefile
+++ b/package/kernel/kmod-sched-cake/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=sched-cake
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/dtaht/sch_cake.git
diff --git a/package/kernel/kmod-sched-cake/patches/100-remove-skb-max-fix-on-fixed-kernels.patch b/package/kernel/kmod-sched-cake/patches/100-remove-skb-max-fix-on-fixed-kernels.patch
new file mode 100644
index 0000000000..5f1f3a916a
--- /dev/null
+++ b/package/kernel/kmod-sched-cake/patches/100-remove-skb-max-fix-on-fixed-kernels.patch
@@ -0,0 +1,22 @@
+--- a/sch_cake.c
++++ b/sch_cake.c
+@@ -1799,13 +1799,18 @@ static s32 cake_enqueue(struct sk_buff *
+ cobalt_set_enqueue_time(segs, now);
+ get_cobalt_cb(segs)->adjusted_len = cake_overhead(q,
+ segs);
+-
++#if !((LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 124) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)) || \
++ (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 159) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)) || \
++ (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 130) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)) || \
++ (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 73) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)) || \
++ (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 11)))
+ /* For encapsulated packets, the mac_len may not be set
+ * correctly after GSO split. Fix this by resetting it;
+ * if skb_gso_segment() already does this correctly,
+ * this is will just recalculate the current value.
+ */
+ skb_reset_mac_len(skb);
++#endif
+
+ flow_queue_add(flow, segs);
+