Refreshed all patches.
Compile-tested on: ar71xx, layerscape
Runtime-tested on: ar71xx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .124
-LINUX_VERSION-4.9 = .133
+LINUX_VERSION-4.9 = .134
LINUX_VERSION-4.14 = .76
LINUX_KERNEL_HASH-3.18.124 = 25d2a5abd627534a1e51d028890c184aad8e628c345c5fe0cc0f9d7c31b7a5a3
-LINUX_KERNEL_HASH-4.9.133 = 53730fc025ba330a6f4908a6a1e4cb86d821000c84167721680ccf1b37b26563
+LINUX_KERNEL_HASH-4.9.134 = 6dfbe8d122021c874945c0f2ebeace2248e58eed93c10ce61e4a134e70997a77
LINUX_KERNEL_HASH-4.14.76 = ee3f19a4ff8a42793c193e361e1d34fcc821a5ca9b58db41befb2b4df0e482be
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
#define free_page(addr) free_pages((addr), 0)
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2471,7 +2471,7 @@ static inline struct sk_buff *netdev_all
+@@ -2476,7 +2476,7 @@ static inline struct sk_buff *netdev_all
static inline void skb_free_frag(void *addr)
{
/* bnx2x_has_rx_work() reads the status block,
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
-@@ -1778,7 +1778,7 @@ static int bnxt_poll_nitroa0(struct napi
+@@ -1781,7 +1781,7 @@ static int bnxt_poll_nitroa0(struct napi
}
if (!bnxt_has_work(bp, cpr) && rx_pkts < budget) {
--- a/drivers/net/ethernet/marvell/mvpp2.c
+++ b/drivers/net/ethernet/marvell/mvpp2.c
-@@ -5404,7 +5404,7 @@ static int mvpp2_poll(struct napi_struct
+@@ -5406,7 +5406,7 @@ static int mvpp2_poll(struct napi_struct
if (budget > 0) {
cause_rx = 0;
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2334,6 +2334,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2339,6 +2339,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2454,16 +2458,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2459,16 +2463,6 @@ static inline struct sk_buff *dev_alloc_
}
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -2950,10 +2950,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -2972,10 +2972,20 @@ static int xmit_one(struct sk_buff *skb,
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
dev_queue_xmit_nit(skb, dev);
}
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
-@@ -1799,10 +1799,12 @@ static int __init setup_vmstat(void)
+@@ -1798,10 +1798,12 @@ static int __init setup_vmstat(void)
cpu_notifier_register_done();
#endif
#ifdef CONFIG_PROC_FS
--- a/net/ipv4/proc.c
+++ b/net/ipv4/proc.c
-@@ -564,6 +564,9 @@ static __net_initdata struct pernet_oper
+@@ -565,6 +565,9 @@ static __net_initdata struct pernet_oper
int __init ip_misc_proc_init(void)
{
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2298,7 +2298,7 @@ static inline int pskb_network_may_pull(
+@@ -2303,7 +2303,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
/**
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
* @t: the outgoing tunnel device
-@@ -1294,6 +1434,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1299,6 +1439,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
{
struct ip6_tnl *t = netdev_priv(dev);
- struct ipv6hdr *ipv6h = ipv6_hdr(skb);
+ struct ipv6hdr *ipv6h;
+ struct __ip6_tnl_fmr *fmr;
int encap_limit = -1;
__u16 offset;
struct flowi6 fl6;
-@@ -1352,6 +1493,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1361,6 +1502,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
fl6.flowi6_mark = skb->mark;
}
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
return -1;
-@@ -1479,6 +1632,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1488,6 +1641,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
t->parms.flowinfo = p->flowinfo;
t->parms.link = p->link;
t->parms.proto = p->proto;
dst_cache_reset(&t->dst_cache);
ip6_tnl_link_config(t);
return 0;
-@@ -1517,6 +1678,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1526,6 +1687,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
p->flowinfo = u->flowinfo;
p->link = u->link;
p->proto = u->proto;
memcpy(p->name, u->name, sizeof(u->name));
}
-@@ -1894,6 +2056,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1903,6 +2065,15 @@ static int ip6_tnl_validate(struct nlatt
return 0;
}
static void ip6_tnl_netlink_parms(struct nlattr *data[],
struct __ip6_tnl_parm *parms)
{
-@@ -1928,6 +2099,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1937,6 +2108,46 @@ static void ip6_tnl_netlink_parms(struct
if (data[IFLA_IPTUN_COLLECT_METADATA])
parms->collect_md = true;
}
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2041,6 +2252,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2050,6 +2261,12 @@ static void ip6_tnl_dellink(struct net_d
static size_t ip6_tnl_get_size(const struct net_device *dev)
{
return
/* IFLA_IPTUN_LINK */
nla_total_size(4) +
-@@ -2068,6 +2285,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2077,6 +2294,24 @@ static size_t ip6_tnl_get_size(const str
nla_total_size(2) +
/* IFLA_IPTUN_COLLECT_METADATA */
nla_total_size(0) +
0;
}
-@@ -2075,6 +2310,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2084,6 +2319,9 @@ static int ip6_tnl_fill_info(struct sk_b
{
struct ip6_tnl *tunnel = netdev_priv(dev);
struct __ip6_tnl_parm *parm = &tunnel->parms;
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2083,9 +2321,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2092,9 +2330,27 @@ static int ip6_tnl_fill_info(struct sk_b
nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2123,6 +2379,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2132,6 +2388,7 @@ static const struct nla_policy ip6_tnl_p
[IFLA_IPTUN_ENCAP_SPORT] = { .type = NLA_U16 },
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -742,7 +742,8 @@ struct sk_buff {
+@@ -747,7 +747,8 @@ struct sk_buff {
#ifdef CONFIG_NET_SWITCHDEV
__u8 offload_fwd_mark:1;
#endif
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4550,6 +4550,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4572,6 +4572,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;
-@@ -5838,6 +5841,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5860,6 +5863,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info)
-@@ -5910,6 +5955,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5932,6 +5977,7 @@ static int __netdev_upper_dev_link(struc
goto rollback_lower_mesh;
}
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -6036,6 +6082,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -6058,6 +6104,7 @@ void netdev_upper_dev_unlink(struct net_
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
}
-@@ -6636,6 +6683,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6660,6 +6707,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
{
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -903,6 +903,7 @@ void kfree_skb(struct sk_buff *skb);
+@@ -908,6 +908,7 @@ void kfree_skb(struct sk_buff *skb);
void kfree_skb_list(struct sk_buff *segs);
void skb_tx_error(struct sk_buff *skb);
void consume_skb(struct sk_buff *skb);
void __kfree_skb(struct sk_buff *skb);
extern struct kmem_cache *skbuff_head_cache;
-@@ -3059,6 +3060,7 @@ static inline void skb_free_datagram_loc
+@@ -3081,6 +3082,7 @@ static inline void skb_free_datagram_loc
}
int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags);
int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len);
+}
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -1968,6 +1968,23 @@ static void netif_setup_tc(struct net_de
+@@ -1990,6 +1990,23 @@ static void netif_setup_tc(struct net_de
}
}
#ifdef CONFIG_XPS
static DEFINE_MUTEX(xps_map_mutex);
#define xmap_dereference(P) \
-@@ -6630,9 +6647,18 @@ int dev_set_mtu(struct net_device *dev,
+@@ -6652,9 +6669,18 @@ int dev_set_mtu(struct net_device *dev,
if (new_mtu == dev->mtu)
return 0;
&queue_tx_maxrate.attr,
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
-@@ -3690,7 +3690,7 @@ static int rtnl_get_offload_stats(struct
+@@ -3696,7 +3696,7 @@ static int rtnl_get_offload_stats(struct
if (!size)
continue;
continue;
attr = nla_reserve_64bit(skb, attr_id, size,
-@@ -3731,7 +3731,7 @@ static int rtnl_get_offload_stats_size(c
+@@ -3737,7 +3737,7 @@ static int rtnl_get_offload_stats_size(c
for (attr_id = IFLA_OFFLOAD_XSTATS_FIRST;
attr_id <= IFLA_OFFLOAD_XSTATS_MAX; attr_id++) {