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>
(cherry picked from commit b47614f9f1)
openwrt-18.06
Kevin Darbyshire-Bryant 2018-09-28 09:42:33 +01:00
parent 670f14ce67
commit cd12c91dde
2 changed files with 23 additions and 1 deletions

View File

@ -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

View File

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