Refreshed all patches.
Compile-tested on: ar71xx
Runtime-tested on: ar71xx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_RELEASE?=1
-LINUX_VERSION-4.9 = .188
+LINUX_VERSION-4.9 = .189
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
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
--- a/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;
struct gpio_chip *chip;
/*
* 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");
return -EINVAL;
}
--- a/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;
}
/* now translate native cs to GPIO */
/* first look for chip select pins in the devices pin groups */
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);
return err;
}
--- a/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);
}
/*
* 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;
}
+ if (!br_port_group_equal(p, port, src))
continue;
- rcu_assign_pointer(*pp, p->next);
-@@ -1517,7 +1555,7 @@ br_multicast_leave_group(struct net_brid
+ if (p->flags & MDB_PG_FLAGS_PERMANENT)
+@@ -1520,7 +1558,7 @@ br_multicast_leave_group(struct net_brid
for (p = mlock_dereference(mp->ports, br);
p != NULL;
p = mlock_dereference(p->next, br)) {
continue;
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,
struct net_bridge_port *port,
__be32 group,
{
struct br_ip br_group;
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_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
{
struct br_ip br_group;
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_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
}
#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)
{
struct sk_buff *skb_trimmed = NULL;
struct igmphdr *ih;
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);
break;
case IGMPV3_HOST_MEMBERSHIP_REPORT:
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);
break;
case IGMP_HOST_LEAVE_MESSAGE:
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)
{
struct sk_buff *skb_trimmed = NULL;
struct mld_msg *mld;
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) {
case ICMPV6_MGM_REPORT:
break;
case ICMPV6_MLD2_REPORT:
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);
break;
case ICMPV6_MGM_REDUCTION:
nval = cmpxchg(&tp->tsq_flags, oval, nval);
if (nval != oval)
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)))
break;
--- a/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;
if (atomic_read(&sk->sk_wmem_alloc) > limit) {
--- a/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)
{
if (nval != oval)
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)
return false;
/* It is possible TX completion already happened
* before we set TSQ_THROTTLED, so we must
* 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)))
break;
if (tcp_small_queue_check(sk, skb, 0))
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
* too much.
* SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784
* Before updating sk_refcnt, we must commit prior changes to memory
--- a/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;
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
/* 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;
int encap_limit = -1;
__u16 offset;
struct flowi6 fl6;
-@@ -1362,6 +1503,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
- fl6.flowi6_mark = skb->mark;
- }
+@@ -1364,6 +1505,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+
+ dsfield = INET_ECN_encapsulate(dsfield, ipv6_get_dsfield(ipv6h));
+ /* try to find matching FMR */
+ for (fmr = t->parms.fmrs; fmr; fmr = fmr->next) {