aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/kmod-sched-cake/patches/100-remove-skb-max-fix-on-fixed-kernels.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/kmod-sched-cake/patches/100-remove-skb-max-fix-on-fixed-kernels.patch')
-rw-r--r--package/kernel/kmod-sched-cake/patches/100-remove-skb-max-fix-on-fixed-kernels.patch22
1 files changed, 22 insertions, 0 deletions
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);
+