mirror of https://github.com/hak5/openwrt.git
kernel: bump 4.9 to 4.9.189
Refreshed all patches. Compile-tested on: ar71xx Runtime-tested on: ar71xx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>openwrt-18.06
parent
28dc34f249
commit
e058fb3658
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
LINUX_RELEASE?=1
|
LINUX_RELEASE?=1
|
||||||
|
|
||||||
LINUX_VERSION-4.9 = .188
|
LINUX_VERSION-4.9 = .189
|
||||||
LINUX_VERSION-4.14 = .137
|
LINUX_VERSION-4.14 = .137
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-4.9.188 = 27539853b25d1830fe81b108f39249c6ddf8b47257cdba09404ba0949863e222
|
LINUX_KERNEL_HASH-4.9.189 = 93d945661246f726b694455c80c140717d2beff5a718445a51183439bbe5d0b3
|
||||||
LINUX_KERNEL_HASH-4.14.137 = 93f8e91329300f325a5b4dd9de1f51c0b1bf9591dfd2274044c2f70f96bae228
|
LINUX_KERNEL_HASH-4.14.137 = 93f8e91329300f325a5b4dd9de1f51c0b1bf9591dfd2274044c2f70f96bae228
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
|
|
|
@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||||
|
|
||||||
--- a/drivers/spi/spi-bcm2835.c
|
--- a/drivers/spi/spi-bcm2835.c
|
||||||
+++ b/drivers/spi/spi-bcm2835.c
|
+++ b/drivers/spi/spi-bcm2835.c
|
||||||
@@ -686,6 +686,8 @@ static int bcm2835_spi_setup(struct spi_
|
@@ -687,6 +687,8 @@ static int bcm2835_spi_setup(struct spi_
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
struct gpio_chip *chip;
|
struct gpio_chip *chip;
|
||||||
|
@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||||
/*
|
/*
|
||||||
* sanity checking the native-chipselects
|
* sanity checking the native-chipselects
|
||||||
*/
|
*/
|
||||||
@@ -702,15 +704,42 @@ static int bcm2835_spi_setup(struct spi_
|
@@ -703,15 +705,42 @@ static int bcm2835_spi_setup(struct spi_
|
||||||
"setup: only two native chip-selects are supported\n");
|
"setup: only two native chip-selects are supported\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||||
|
|
||||||
--- a/drivers/spi/spi-bcm2835.c
|
--- a/drivers/spi/spi-bcm2835.c
|
||||||
+++ b/drivers/spi/spi-bcm2835.c
|
+++ b/drivers/spi/spi-bcm2835.c
|
||||||
@@ -705,6 +705,7 @@ static int bcm2835_spi_setup(struct spi_
|
@@ -706,6 +706,7 @@ static int bcm2835_spi_setup(struct spi_
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||||
/* now translate native cs to GPIO */
|
/* now translate native cs to GPIO */
|
||||||
/* first look for chip select pins in the devices pin groups */
|
/* first look for chip select pins in the devices pin groups */
|
||||||
for (pingroup_index = 0;
|
for (pingroup_index = 0;
|
||||||
@@ -754,6 +755,7 @@ static int bcm2835_spi_setup(struct spi_
|
@@ -755,6 +756,7 @@ static int bcm2835_spi_setup(struct spi_
|
||||||
spi->chip_select, spi->cs_gpio, err);
|
spi->chip_select, spi->cs_gpio, err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ Subject: [PATCH] spi-bcm2835: Remove unused code
|
||||||
|
|
||||||
--- a/drivers/spi/spi-bcm2835.c
|
--- a/drivers/spi/spi-bcm2835.c
|
||||||
+++ b/drivers/spi/spi-bcm2835.c
|
+++ b/drivers/spi/spi-bcm2835.c
|
||||||
@@ -677,17 +677,8 @@ static void bcm2835_spi_set_cs(struct sp
|
@@ -678,17 +678,8 @@ static void bcm2835_spi_set_cs(struct sp
|
||||||
bcm2835_wr(bs, BCM2835_SPI_CS, cs);
|
bcm2835_wr(bs, BCM2835_SPI_CS, cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ Subject: [PATCH] spi-bcm2835: Remove unused code
|
||||||
/*
|
/*
|
||||||
* sanity checking the native-chipselects
|
* sanity checking the native-chipselects
|
||||||
*/
|
*/
|
||||||
@@ -705,58 +696,6 @@ static int bcm2835_spi_setup(struct spi_
|
@@ -706,58 +697,6 @@ static int bcm2835_spi_setup(struct spi_
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -303,8 +303,8 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
+ if (!br_port_group_equal(p, port, src))
|
+ if (!br_port_group_equal(p, port, src))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
rcu_assign_pointer(*pp, p->next);
|
if (p->flags & MDB_PG_FLAGS_PERMANENT)
|
||||||
@@ -1517,7 +1555,7 @@ br_multicast_leave_group(struct net_brid
|
@@ -1520,7 +1558,7 @@ br_multicast_leave_group(struct net_brid
|
||||||
for (p = mlock_dereference(mp->ports, br);
|
for (p = mlock_dereference(mp->ports, br);
|
||||||
p != NULL;
|
p != NULL;
|
||||||
p = mlock_dereference(p->next, br)) {
|
p = mlock_dereference(p->next, br)) {
|
||||||
|
@ -313,7 +313,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!hlist_unhashed(&p->mglist) &&
|
if (!hlist_unhashed(&p->mglist) &&
|
||||||
@@ -1568,7 +1606,8 @@ out:
|
@@ -1571,7 +1609,8 @@ out:
|
||||||
static void br_ip4_multicast_leave_group(struct net_bridge *br,
|
static void br_ip4_multicast_leave_group(struct net_bridge *br,
|
||||||
struct net_bridge_port *port,
|
struct net_bridge_port *port,
|
||||||
__be32 group,
|
__be32 group,
|
||||||
|
@ -323,7 +323,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
{
|
{
|
||||||
struct br_ip br_group;
|
struct br_ip br_group;
|
||||||
struct bridge_mcast_own_query *own_query;
|
struct bridge_mcast_own_query *own_query;
|
||||||
@@ -1583,14 +1622,15 @@ static void br_ip4_multicast_leave_group
|
@@ -1586,14 +1625,15 @@ static void br_ip4_multicast_leave_group
|
||||||
br_group.vid = vid;
|
br_group.vid = vid;
|
||||||
|
|
||||||
br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
|
br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
|
||||||
|
@ -341,7 +341,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
{
|
{
|
||||||
struct br_ip br_group;
|
struct br_ip br_group;
|
||||||
struct bridge_mcast_own_query *own_query;
|
struct bridge_mcast_own_query *own_query;
|
||||||
@@ -1605,7 +1645,7 @@ static void br_ip6_multicast_leave_group
|
@@ -1608,7 +1648,7 @@ static void br_ip6_multicast_leave_group
|
||||||
br_group.vid = vid;
|
br_group.vid = vid;
|
||||||
|
|
||||||
br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
|
br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
|
||||||
|
@ -350,7 +350,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1648,6 +1688,7 @@ static int br_multicast_ipv4_rcv(struct
|
@@ -1651,6 +1691,7 @@ static int br_multicast_ipv4_rcv(struct
|
||||||
u16 vid)
|
u16 vid)
|
||||||
{
|
{
|
||||||
struct sk_buff *skb_trimmed = NULL;
|
struct sk_buff *skb_trimmed = NULL;
|
||||||
|
@ -358,7 +358,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
struct igmphdr *ih;
|
struct igmphdr *ih;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@@ -1663,13 +1704,14 @@ static int br_multicast_ipv4_rcv(struct
|
@@ -1666,13 +1707,14 @@ static int br_multicast_ipv4_rcv(struct
|
||||||
}
|
}
|
||||||
|
|
||||||
ih = igmp_hdr(skb);
|
ih = igmp_hdr(skb);
|
||||||
|
@ -374,7 +374,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
break;
|
break;
|
||||||
case IGMPV3_HOST_MEMBERSHIP_REPORT:
|
case IGMPV3_HOST_MEMBERSHIP_REPORT:
|
||||||
err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid);
|
err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid);
|
||||||
@@ -1678,7 +1720,7 @@ static int br_multicast_ipv4_rcv(struct
|
@@ -1681,7 +1723,7 @@ static int br_multicast_ipv4_rcv(struct
|
||||||
err = br_ip4_multicast_query(br, port, skb_trimmed, vid);
|
err = br_ip4_multicast_query(br, port, skb_trimmed, vid);
|
||||||
break;
|
break;
|
||||||
case IGMP_HOST_LEAVE_MESSAGE:
|
case IGMP_HOST_LEAVE_MESSAGE:
|
||||||
|
@ -383,7 +383,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1698,6 +1740,7 @@ static int br_multicast_ipv6_rcv(struct
|
@@ -1701,6 +1743,7 @@ static int br_multicast_ipv6_rcv(struct
|
||||||
u16 vid)
|
u16 vid)
|
||||||
{
|
{
|
||||||
struct sk_buff *skb_trimmed = NULL;
|
struct sk_buff *skb_trimmed = NULL;
|
||||||
|
@ -391,7 +391,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
struct mld_msg *mld;
|
struct mld_msg *mld;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@@ -1717,8 +1760,10 @@ static int br_multicast_ipv6_rcv(struct
|
@@ -1720,8 +1763,10 @@ static int br_multicast_ipv6_rcv(struct
|
||||||
|
|
||||||
switch (mld->mld_type) {
|
switch (mld->mld_type) {
|
||||||
case ICMPV6_MGM_REPORT:
|
case ICMPV6_MGM_REPORT:
|
||||||
|
@ -403,7 +403,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
|
||||||
break;
|
break;
|
||||||
case ICMPV6_MLD2_REPORT:
|
case ICMPV6_MLD2_REPORT:
|
||||||
err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid);
|
err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid);
|
||||||
@@ -1727,7 +1772,8 @@ static int br_multicast_ipv6_rcv(struct
|
@@ -1730,7 +1775,8 @@ static int br_multicast_ipv6_rcv(struct
|
||||||
err = br_ip6_multicast_query(br, port, skb_trimmed, vid);
|
err = br_ip6_multicast_query(br, port, skb_trimmed, vid);
|
||||||
break;
|
break;
|
||||||
case ICMPV6_MGM_REDUCTION:
|
case ICMPV6_MGM_REDUCTION:
|
||||||
|
|
|
@ -60,7 +60,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
nval = cmpxchg(&tp->tsq_flags, oval, nval);
|
nval = cmpxchg(&tp->tsq_flags, oval, nval);
|
||||||
if (nval != oval)
|
if (nval != oval)
|
||||||
continue;
|
continue;
|
||||||
@@ -2226,6 +2226,8 @@ static bool tcp_write_xmit(struct sock *
|
@@ -2235,6 +2235,8 @@ static bool tcp_write_xmit(struct sock *
|
||||||
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
|
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
--- a/net/ipv4/tcp_output.c
|
--- a/net/ipv4/tcp_output.c
|
||||||
+++ b/net/ipv4/tcp_output.c
|
+++ b/net/ipv4/tcp_output.c
|
||||||
@@ -2131,6 +2131,15 @@ static bool tcp_small_queue_check(struct
|
@@ -2140,6 +2140,15 @@ static bool tcp_small_queue_check(struct
|
||||||
limit <<= factor;
|
limit <<= factor;
|
||||||
|
|
||||||
if (atomic_read(&sk->sk_wmem_alloc) > limit) {
|
if (atomic_read(&sk->sk_wmem_alloc) > limit) {
|
||||||
|
|
|
@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
--- a/net/ipv4/tcp_output.c
|
--- a/net/ipv4/tcp_output.c
|
||||||
+++ b/net/ipv4/tcp_output.c
|
+++ b/net/ipv4/tcp_output.c
|
||||||
@@ -1964,26 +1964,26 @@ static bool tcp_can_coalesce_send_queue_
|
@@ -1973,26 +1973,26 @@ static bool tcp_can_coalesce_send_queue_
|
||||||
*/
|
*/
|
||||||
static int tcp_mtu_probe(struct sock *sk)
|
static int tcp_mtu_probe(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
|
@ -114,7 +114,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
if (nval != oval)
|
if (nval != oval)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -2140,7 +2140,7 @@ static bool tcp_small_queue_check(struct
|
@@ -2149,7 +2149,7 @@ static bool tcp_small_queue_check(struct
|
||||||
skb->prev == sk->sk_write_queue.next)
|
skb->prev == sk->sk_write_queue.next)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
/* It is possible TX completion already happened
|
/* It is possible TX completion already happened
|
||||||
* before we set TSQ_THROTTLED, so we must
|
* before we set TSQ_THROTTLED, so we must
|
||||||
* test again the condition.
|
* test again the condition.
|
||||||
@@ -2238,8 +2238,8 @@ static bool tcp_write_xmit(struct sock *
|
@@ -2247,8 +2247,8 @@ static bool tcp_write_xmit(struct sock *
|
||||||
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
|
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
if (tcp_small_queue_check(sk, skb, 0))
|
if (tcp_small_queue_check(sk, skb, 0))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -3550,8 +3550,6 @@ void __tcp_send_ack(struct sock *sk, u32
|
@@ -3559,8 +3559,6 @@ void __tcp_send_ack(struct sock *sk, u32
|
||||||
/* We do not want pure acks influencing TCP Small Queues or fq/pacing
|
/* We do not want pure acks influencing TCP Small Queues or fq/pacing
|
||||||
* too much.
|
* too much.
|
||||||
* SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784
|
* SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784
|
||||||
|
|
|
@ -65,7 +65,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
|
||||||
* Before updating sk_refcnt, we must commit prior changes to memory
|
* Before updating sk_refcnt, we must commit prior changes to memory
|
||||||
--- a/net/ipv4/tcp_output.c
|
--- a/net/ipv4/tcp_output.c
|
||||||
+++ b/net/ipv4/tcp_output.c
|
+++ b/net/ipv4/tcp_output.c
|
||||||
@@ -1597,7 +1597,7 @@ u32 tcp_tso_autosize(const struct sock *
|
@@ -1606,7 +1606,7 @@ u32 tcp_tso_autosize(const struct sock *
|
||||||
{
|
{
|
||||||
u32 bytes, segs;
|
u32 bytes, segs;
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
|
||||||
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
|
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
|
||||||
|
|
||||||
/* Goal is to send at least one packet per ms,
|
/* Goal is to send at least one packet per ms,
|
||||||
@@ -2127,7 +2127,7 @@ static bool tcp_small_queue_check(struct
|
@@ -2136,7 +2136,7 @@ static bool tcp_small_queue_check(struct
|
||||||
{
|
{
|
||||||
unsigned int limit;
|
unsigned int limit;
|
||||||
|
|
||||||
|
|
|
@ -308,9 +308,9 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
int encap_limit = -1;
|
int encap_limit = -1;
|
||||||
__u16 offset;
|
__u16 offset;
|
||||||
struct flowi6 fl6;
|
struct flowi6 fl6;
|
||||||
@@ -1362,6 +1503,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
@@ -1364,6 +1505,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||||
fl6.flowi6_mark = skb->mark;
|
|
||||||
}
|
dsfield = INET_ECN_encapsulate(dsfield, ipv6_get_dsfield(ipv6h));
|
||||||
|
|
||||||
+ /* try to find matching FMR */
|
+ /* try to find matching FMR */
|
||||||
+ for (fmr = t->parms.fmrs; fmr; fmr = fmr->next) {
|
+ for (fmr = t->parms.fmrs; fmr; fmr = fmr->next) {
|
||||||
|
|
Loading…
Reference in New Issue