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 <koen.vandeputte@ncentric.com>
This commit is contained in:
parent
433c94f296
commit
e4a5750931
5 changed files with 18 additions and 109 deletions
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
LINUX_RELEASE?=1
|
LINUX_RELEASE?=1
|
||||||
|
|
||||||
LINUX_VERSION-4.9 = .118
|
|
||||||
LINUX_VERSION-4.14 = .61
|
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.14.61 = 0d0ec521a771e7d393f25b789a06d9af6e2a5a4837fadc04e7048e03b41c70e8
|
||||||
|
LINUX_KERNEL_HASH-4.9.119 = 49e17f01a1a607b4b1ab28dc7177e103943151866c3956fd83edc8a4aae60b35
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||||
|
|
|
@ -28,10 +28,8 @@ w1-gpio: Sort out the pullup/parasitic power tangle
|
||||||
include/linux/w1-gpio.h | 1 +
|
include/linux/w1-gpio.h | 1 +
|
||||||
5 files changed, 99 insertions(+), 9 deletions(-)
|
5 files changed, 99 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
Index: linux-4.9.111/drivers/w1/masters/w1-gpio.c
|
--- a/drivers/w1/masters/w1-gpio.c
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -23,6 +23,19 @@
|
@@ -23,6 +23,19 @@
|
||||||
#include "../w1.h"
|
#include "../w1.h"
|
||||||
#include "../w1_int.h"
|
#include "../w1_int.h"
|
||||||
|
@ -145,10 +143,8 @@ Index: linux-4.9.111/drivers/w1/masters/w1-gpio.c
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: linux-4.9.111/drivers/w1/w1.h
|
--- a/drivers/w1/w1.h
|
||||||
===================================================================
|
+++ b/drivers/w1/w1.h
|
||||||
--- linux-4.9.111.orig/drivers/w1/w1.h
|
|
||||||
+++ linux-4.9.111/drivers/w1/w1.h
|
|
||||||
@@ -173,6 +173,12 @@ struct w1_bus_master
|
@@ -173,6 +173,12 @@ struct w1_bus_master
|
||||||
|
|
||||||
u8 (*set_pullup)(void *, int);
|
u8 (*set_pullup)(void *, int);
|
||||||
|
@ -162,10 +158,8 @@ Index: linux-4.9.111/drivers/w1/w1.h
|
||||||
void (*search)(void *, struct w1_master *,
|
void (*search)(void *, struct w1_master *,
|
||||||
u8, w1_slave_found_callback);
|
u8, w1_slave_found_callback);
|
||||||
};
|
};
|
||||||
Index: linux-4.9.111/drivers/w1/w1_int.c
|
--- a/drivers/w1/w1_int.c
|
||||||
===================================================================
|
+++ b/drivers/w1/w1_int.c
|
||||||
--- linux-4.9.111.orig/drivers/w1/w1_int.c
|
|
||||||
+++ linux-4.9.111/drivers/w1/w1_int.c
|
|
||||||
@@ -122,6 +122,20 @@ int w1_add_master_device(struct w1_bus_m
|
@@ -122,6 +122,20 @@ int w1_add_master_device(struct w1_bus_m
|
||||||
return(-EINVAL);
|
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. */
|
/* Lock until the device is added (or not) to w1_masters. */
|
||||||
mutex_lock(&w1_mlock);
|
mutex_lock(&w1_mlock);
|
||||||
/* Search for the first available id (starting at 1). */
|
/* Search for the first available id (starting at 1). */
|
||||||
Index: linux-4.9.111/drivers/w1/w1_io.c
|
--- a/drivers/w1/w1_io.c
|
||||||
===================================================================
|
+++ b/drivers/w1/w1_io.c
|
||||||
--- linux-4.9.111.orig/drivers/w1/w1_io.c
|
|
||||||
+++ linux-4.9.111/drivers/w1/w1_io.c
|
|
||||||
@@ -134,10 +134,22 @@ static void w1_pre_write(struct w1_maste
|
@@ -134,10 +134,22 @@ static void w1_pre_write(struct w1_maste
|
||||||
static void w1_post_write(struct w1_master *dev)
|
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;
|
dev->pullup_duration = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Index: linux-4.9.111/include/linux/w1-gpio.h
|
--- a/include/linux/w1-gpio.h
|
||||||
===================================================================
|
+++ b/include/linux/w1-gpio.h
|
||||||
--- linux-4.9.111.orig/include/linux/w1-gpio.h
|
|
||||||
+++ linux-4.9.111/include/linux/w1-gpio.h
|
|
||||||
@@ -18,6 +18,7 @@
|
@@ -18,6 +18,7 @@
|
||||||
struct w1_gpio_platform_data {
|
struct w1_gpio_platform_data {
|
||||||
unsigned int pin;
|
unsigned int pin;
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
From 74b120c45aebf4278e1dedc55f5fa24d8ea83cdc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eric Dumazet <edumazet@google.com>
|
|
||||||
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 <edumazet@google.com>
|
|
||||||
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
|
|
||||||
Acked-by: Yuchung Cheng <ycheng@google.com>
|
|
||||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
||||||
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
|
@ -13,11 +13,9 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
|
||||||
drivers/w1/masters/w1-gpio.c | 7 +++----
|
drivers/w1/masters/w1-gpio.c | 7 +++----
|
||||||
1 file changed, 3 insertions(+), 4 deletions(-)
|
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
|
--- a/drivers/w1/masters/w1-gpio.c
|
||||||
+++ b/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)
|
static int w1_gpio_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct w1_bus_master *master;
|
struct w1_bus_master *master;
|
||||||
|
@ -38,6 +36,3 @@ index a90728ceec5a..7b80762941af 100644
|
||||||
if (!pdata) {
|
if (!pdata) {
|
||||||
dev_err(&pdev->dev, "No configuration data\n");
|
dev_err(&pdev->dev, "No configuration data\n");
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
--
|
|
||||||
2.14.1
|
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct imx_i2c_hwdata imx1_i2c_hwdata = {
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,7 +174,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||||
static int i2c_imx_xfer(struct i2c_adapter *adapter,
|
static int i2c_imx_xfer(struct i2c_adapter *adapter,
|
||||||
struct i2c_msg *msgs, int num)
|
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__);
|
dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||||
result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent);
|
result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
goto out;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,7 +245,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||||
static u32 i2c_imx_func(struct i2c_adapter *adapter)
|
static u32 i2c_imx_func(struct i2c_adapter *adapter)
|
||||||
{
|
{
|
||||||
return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL
|
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->adapter.dev.of_node = pdev->dev.of_node;
|
||||||
i2c_imx->base = base;
|
i2c_imx->base = base;
|
||||||
|
|
||||||
|
@ -257,7 +257,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||||
/* Get I2C clock */
|
/* Get I2C clock */
|
||||||
i2c_imx->clk = devm_clk_get(&pdev->dev, NULL);
|
i2c_imx->clk = devm_clk_get(&pdev->dev, NULL);
|
||||||
if (IS_ERR(i2c_imx->clk)) {
|
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 */
|
/* Request IRQ */
|
||||||
|
|
Loading…
Reference in a new issue