From e4a57509311e5805810da50852a7d48569952146 Mon Sep 17 00:00:00 2001 From: Koen Vandeputte Date: Thu, 9 Aug 2018 17:17:50 +0200 Subject: [PATCH] kernel: bump 4.9 to 4.9.119 Refreshed all patches. Delete upstreamed patch: - 100-tcp-add-tcp_ooo_try_coalesce-helper.patch Compile-tested on: ar71xx Runtime-tested on: ar71xx Signed-off-by: Koen Vandeputte --- include/kernel-version.mk | 4 +- ...ltime-clock-1-wire-chip-DS1307-and-1.patch | 30 +++----- ...-tcp-add-tcp_ooo_try_coalesce-helper.patch | 76 ------------------- ...problem-with-platfom-data-in-w1-gpio.patch | 7 +- .../809-i2c-support-layerscape.patch | 10 +-- 5 files changed, 18 insertions(+), 109 deletions(-) delete mode 100644 target/linux/generic/backport-4.9/100-tcp-add-tcp_ooo_try_coalesce-helper.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 92eeeaee96..2dc5c2ad99 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -2,11 +2,11 @@ LINUX_RELEASE?=1 -LINUX_VERSION-4.9 = .118 LINUX_VERSION-4.14 = .61 +LINUX_VERSION-4.9 = .119 -LINUX_KERNEL_HASH-4.9.118 = 7df789e40c6040cd6f6e34326f477b389ab7eaf2bb04940fca4bbe5e733add57 LINUX_KERNEL_HASH-4.14.61 = 0d0ec521a771e7d393f25b789a06d9af6e2a5a4837fadc04e7048e03b41c70e8 +LINUX_KERNEL_HASH-4.9.119 = 49e17f01a1a607b4b1ab28dc7177e103943151866c3956fd83edc8a4aae60b35 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) diff --git a/target/linux/brcm2708/patches-4.9/950-0058-enabling-the-realtime-clock-1-wire-chip-DS1307-and-1.patch b/target/linux/brcm2708/patches-4.9/950-0058-enabling-the-realtime-clock-1-wire-chip-DS1307-and-1.patch index 5a324dde61..4c3d2b15f6 100644 --- a/target/linux/brcm2708/patches-4.9/950-0058-enabling-the-realtime-clock-1-wire-chip-DS1307-and-1.patch +++ b/target/linux/brcm2708/patches-4.9/950-0058-enabling-the-realtime-clock-1-wire-chip-DS1307-and-1.patch @@ -28,10 +28,8 @@ w1-gpio: Sort out the pullup/parasitic power tangle include/linux/w1-gpio.h | 1 + 5 files changed, 99 insertions(+), 9 deletions(-) -Index: linux-4.9.111/drivers/w1/masters/w1-gpio.c -=================================================================== ---- linux-4.9.111.orig/drivers/w1/masters/w1-gpio.c -+++ linux-4.9.111/drivers/w1/masters/w1-gpio.c +--- a/drivers/w1/masters/w1-gpio.c ++++ b/drivers/w1/masters/w1-gpio.c @@ -23,6 +23,19 @@ #include "../w1.h" #include "../w1_int.h" @@ -145,10 +143,8 @@ Index: linux-4.9.111/drivers/w1/masters/w1-gpio.c return 0; } -Index: linux-4.9.111/drivers/w1/w1.h -=================================================================== ---- linux-4.9.111.orig/drivers/w1/w1.h -+++ linux-4.9.111/drivers/w1/w1.h +--- a/drivers/w1/w1.h ++++ b/drivers/w1/w1.h @@ -173,6 +173,12 @@ struct w1_bus_master u8 (*set_pullup)(void *, int); @@ -162,10 +158,8 @@ Index: linux-4.9.111/drivers/w1/w1.h void (*search)(void *, struct w1_master *, u8, w1_slave_found_callback); }; -Index: linux-4.9.111/drivers/w1/w1_int.c -=================================================================== ---- linux-4.9.111.orig/drivers/w1/w1_int.c -+++ linux-4.9.111/drivers/w1/w1_int.c +--- a/drivers/w1/w1_int.c ++++ b/drivers/w1/w1_int.c @@ -122,6 +122,20 @@ int w1_add_master_device(struct w1_bus_m return(-EINVAL); } @@ -187,10 +181,8 @@ Index: linux-4.9.111/drivers/w1/w1_int.c /* Lock until the device is added (or not) to w1_masters. */ mutex_lock(&w1_mlock); /* Search for the first available id (starting at 1). */ -Index: linux-4.9.111/drivers/w1/w1_io.c -=================================================================== ---- linux-4.9.111.orig/drivers/w1/w1_io.c -+++ linux-4.9.111/drivers/w1/w1_io.c +--- a/drivers/w1/w1_io.c ++++ b/drivers/w1/w1_io.c @@ -134,10 +134,22 @@ static void w1_pre_write(struct w1_maste static void w1_post_write(struct w1_master *dev) { @@ -217,10 +209,8 @@ Index: linux-4.9.111/drivers/w1/w1_io.c dev->pullup_duration = 0; } } -Index: linux-4.9.111/include/linux/w1-gpio.h -=================================================================== ---- linux-4.9.111.orig/include/linux/w1-gpio.h -+++ linux-4.9.111/include/linux/w1-gpio.h +--- a/include/linux/w1-gpio.h ++++ b/include/linux/w1-gpio.h @@ -18,6 +18,7 @@ struct w1_gpio_platform_data { unsigned int pin; diff --git a/target/linux/generic/backport-4.9/100-tcp-add-tcp_ooo_try_coalesce-helper.patch b/target/linux/generic/backport-4.9/100-tcp-add-tcp_ooo_try_coalesce-helper.patch deleted file mode 100644 index 4641727c57..0000000000 --- a/target/linux/generic/backport-4.9/100-tcp-add-tcp_ooo_try_coalesce-helper.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 74b120c45aebf4278e1dedc55f5fa24d8ea83cdc Mon Sep 17 00:00:00 2001 -From: Eric Dumazet -Date: Mon, 23 Jul 2018 09:28:21 -0700 -Subject: tcp: add tcp_ooo_try_coalesce() helper - -commit 58152ecbbcc6a0ce7fddd5bf5f6ee535834ece0c upstream. - -In case skb in out_or_order_queue is the result of -multiple skbs coalescing, we would like to get a proper gso_segs -counter tracking, so that future tcp_drop() can report an accurate -number. - -I chose to not implement this tracking for skbs in receive queue, -since they are not dropped, unless socket is disconnected. - -Signed-off-by: Eric Dumazet -Acked-by: Soheil Hassas Yeganeh -Acked-by: Yuchung Cheng -Signed-off-by: David S. Miller -Signed-off-by: David Woodhouse -Signed-off-by: Greg Kroah-Hartman ---- - net/ipv4/tcp_input.c | 23 +++++++++++++++++++++-- - 1 file changed, 21 insertions(+), 2 deletions(-) - -diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c -index a9be8df108b4..9d0b73aa649f 100644 ---- a/net/ipv4/tcp_input.c -+++ b/net/ipv4/tcp_input.c -@@ -4370,6 +4370,23 @@ static bool tcp_try_coalesce(struct sock *sk, - return true; - } - -+static bool tcp_ooo_try_coalesce(struct sock *sk, -+ struct sk_buff *to, -+ struct sk_buff *from, -+ bool *fragstolen) -+{ -+ bool res = tcp_try_coalesce(sk, to, from, fragstolen); -+ -+ /* In case tcp_drop() is called later, update to->gso_segs */ -+ if (res) { -+ u32 gso_segs = max_t(u16, 1, skb_shinfo(to)->gso_segs) + -+ max_t(u16, 1, skb_shinfo(from)->gso_segs); -+ -+ skb_shinfo(to)->gso_segs = min_t(u32, gso_segs, 0xFFFF); -+ } -+ return res; -+} -+ - static void tcp_drop(struct sock *sk, struct sk_buff *skb) - { - sk_drops_add(sk, skb); -@@ -4493,7 +4510,8 @@ static void tcp_data_queue_ofo(struct sock *sk, struct sk_buff *skb) - /* In the typical case, we are adding an skb to the end of the list. - * Use of ooo_last_skb avoids the O(Log(N)) rbtree lookup. - */ -- if (tcp_try_coalesce(sk, tp->ooo_last_skb, skb, &fragstolen)) { -+ if (tcp_ooo_try_coalesce(sk, tp->ooo_last_skb, -+ skb, &fragstolen)) { - coalesce_done: - tcp_grow_window(sk, skb); - kfree_skb_partial(skb, fragstolen); -@@ -4543,7 +4561,8 @@ coalesce_done: - tcp_drop(sk, skb1); - goto merge_right; - } -- } else if (tcp_try_coalesce(sk, skb1, skb, &fragstolen)) { -+ } else if (tcp_ooo_try_coalesce(sk, skb1, -+ skb, &fragstolen)) { - goto coalesce_done; - } - p = &parent->rb_right; --- -cgit 1.2-0.3.lf.el7 - diff --git a/target/linux/generic/pending-4.9/0931-w1-gpio-fix-problem-with-platfom-data-in-w1-gpio.patch b/target/linux/generic/pending-4.9/0931-w1-gpio-fix-problem-with-platfom-data-in-w1-gpio.patch index 5ce2bf87b9..524c6f98df 100644 --- a/target/linux/generic/pending-4.9/0931-w1-gpio-fix-problem-with-platfom-data-in-w1-gpio.patch +++ b/target/linux/generic/pending-4.9/0931-w1-gpio-fix-problem-with-platfom-data-in-w1-gpio.patch @@ -13,11 +13,9 @@ Signed-off-by: Pawel Dembicki drivers/w1/masters/w1-gpio.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) -diff --git a/drivers/w1/masters/w1-gpio.c b/drivers/w1/masters/w1-gpio.c -index a90728ceec5a..7b80762941af 100644 --- a/drivers/w1/masters/w1-gpio.c +++ b/drivers/w1/masters/w1-gpio.c -@@ -112,17 +112,16 @@ static int w1_gpio_probe_dt(struct platform_device *pdev) +@@ -113,17 +113,16 @@ static int w1_gpio_probe_dt(struct platf static int w1_gpio_probe(struct platform_device *pdev) { struct w1_bus_master *master; @@ -38,6 +36,3 @@ index a90728ceec5a..7b80762941af 100644 if (!pdata) { dev_err(&pdev->dev, "No configuration data\n"); return -ENXIO; --- -2.14.1 - diff --git a/target/linux/layerscape/patches-4.9/809-i2c-support-layerscape.patch b/target/linux/layerscape/patches-4.9/809-i2c-support-layerscape.patch index 0b5f5837fb..ffb95cc342 100644 --- a/target/linux/layerscape/patches-4.9/809-i2c-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/809-i2c-support-layerscape.patch @@ -95,7 +95,7 @@ Signed-off-by: Yangbo Lu }; static const struct imx_i2c_hwdata imx1_i2c_hwdata = { -@@ -879,6 +938,78 @@ static int i2c_imx_read(struct imx_i2c_s +@@ -878,6 +937,78 @@ static int i2c_imx_read(struct imx_i2c_s return 0; } @@ -174,7 +174,7 @@ Signed-off-by: Yangbo Lu static int i2c_imx_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs, int num) { -@@ -889,6 +1020,19 @@ static int i2c_imx_xfer(struct i2c_adapt +@@ -888,6 +1019,19 @@ static int i2c_imx_xfer(struct i2c_adapt dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); @@ -194,7 +194,7 @@ Signed-off-by: Yangbo Lu result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent); if (result < 0) goto out; -@@ -1031,6 +1175,50 @@ static int i2c_imx_init_recovery_info(st +@@ -1030,6 +1174,50 @@ static int i2c_imx_init_recovery_info(st return 0; } @@ -245,7 +245,7 @@ Signed-off-by: Yangbo Lu static u32 i2c_imx_func(struct i2c_adapter *adapter) { return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL -@@ -1086,6 +1274,11 @@ static int i2c_imx_probe(struct platform +@@ -1085,6 +1273,11 @@ static int i2c_imx_probe(struct platform i2c_imx->adapter.dev.of_node = pdev->dev.of_node; i2c_imx->base = base; @@ -257,7 +257,7 @@ Signed-off-by: Yangbo Lu /* Get I2C clock */ i2c_imx->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(i2c_imx->clk)) { -@@ -1100,7 +1293,7 @@ static int i2c_imx_probe(struct platform +@@ -1099,7 +1292,7 @@ static int i2c_imx_probe(struct platform } /* Request IRQ */ -- 2.30.2