From e817c4aa98bc76c983a17ac4201cdab88a3f8b32 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Fri, 19 Oct 2018 19:37:25 +0800 Subject: [PATCH] kernel update to 4.9.134 and 4.14.77 --- include/kernel-version.mk | 8 +++---- target/linux/armvirt/32/config-default | 1 + ...-arm_introduce-dma-fiq-irq-broadcast.patch | 2 +- .../patches-4.14/040-fiq_support.patch | 2 +- ...c_page_frag-to-page_frag_alloc-and-_.patch | 2 +- ...90-net-generalize-napi_complete_done.patch | 4 ++-- .../661-use_fq_codel_by_default.patch | 2 +- .../generic/hack-4.14/721-phy_packets.patch | 2 +- .../generic/hack-4.14/902-debloat_proc.patch | 2 +- .../generic/hack-4.9/721-phy_packets.patch | 6 ++--- .../generic/hack-4.9/902-debloat_proc.patch | 4 ++-- ...s-negative-stack-offsets-on-stack-tr.patch | 2 +- ...e_mem_map-with-ARCH_PFN_OFFSET-calcu.patch | 2 +- .../pending-4.14/630-packet_socket_type.patch | 6 ++--- ...Add-support-for-MAP-E-FMRs-mesh-mode.patch | 24 +++++++++---------- ...T-skip-GRO-for-foreign-MAC-addresses.patch | 10 ++++---- .../pending-4.9/655-increase_skb_pad.patch | 2 +- ...Add-support-for-MAP-E-FMRs-mesh-mode.patch | 24 +++++++++---------- ...T-skip-GRO-for-foreign-MAC-addresses.patch | 12 +++++----- target/linux/imx6/config-4.14 | 1 + target/linux/ipq40xx/config-4.14 | 1 + target/linux/ipq806x/config-4.14 | 1 + .../202-core-linux-support-layerscape.patch | 12 +++++----- target/linux/mediatek/mt7623/config-4.14 | 1 + target/linux/mvebu/cortexa9/config-default | 1 + target/linux/omap/config-4.14 | 1 + target/linux/samsung/s5pv210/config-4.14 | 1 + target/linux/sunxi/cortexa7/config-default | 1 + target/linux/sunxi/cortexa8/config-default | 1 + ...dwmac-mdio-MDIOs-are-automatically-r.patch | 2 +- target/linux/zynq/config-4.14 | 1 + 31 files changed, 76 insertions(+), 65 deletions(-) create mode 100644 target/linux/mvebu/cortexa9/config-default diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 5cb374252..0c0ccd602 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -3,12 +3,12 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .124 -LINUX_VERSION-4.9 = .133 -LINUX_VERSION-4.14 = .76 +LINUX_VERSION-4.9 = .134 +LINUX_VERSION-4.14 = .77 LINUX_KERNEL_HASH-3.18.124 = 25d2a5abd627534a1e51d028890c184aad8e628c345c5fe0cc0f9d7c31b7a5a3 -LINUX_KERNEL_HASH-4.9.133 = 53730fc025ba330a6f4908a6a1e4cb86d821000c84167721680ccf1b37b26563 -LINUX_KERNEL_HASH-4.14.76 = ee3f19a4ff8a42793c193e361e1d34fcc821a5ca9b58db41befb2b4df0e482be +LINUX_KERNEL_HASH-4.9.134 = 6dfbe8d122021c874945c0f2ebeace2248e58eed93c10ce61e4a134e70997a77 +LINUX_KERNEL_HASH-4.14.77 = 0496f4e194cadbe23f27e6f4b9c3cd264448983780b73b30f7f05c92273fa6f8 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/armvirt/32/config-default b/target/linux/armvirt/32/config-default index 96df547db..a3530b0e7 100644 --- a/target/linux/armvirt/32/config-default +++ b/target/linux/armvirt/32/config-default @@ -48,6 +48,7 @@ CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" # CONFIG_DEBUG_UART_8250 is not set # CONFIG_DEBUG_USER is not set CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HAVE_ARM_ARCH_TIMER=y CONFIG_HAVE_CBPF_JIT=y CONFIG_HAVE_IDE=y diff --git a/target/linux/cns3xxx/patches-4.14/010-arm_introduce-dma-fiq-irq-broadcast.patch b/target/linux/cns3xxx/patches-4.14/010-arm_introduce-dma-fiq-irq-broadcast.patch index ca7148b30..3841ca032 100644 --- a/target/linux/cns3xxx/patches-4.14/010-arm_introduce-dma-fiq-irq-broadcast.patch +++ b/target/linux/cns3xxx/patches-4.14/010-arm_introduce-dma-fiq-irq-broadcast.patch @@ -20,7 +20,7 @@ #endif --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig -@@ -899,6 +899,17 @@ config DMA_CACHE_RWFO +@@ -922,6 +922,17 @@ config DMA_CACHE_RWFO in hardware, other workarounds are needed (e.g. cache maintenance broadcasting in software via FIQ). diff --git a/target/linux/cns3xxx/patches-4.14/040-fiq_support.patch b/target/linux/cns3xxx/patches-4.14/040-fiq_support.patch index a52c55450..5a62eb38a 100644 --- a/target/linux/cns3xxx/patches-4.14/040-fiq_support.patch +++ b/target/linux/cns3xxx/patches-4.14/040-fiq_support.patch @@ -29,7 +29,7 @@ */ --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig -@@ -882,7 +882,7 @@ config VDSO +@@ -905,7 +905,7 @@ config VDSO config DMA_CACHE_RWFO bool "Enable read/write for ownership DMA cache maintenance" diff --git a/target/linux/generic/backport-4.9/041-mm-rename-__alloc_page_frag-to-page_frag_alloc-and-_.patch b/target/linux/generic/backport-4.9/041-mm-rename-__alloc_page_frag-to-page_frag_alloc-and-_.patch index fbd331601..ddf10eb6d 100644 --- a/target/linux/generic/backport-4.9/041-mm-rename-__alloc_page_frag-to-page_frag_alloc-and-_.patch +++ b/target/linux/generic/backport-4.9/041-mm-rename-__alloc_page_frag-to-page_frag_alloc-and-_.patch @@ -52,7 +52,7 @@ Signed-off-by: Linus Torvalds #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) { diff --git a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch index 90a158ec8..dffad0216 100644 --- a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch +++ b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch @@ -399,7 +399,7 @@ Signed-off-by: David S. Miller /* 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) { @@ -819,7 +819,7 @@ Signed-off-by: David S. Miller --- 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; diff --git a/target/linux/generic/hack-4.14/661-use_fq_codel_by_default.patch b/target/linux/generic/hack-4.14/661-use_fq_codel_by_default.patch index 7c724c0af..d1e92ae40 100644 --- a/target/linux/generic/hack-4.14/661-use_fq_codel_by_default.patch +++ b/target/linux/generic/hack-4.14/661-use_fq_codel_by_default.patch @@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau device, it has to decide which ones to send first, which ones to --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c -@@ -2014,7 +2014,7 @@ static int __init pktsched_init(void) +@@ -2028,7 +2028,7 @@ static int __init pktsched_init(void) return err; } diff --git a/target/linux/generic/hack-4.14/721-phy_packets.patch b/target/linux/generic/hack-4.14/721-phy_packets.patch index 3caeeaa19..ebe4787b6 100644 --- a/target/linux/generic/hack-4.14/721-phy_packets.patch +++ b/target/linux/generic/hack-4.14/721-phy_packets.patch @@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -2982,10 +2982,20 @@ static int xmit_one(struct sk_buff *skb, +@@ -3004,10 +3004,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); diff --git a/target/linux/generic/hack-4.14/902-debloat_proc.patch b/target/linux/generic/hack-4.14/902-debloat_proc.patch index 54c9bd40a..4e700ca0b 100644 --- a/target/linux/generic/hack-4.14/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.14/902-debloat_proc.patch @@ -243,7 +243,7 @@ Signed-off-by: Felix Fietkau } --- a/mm/vmstat.c +++ b/mm/vmstat.c -@@ -1947,10 +1947,12 @@ void __init init_mm_internals(void) +@@ -1951,10 +1951,12 @@ void __init init_mm_internals(void) start_shepherd_timer(); #endif #ifdef CONFIG_PROC_FS diff --git a/target/linux/generic/hack-4.9/721-phy_packets.patch b/target/linux/generic/hack-4.9/721-phy_packets.patch index fbf3c70ca..b25fdec47 100644 --- a/target/linux/generic/hack-4.9/721-phy_packets.patch +++ b/target/linux/generic/hack-4.9/721-phy_packets.patch @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau */ --- 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; } @@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau /** * 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_ } @@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau 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); diff --git a/target/linux/generic/hack-4.9/902-debloat_proc.patch b/target/linux/generic/hack-4.9/902-debloat_proc.patch index cff616808..3095f832a 100644 --- a/target/linux/generic/hack-4.9/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.9/902-debloat_proc.patch @@ -243,7 +243,7 @@ Signed-off-by: Felix Fietkau } --- 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 @@ -381,7 +381,7 @@ Signed-off-by: Felix Fietkau --- 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) { diff --git a/target/linux/generic/pending-4.14/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch b/target/linux/generic/pending-4.14/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch index b3dc43ea6..92e86b24e 100644 --- a/target/linux/generic/pending-4.14/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch +++ b/target/linux/generic/pending-4.14/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch @@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c -@@ -358,6 +358,8 @@ static inline int is_sp_move_ins(union m +@@ -360,6 +360,8 @@ static inline int is_sp_move_ins(union m if (ip->i_format.opcode == addiu_op || ip->i_format.opcode == daddiu_op) { diff --git a/target/linux/generic/pending-4.14/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/target/linux/generic/pending-4.14/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch index 44e7fa70a..bbcb7c23f 100644 --- a/target/linux/generic/pending-4.14/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch +++ b/target/linux/generic/pending-4.14/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch @@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -6146,7 +6146,7 @@ static void __ref alloc_node_mem_map(str +@@ -6153,7 +6153,7 @@ static void __ref alloc_node_mem_map(str mem_map = NODE_DATA(0)->node_mem_map; #if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM) if (page_to_pfn(mem_map) != pgdat->node_start_pfn) diff --git a/target/linux/generic/pending-4.14/630-packet_socket_type.patch b/target/linux/generic/pending-4.14/630-packet_socket_type.patch index e1736214f..d55d67854 100644 --- a/target/linux/generic/pending-4.14/630-packet_socket_type.patch +++ b/target/linux/generic/pending-4.14/630-packet_socket_type.patch @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3262,6 +3264,7 @@ static int packet_create(struct net *net +@@ -3265,6 +3267,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3875,6 +3878,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3878,6 +3881,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3927,6 +3940,13 @@ static int packet_getsockopt(struct sock +@@ -3930,6 +3943,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch index 3b69b6855..0b46ed9e4 100644 --- a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch @@ -300,15 +300,15 @@ Signed-off-by: Steven Barth /** * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own * @t: the outgoing tunnel device -@@ -1299,6 +1439,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str +@@ -1304,6 +1444,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; -@@ -1361,6 +1502,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str +@@ -1370,6 +1511,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); @@ -327,7 +327,7 @@ Signed-off-by: Steven Barth if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6)) return -1; -@@ -1489,6 +1642,14 @@ ip6_tnl_change(struct ip6_tnl *t, const +@@ -1498,6 +1651,14 @@ ip6_tnl_change(struct ip6_tnl *t, const t->parms.link = p->link; t->parms.proto = p->proto; t->parms.fwmark = p->fwmark; @@ -342,7 +342,7 @@ Signed-off-by: Steven Barth dst_cache_reset(&t->dst_cache); ip6_tnl_link_config(t); return 0; -@@ -1527,6 +1688,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ +@@ -1536,6 +1697,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ p->flowinfo = u->flowinfo; p->link = u->link; p->proto = u->proto; @@ -350,7 +350,7 @@ Signed-off-by: Steven Barth memcpy(p->name, u->name, sizeof(u->name)); } -@@ -1913,6 +2075,15 @@ static int ip6_tnl_validate(struct nlatt +@@ -1922,6 +2084,15 @@ static int ip6_tnl_validate(struct nlatt return 0; } @@ -366,7 +366,7 @@ Signed-off-by: Steven Barth static void ip6_tnl_netlink_parms(struct nlattr *data[], struct __ip6_tnl_parm *parms) { -@@ -1950,6 +2121,46 @@ static void ip6_tnl_netlink_parms(struct +@@ -1959,6 +2130,46 @@ static void ip6_tnl_netlink_parms(struct if (data[IFLA_IPTUN_FWMARK]) parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]); @@ -413,7 +413,7 @@ Signed-off-by: Steven Barth } static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[], -@@ -2065,6 +2276,12 @@ static void ip6_tnl_dellink(struct net_d +@@ -2074,6 +2285,12 @@ static void ip6_tnl_dellink(struct net_d static size_t ip6_tnl_get_size(const struct net_device *dev) { @@ -426,7 +426,7 @@ Signed-off-by: Steven Barth return /* IFLA_IPTUN_LINK */ nla_total_size(4) + -@@ -2094,6 +2311,24 @@ static size_t ip6_tnl_get_size(const str +@@ -2103,6 +2320,24 @@ static size_t ip6_tnl_get_size(const str nla_total_size(0) + /* IFLA_IPTUN_FWMARK */ nla_total_size(4) + @@ -451,7 +451,7 @@ Signed-off-by: Steven Barth 0; } -@@ -2101,6 +2336,9 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2110,6 +2345,9 @@ static int ip6_tnl_fill_info(struct sk_b { struct ip6_tnl *tunnel = netdev_priv(dev); struct __ip6_tnl_parm *parm = &tunnel->parms; @@ -461,7 +461,7 @@ Signed-off-by: Steven Barth if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || -@@ -2110,9 +2348,27 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2119,9 +2357,27 @@ static int ip6_tnl_fill_info(struct sk_b nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) || nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) || @@ -490,7 +490,7 @@ Signed-off-by: Steven Barth 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) || -@@ -2152,6 +2408,7 @@ static const struct nla_policy ip6_tnl_p +@@ -2161,6 +2417,7 @@ static const struct nla_policy ip6_tnl_p [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 }, [IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG }, [IFLA_IPTUN_FWMARK] = { .type = NLA_U32 }, diff --git a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 36c0fb57a..feeb7e70f 100644 --- a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4783,6 +4783,9 @@ static enum gro_result dev_gro_receive(s +@@ -4805,6 +4805,9 @@ static enum gro_result dev_gro_receive(s enum gro_result ret; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -6253,6 +6256,48 @@ static void __netdev_adjacent_dev_unlink +@@ -6275,6 +6278,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info) -@@ -6291,6 +6336,7 @@ static int __netdev_upper_dev_link(struc +@@ -6313,6 +6358,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -6368,6 +6414,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -6390,6 +6436,7 @@ void netdev_upper_dev_unlink(struct net_ __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); } -@@ -6938,6 +6985,7 @@ int dev_set_mac_address(struct net_devic +@@ -6962,6 +7009,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-4.9/655-increase_skb_pad.patch b/target/linux/generic/pending-4.9/655-increase_skb_pad.patch index ebd9893aa..de96d9a41 100644 --- a/target/linux/generic/pending-4.9/655-increase_skb_pad.patch +++ b/target/linux/generic/pending-4.9/655-increase_skb_pad.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- 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 diff --git a/target/linux/generic/pending-4.9/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-4.9/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch index 38c2ae647..35ffce38e 100644 --- a/target/linux/generic/pending-4.9/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ b/target/linux/generic/pending-4.9/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch @@ -300,15 +300,15 @@ Signed-off-by: Steven Barth /** * 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; } @@ -327,7 +327,7 @@ Signed-off-by: Steven Barth 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; @@ -342,7 +342,7 @@ Signed-off-by: Steven Barth 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; @@ -350,7 +350,7 @@ Signed-off-by: Steven Barth 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; } @@ -366,7 +366,7 @@ Signed-off-by: Steven Barth 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; @@ -413,7 +413,7 @@ Signed-off-by: Steven Barth } 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) { @@ -426,7 +426,7 @@ Signed-off-by: Steven Barth 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) + @@ -451,7 +451,7 @@ Signed-off-by: Steven Barth 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; @@ -461,7 +461,7 @@ Signed-off-by: Steven Barth 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) || @@ -490,7 +490,7 @@ Signed-off-by: Steven Barth 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 }, diff --git a/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 4d1f6c4c2..58518f9cf 100644 --- a/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau #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 @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau __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; @@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau 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); } @@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau 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; } @@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau 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); @@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau 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; diff --git a/target/linux/imx6/config-4.14 b/target/linux/imx6/config-4.14 index 4a3935ef2..fe975e63f 100644 --- a/target/linux/imx6/config-4.14 +++ b/target/linux/imx6/config-4.14 @@ -225,6 +225,7 @@ CONFIG_GPIO_PCA953X_IRQ=y CONFIG_GPIO_SYSFS=y # CONFIG_GRO_CELLS is not set CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y diff --git a/target/linux/ipq40xx/config-4.14 b/target/linux/ipq40xx/config-4.14 index 68e22aa2a..0bd9ff7a1 100644 --- a/target/linux/ipq40xx/config-4.14 +++ b/target/linux/ipq40xx/config-4.14 @@ -189,6 +189,7 @@ CONFIG_GPIO_WATCHDOG=y # CONFIG_GPIO_WATCHDOG_ARCH_INITCALL is not set # CONFIG_GRO_CELLS is not set CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y diff --git a/target/linux/ipq806x/config-4.14 b/target/linux/ipq806x/config-4.14 index fda8f52d2..30736ae14 100644 --- a/target/linux/ipq806x/config-4.14 +++ b/target/linux/ipq806x/config-4.14 @@ -183,6 +183,7 @@ CONFIG_GPIOLIB=y CONFIG_GPIOLIB_IRQCHIP=y CONFIG_GPIO_SYSFS=y CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y diff --git a/target/linux/layerscape/patches-4.9/202-core-linux-support-layerscape.patch b/target/linux/layerscape/patches-4.9/202-core-linux-support-layerscape.patch index 06777a376..d0570a271 100644 --- a/target/linux/layerscape/patches-4.9/202-core-linux-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/202-core-linux-support-layerscape.patch @@ -546,7 +546,7 @@ Signed-off-by: Yangbo Lu { --- 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); @@ -554,7 +554,7 @@ Signed-off-by: Yangbo Lu 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); @@ -1273,7 +1273,7 @@ Signed-off-by: Yangbo Lu +} --- 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 } } @@ -1297,7 +1297,7 @@ Signed-off-by: Yangbo Lu #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; @@ -1370,7 +1370,7 @@ Signed-off-by: Yangbo Lu &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; @@ -1379,7 +1379,7 @@ Signed-off-by: Yangbo Lu 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++) { diff --git a/target/linux/mediatek/mt7623/config-4.14 b/target/linux/mediatek/mt7623/config-4.14 index 043774046..672a59934 100644 --- a/target/linux/mediatek/mt7623/config-4.14 +++ b/target/linux/mediatek/mt7623/config-4.14 @@ -204,6 +204,7 @@ CONFIG_GPIOLIB=y CONFIG_GPIO_SYSFS=y # CONFIG_GRO_CELLS is not set CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y diff --git a/target/linux/mvebu/cortexa9/config-default b/target/linux/mvebu/cortexa9/config-default new file mode 100644 index 000000000..c9f039ba9 --- /dev/null +++ b/target/linux/mvebu/cortexa9/config-default @@ -0,0 +1 @@ +CONFIG_HARDEN_BRANCH_PREDICTOR=y diff --git a/target/linux/omap/config-4.14 b/target/linux/omap/config-4.14 index a94e127a4..795ff758e 100644 --- a/target/linux/omap/config-4.14 +++ b/target/linux/omap/config-4.14 @@ -277,6 +277,7 @@ CONFIG_GPIO_TWL4030=y CONFIG_GPIO_TWL6040=y CONFIG_GRACE_PERIOD=y CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y diff --git a/target/linux/samsung/s5pv210/config-4.14 b/target/linux/samsung/s5pv210/config-4.14 index 838d31314..e5a85414d 100644 --- a/target/linux/samsung/s5pv210/config-4.14 +++ b/target/linux/samsung/s5pv210/config-4.14 @@ -168,6 +168,7 @@ CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GPIOLIB=y # CONFIG_GRO_CELLS is not set CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y diff --git a/target/linux/sunxi/cortexa7/config-default b/target/linux/sunxi/cortexa7/config-default index cf41ddb4e..9daf9c443 100644 --- a/target/linux/sunxi/cortexa7/config-default +++ b/target/linux/sunxi/cortexa7/config-default @@ -1,4 +1,5 @@ CONFIG_DWMAC_SUN8I=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y # CONFIG_MACH_SUN4I is not set # CONFIG_MACH_SUN5I is not set # CONFIG_PINCTRL_GR8 is not set diff --git a/target/linux/sunxi/cortexa8/config-default b/target/linux/sunxi/cortexa8/config-default index fa40deb6f..aab7dec0a 100644 --- a/target/linux/sunxi/cortexa8/config-default +++ b/target/linux/sunxi/cortexa8/config-default @@ -1,6 +1,7 @@ # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set # CONFIG_ARM_ERRATA_643719 is not set # CONFIG_ARM_LPAE is not set +CONFIG_HARDEN_BRANCH_PREDICTOR=y # CONFIG_MACH_SUN6I is not set # CONFIG_MACH_SUN7I is not set # CONFIG_MACH_SUN8I is not set diff --git a/target/linux/sunxi/patches-4.14/001-net-stmmac-snps-dwmac-mdio-MDIOs-are-automatically-r.patch b/target/linux/sunxi/patches-4.14/001-net-stmmac-snps-dwmac-mdio-MDIOs-are-automatically-r.patch index 3a9668b64..838b23471 100644 --- a/target/linux/sunxi/patches-4.14/001-net-stmmac-snps-dwmac-mdio-MDIOs-are-automatically-r.patch +++ b/target/linux/sunxi/patches-4.14/001-net-stmmac-snps-dwmac-mdio-MDIOs-are-automatically-r.patch @@ -20,7 +20,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c -@@ -318,10 +318,6 @@ static int stmmac_dt_phy(struct plat_stm +@@ -317,10 +317,6 @@ static int stmmac_dt_phy(struct plat_stm bool mdio = true; static const struct of_device_id need_mdio_ids[] = { { .compatible = "snps,dwc-qos-ethernet-4.10" }, diff --git a/target/linux/zynq/config-4.14 b/target/linux/zynq/config-4.14 index e7df040d6..9dd581e2f 100644 --- a/target/linux/zynq/config-4.14 +++ b/target/linux/zynq/config-4.14 @@ -263,6 +263,7 @@ CONFIG_GPIO_SYSFS=y CONFIG_GPIO_ZYNQ=y # CONFIG_GRO_CELLS is not set CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y