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); +