diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 7fe6e7910b..5cc0200893 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -3,10 +3,10 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .43 -LINUX_VERSION-4.4 = .116 +LINUX_VERSION-4.4 = .120 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c -LINUX_KERNEL_HASH-4.4.116 = 566fea5814627ee65cc1e6b9c4bfe2f7642ac36b6185e2a3dcb9e8ba1e325fa3 +LINUX_KERNEL_HASH-4.4.120 = a25f07372a2661c577e3c8a395bfb4a9f277518a01d097275604eccd3689f478 ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) diff --git a/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch index 9a440b4505..72d964df63 100644 --- a/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch +++ b/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch @@ -310,7 +310,7 @@ if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK) --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c -@@ -1410,7 +1410,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str +@@ -1307,7 +1307,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str dsfield = ipv6_get_dsfield(ipv6h); if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS) diff --git a/target/linux/brcm2708/patches-4.4/0029-Add-dwc_otg-driver.patch b/target/linux/brcm2708/patches-4.4/0029-Add-dwc_otg-driver.patch index 1f652dc998..561fcaed10 100644 --- a/target/linux/brcm2708/patches-4.4/0029-Add-dwc_otg-driver.patch +++ b/target/linux/brcm2708/patches-4.4/0029-Add-dwc_otg-driver.patch @@ -4592,7 +4592,7 @@ dwc_otg: Remove duplicate gadget probe/unregister function +module_exit(fsg_cleanup); --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig -@@ -735,6 +735,19 @@ config USB_HWA_HCD +@@ -737,6 +737,19 @@ config USB_HWA_HCD To compile this driver a module, choose M here: the module will be called "hwa-hc". diff --git a/target/linux/brcm2708/patches-4.4/0083-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch b/target/linux/brcm2708/patches-4.4/0083-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch index e3101e0131..859a08db3a 100644 --- a/target/linux/brcm2708/patches-4.4/0083-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch +++ b/target/linux/brcm2708/patches-4.4/0083-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch @@ -390,7 +390,7 @@ Subject: [PATCH] mfd: Add Raspberry Pi Sense HAT core driver + --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig -@@ -2505,3 +2505,16 @@ config FB_SM712 +@@ -2506,3 +2506,16 @@ config FB_SM712 This driver is also available as a module. The module will be called sm712fb. If you want to compile it as a module, say M here and read . diff --git a/target/linux/brcm2708/patches-4.4/0551-kbuild-add-fno-PIE.patch b/target/linux/brcm2708/patches-4.4/0551-kbuild-add-fno-PIE.patch index 5bfbbf667c..c3b5adc7c4 100644 --- a/target/linux/brcm2708/patches-4.4/0551-kbuild-add-fno-PIE.patch +++ b/target/linux/brcm2708/patches-4.4/0551-kbuild-add-fno-PIE.patch @@ -29,7 +29,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/Makefile +++ b/Makefile -@@ -622,6 +622,8 @@ KBUILD_CFLAGS += $(call cc-disable-warni +@@ -624,6 +624,8 @@ KBUILD_CFLAGS += $(call cc-disable-warni KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation) KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow) KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context) diff --git a/target/linux/brcm2708/patches-4.4/0552-kbuild-Steal-gcc-s-pie-from-the-very-beginning.patch b/target/linux/brcm2708/patches-4.4/0552-kbuild-Steal-gcc-s-pie-from-the-very-beginning.patch index 3e3d35a529..de20f9e8c4 100644 --- a/target/linux/brcm2708/patches-4.4/0552-kbuild-Steal-gcc-s-pie-from-the-very-beginning.patch +++ b/target/linux/brcm2708/patches-4.4/0552-kbuild-Steal-gcc-s-pie-from-the-very-beginning.patch @@ -38,7 +38,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/Makefile +++ b/Makefile -@@ -622,8 +622,6 @@ KBUILD_CFLAGS += $(call cc-disable-warni +@@ -624,8 +624,6 @@ KBUILD_CFLAGS += $(call cc-disable-warni KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation) KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow) KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context) diff --git a/target/linux/generic/patches-4.4/201-extra_optimization.patch b/target/linux/generic/patches-4.4/201-extra_optimization.patch index 2f834422cb..b4235a11d4 100644 --- a/target/linux/generic/patches-4.4/201-extra_optimization.patch +++ b/target/linux/generic/patches-4.4/201-extra_optimization.patch @@ -1,6 +1,6 @@ --- a/Makefile +++ b/Makefile -@@ -624,12 +624,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni +@@ -626,12 +626,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context) ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE diff --git a/target/linux/generic/patches-4.4/202-reduce_module_size.patch b/target/linux/generic/patches-4.4/202-reduce_module_size.patch index d68c463648..1aabf3e722 100644 --- a/target/linux/generic/patches-4.4/202-reduce_module_size.patch +++ b/target/linux/generic/patches-4.4/202-reduce_module_size.patch @@ -1,6 +1,6 @@ --- a/Makefile +++ b/Makefile -@@ -403,7 +403,7 @@ KBUILD_CFLAGS_KERNEL := +@@ -405,7 +405,7 @@ KBUILD_CFLAGS_KERNEL := KBUILD_AFLAGS := -D__ASSEMBLY__ $(call cc-option,-fno-PIE) KBUILD_AFLAGS_MODULE := -DMODULE KBUILD_CFLAGS_MODULE := -DMODULE diff --git a/target/linux/generic/patches-4.4/204-module_strip.patch b/target/linux/generic/patches-4.4/204-module_strip.patch index 106b0a5aed..a661f98c65 100644 --- a/target/linux/generic/patches-4.4/204-module_strip.patch +++ b/target/linux/generic/patches-4.4/204-module_strip.patch @@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau config MODULES_TREE_LOOKUP --- a/kernel/module.c +++ b/kernel/module.c -@@ -2871,6 +2871,7 @@ static struct module *setup_load_info(st +@@ -2880,6 +2880,7 @@ static void check_modinfo_retpoline(stru static int check_modinfo(struct module *mod, struct load_info *info, int flags) { @@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau const char *modmagic = get_modinfo(info, "vermagic"); int err; -@@ -2900,6 +2901,7 @@ static int check_modinfo(struct module * +@@ -2911,6 +2912,7 @@ static int check_modinfo(struct module * pr_warn("%s: module is from the staging directory, the quality " "is unknown, you have been warned.\n", mod->name); } @@ -143,7 +143,7 @@ Signed-off-by: Felix Fietkau buf_printf(b, "\n"); buf_printf(b, "__visible struct module __this_module\n"); buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n"); -@@ -2125,16 +2129,20 @@ static void add_header(struct buffer *b, +@@ -2125,8 +2129,10 @@ static void add_header(struct buffer *b, static void add_intree_flag(struct buffer *b, int is_intree) { @@ -153,6 +153,9 @@ Signed-off-by: Felix Fietkau +#endif } + /* Cannot check for assembler */ +@@ -2139,10 +2145,12 @@ static void add_retpoline(struct buffer + static void add_staging_flag(struct buffer *b, const char *name) { +#ifndef CONFIG_MODULE_STRIPPED @@ -164,7 +167,7 @@ Signed-off-by: Felix Fietkau } /* In kernel, this size is defined in linux/module.h; -@@ -2238,11 +2246,13 @@ static void add_depends(struct buffer *b +@@ -2246,11 +2254,13 @@ static void add_depends(struct buffer *b static void add_srcversion(struct buffer *b, struct module *mod) { @@ -178,7 +181,7 @@ Signed-off-by: Felix Fietkau } static void write_if_changed(struct buffer *b, const char *fname) -@@ -2476,7 +2486,9 @@ int main(int argc, char **argv) +@@ -2485,7 +2495,9 @@ int main(int argc, char **argv) add_staging_flag(&buf, mod->name); err |= add_versions(&buf, mod); add_depends(&buf, mod, modules); diff --git a/target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch index 303d831214..fe599798ce 100644 --- a/target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ b/target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch @@ -16,7 +16,7 @@ Signed-off-by: Steven Barth --- a/include/net/ip6_tunnel.h +++ b/include/net/ip6_tunnel.h -@@ -15,6 +15,18 @@ +@@ -17,6 +17,18 @@ /* determine capability on a per-packet basis */ #define IP6_TNL_F_CAP_PER_PACKET 0x40000 @@ -35,7 +35,7 @@ Signed-off-by: Steven Barth struct __ip6_tnl_parm { char name[IFNAMSIZ]; /* name of tunnel device */ int link; /* ifindex of underlying L2 interface */ -@@ -25,6 +37,7 @@ struct __ip6_tnl_parm { +@@ -27,6 +39,7 @@ struct __ip6_tnl_parm { __u32 flags; /* tunnel flags */ struct in6_addr laddr; /* local tunnel end-point address */ struct in6_addr raddr; /* remote tunnel end-point address */ @@ -94,7 +94,7 @@ Signed-off-by: Steven Barth } static int ip6_tnl_dev_init(struct net_device *dev); -@@ -230,20 +230,29 @@ EXPORT_SYMBOL_GPL(ip6_tnl_dst_init); +@@ -139,20 +139,29 @@ static struct net_device_stats *ip6_get_ static struct ip6_tnl * ip6_tnl_lookup(struct net *net, const struct in6_addr *remote, const struct in6_addr *local) { @@ -129,7 +129,7 @@ Signed-off-by: Steven Barth for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) { if (ipv6_addr_equal(local, &t->parms.laddr) && ipv6_addr_any(&t->parms.raddr) && -@@ -251,7 +260,7 @@ ip6_tnl_lookup(struct net *net, const st +@@ -160,7 +169,7 @@ ip6_tnl_lookup(struct net *net, const st return t; } @@ -138,7 +138,7 @@ Signed-off-by: Steven Barth for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) { if (ipv6_addr_equal(remote, &t->parms.raddr) && ipv6_addr_any(&t->parms.laddr) && -@@ -287,7 +296,7 @@ ip6_tnl_bucket(struct ip6_tnl_net *ip6n, +@@ -196,7 +205,7 @@ ip6_tnl_bucket(struct ip6_tnl_net *ip6n, if (!ipv6_addr_any(remote) || !ipv6_addr_any(local)) { prio = 1; @@ -147,7 +147,7 @@ Signed-off-by: Steven Barth } return &ip6n->tnls[prio][h]; } -@@ -460,6 +469,12 @@ ip6_tnl_dev_uninit(struct net_device *de +@@ -369,6 +378,12 @@ ip6_tnl_dev_uninit(struct net_device *de struct net *net = t->net; struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id); @@ -160,7 +160,7 @@ Signed-off-by: Steven Barth if (dev == ip6n->fb_tnl_dev) RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL); else -@@ -856,6 +871,108 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t, +@@ -765,6 +780,108 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t, } EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl); @@ -269,7 +269,7 @@ Signed-off-by: Steven Barth /** * ip6_tnl_rcv - decapsulate IPv6 packet and retransmit it locally * @skb: received socket buffer -@@ -901,6 +1018,26 @@ static int ip6_tnl_rcv(struct sk_buff *s +@@ -810,6 +927,26 @@ static int ip6_tnl_rcv(struct sk_buff *s skb_reset_network_header(skb); skb->protocol = htons(protocol); memset(skb->cb, 0, sizeof(struct inet6_skb_parm)); @@ -296,7 +296,7 @@ Signed-off-by: Steven Barth __skb_tunnel_rx(skb, t->dev, t->net); -@@ -1248,6 +1385,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str +@@ -1145,6 +1282,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str __u32 mtu; u8 tproto; int err; @@ -304,7 +304,7 @@ Signed-off-by: Steven Barth tproto = ACCESS_ONCE(t->parms.proto); if ((tproto != IPPROTO_IPV6 && tproto != 0) || -@@ -1278,6 +1416,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str +@@ -1175,6 +1313,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK) fl6.flowi6_mark = skb->mark; @@ -323,7 +323,7 @@ Signed-off-by: Steven Barth err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu); if (err != 0) { if (err == -EMSGSIZE) -@@ -1392,6 +1542,14 @@ ip6_tnl_change(struct ip6_tnl *t, const +@@ -1289,6 +1439,14 @@ ip6_tnl_change(struct ip6_tnl *t, const t->parms.flowinfo = p->flowinfo; t->parms.link = p->link; t->parms.proto = p->proto; @@ -335,10 +335,10 @@ Signed-off-by: Steven Barth + } + t->parms.fmrs = p->fmrs; + - ip6_tnl_dst_reset(t); + dst_cache_reset(&t->dst_cache); ip6_tnl_link_config(t); return 0; -@@ -1430,6 +1588,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ +@@ -1327,6 +1485,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ p->flowinfo = u->flowinfo; p->link = u->link; p->proto = u->proto; @@ -346,7 +346,7 @@ Signed-off-by: Steven Barth memcpy(p->name, u->name, sizeof(u->name)); } -@@ -1725,6 +1884,15 @@ static int ip6_tnl_validate(struct nlatt +@@ -1622,6 +1781,15 @@ static int ip6_tnl_validate(struct nlatt return 0; } @@ -362,7 +362,7 @@ Signed-off-by: Steven Barth static void ip6_tnl_netlink_parms(struct nlattr *data[], struct __ip6_tnl_parm *parms) { -@@ -1756,6 +1924,46 @@ static void ip6_tnl_netlink_parms(struct +@@ -1653,6 +1821,46 @@ static void ip6_tnl_netlink_parms(struct if (data[IFLA_IPTUN_PROTO]) parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]); @@ -409,7 +409,7 @@ Signed-off-by: Steven Barth } static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev, -@@ -1808,6 +2016,12 @@ static void ip6_tnl_dellink(struct net_d +@@ -1705,6 +1913,12 @@ static void ip6_tnl_dellink(struct net_d static size_t ip6_tnl_get_size(const struct net_device *dev) { @@ -422,7 +422,7 @@ Signed-off-by: Steven Barth return /* IFLA_IPTUN_LINK */ nla_total_size(4) + -@@ -1825,6 +2039,24 @@ static size_t ip6_tnl_get_size(const str +@@ -1722,6 +1936,24 @@ static size_t ip6_tnl_get_size(const str nla_total_size(4) + /* IFLA_IPTUN_PROTO */ nla_total_size(1) + @@ -447,7 +447,7 @@ Signed-off-by: Steven Barth 0; } -@@ -1832,6 +2064,9 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -1729,6 +1961,9 @@ static int ip6_tnl_fill_info(struct sk_b { struct ip6_tnl *tunnel = netdev_priv(dev); struct __ip6_tnl_parm *parm = &tunnel->parms; @@ -457,7 +457,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) || -@@ -1840,8 +2075,27 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -1737,8 +1972,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) || @@ -486,7 +486,7 @@ Signed-off-by: Steven Barth return 0; nla_put_failure: -@@ -1865,6 +2119,7 @@ static const struct nla_policy ip6_tnl_p +@@ -1762,6 +2016,7 @@ static const struct nla_policy ip6_tnl_p [IFLA_IPTUN_FLOWINFO] = { .type = NLA_U32 }, [IFLA_IPTUN_FLAGS] = { .type = NLA_U32 }, [IFLA_IPTUN_PROTO] = { .type = NLA_U8 }, diff --git a/target/linux/generic/patches-4.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/patches-4.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 4bf34c128e..c921a079ae 100644 --- a/target/linux/generic/patches-4.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/patches-4.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski static const struct rt6_info ip6_blk_hole_entry_template = { .dst = { .__refcnt = ATOMIC_INIT(1), -@@ -1898,6 +1915,11 @@ static struct rt6_info *ip6_route_info_c +@@ -1899,6 +1916,11 @@ static struct rt6_info *ip6_route_info_c rt->dst.output = ip6_pkt_prohibit_out; rt->dst.input = ip6_pkt_prohibit; break; @@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -2501,6 +2523,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -2502,6 +2524,17 @@ static int ip6_pkt_prohibit_out(struct n return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -2743,7 +2776,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -2744,7 +2777,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -3096,6 +3130,9 @@ static int rt6_fill_node(struct net *net +@@ -3097,6 +3131,9 @@ static int rt6_fill_node(struct net *net case -EACCES: rtm->rtm_type = RTN_PROHIBIT; break; @@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski case -EAGAIN: rtm->rtm_type = RTN_THROW; break; -@@ -3375,6 +3412,8 @@ static int ip6_route_dev_notify(struct n +@@ -3376,6 +3413,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -3601,6 +3640,17 @@ static int __net_init ip6_route_net_init +@@ -3602,6 +3641,17 @@ static int __net_init ip6_route_net_init net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); @@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski #endif net->ipv6.sysctl.flush_delay = 0; -@@ -3619,6 +3669,8 @@ out: +@@ -3620,6 +3670,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -3636,6 +3688,7 @@ static void __net_exit ip6_route_net_exi +@@ -3637,6 +3689,7 @@ static void __net_exit ip6_route_net_exi #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_blk_hole_entry); @@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -3709,6 +3762,9 @@ void __init ip6_route_init_special_entri +@@ -3710,6 +3763,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/patches-4.4/901-debloat_sock_diag.patch b/target/linux/generic/patches-4.4/901-debloat_sock_diag.patch index fa9f37b716..4733d1b79c 100644 --- a/target/linux/generic/patches-4.4/901-debloat_sock_diag.patch +++ b/target/linux/generic/patches-4.4/901-debloat_sock_diag.patch @@ -39,7 +39,7 @@ --- a/net/ipv4/Kconfig +++ b/net/ipv4/Kconfig -@@ -414,6 +414,7 @@ config INET_LRO +@@ -415,6 +415,7 @@ config INET_LRO config INET_DIAG tristate "INET: socket monitoring interface" diff --git a/target/linux/ipq806x/patches-4.4/096-08-usb-dwc3-remove-num_event_buffers.patch b/target/linux/ipq806x/patches-4.4/096-08-usb-dwc3-remove-num_event_buffers.patch index 4fb406442c..36298ed2a9 100644 --- a/target/linux/ipq806x/patches-4.4/096-08-usb-dwc3-remove-num_event_buffers.patch +++ b/target/linux/ipq806x/patches-4.4/096-08-usb-dwc3-remove-num_event_buffers.patch @@ -161,7 +161,7 @@ Signed-off-by: Felipe Balbi --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -2569,14 +2569,14 @@ static void dwc3_process_event_entry(str +@@ -2571,14 +2571,14 @@ static void dwc3_process_event_entry(str } } @@ -178,7 +178,7 @@ Signed-off-by: Felipe Balbi left = evt->count; if (!(evt->flags & DWC3_EVENT_PENDING)) -@@ -2601,7 +2601,7 @@ static irqreturn_t dwc3_process_event_bu +@@ -2603,7 +2603,7 @@ static irqreturn_t dwc3_process_event_bu evt->lpos = (evt->lpos + 4) % DWC3_EVENT_BUFFERS_SIZE; left -= 4; @@ -187,7 +187,7 @@ Signed-off-by: Felipe Balbi } evt->count = 0; -@@ -2609,9 +2609,9 @@ static irqreturn_t dwc3_process_event_bu +@@ -2611,9 +2611,9 @@ static irqreturn_t dwc3_process_event_bu ret = IRQ_HANDLED; /* Unmask interrupt */ @@ -199,7 +199,7 @@ Signed-off-by: Felipe Balbi return ret; } -@@ -2621,27 +2621,23 @@ static irqreturn_t dwc3_thread_interrupt +@@ -2623,27 +2623,23 @@ static irqreturn_t dwc3_thread_interrupt struct dwc3 *dwc = _dwc; unsigned long flags; irqreturn_t ret = IRQ_NONE; @@ -231,7 +231,7 @@ Signed-off-by: Felipe Balbi count &= DWC3_GEVNTCOUNT_MASK; if (!count) return IRQ_NONE; -@@ -2650,9 +2646,9 @@ static irqreturn_t dwc3_check_event_buf( +@@ -2652,9 +2648,9 @@ static irqreturn_t dwc3_check_event_buf( evt->flags |= DWC3_EVENT_PENDING; /* Mask interrupt */ @@ -243,7 +243,7 @@ Signed-off-by: Felipe Balbi return IRQ_WAKE_THREAD; } -@@ -2660,18 +2656,8 @@ static irqreturn_t dwc3_check_event_buf( +@@ -2662,18 +2658,8 @@ static irqreturn_t dwc3_check_event_buf( static irqreturn_t dwc3_interrupt(int irq, void *_dwc) { struct dwc3 *dwc = _dwc; diff --git a/target/linux/ipq806x/patches-4.4/096-09-usb-dwc3-drop-ev_buffs-array.patch b/target/linux/ipq806x/patches-4.4/096-09-usb-dwc3-drop-ev_buffs-array.patch index 6592a4eece..e2aa2a18b9 100644 --- a/target/linux/ipq806x/patches-4.4/096-09-usb-dwc3-drop-ev_buffs-array.patch +++ b/target/linux/ipq806x/patches-4.4/096-09-usb-dwc3-drop-ev_buffs-array.patch @@ -76,7 +76,7 @@ Signed-off-by: Felipe Balbi struct usb_gadget gadget; --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -2576,7 +2576,7 @@ static irqreturn_t dwc3_process_event_bu +@@ -2578,7 +2578,7 @@ static irqreturn_t dwc3_process_event_bu int left; u32 reg; @@ -85,7 +85,7 @@ Signed-off-by: Felipe Balbi left = evt->count; if (!(evt->flags & DWC3_EVENT_PENDING)) -@@ -2635,7 +2635,7 @@ static irqreturn_t dwc3_check_event_buf( +@@ -2637,7 +2637,7 @@ static irqreturn_t dwc3_check_event_buf( u32 count; u32 reg; diff --git a/target/linux/layerscape/patches-4.4/7224-fsl-mc-msi-Added-FSL-MC-specific-member-to-the-msi_d.patch b/target/linux/layerscape/patches-4.4/7224-fsl-mc-msi-Added-FSL-MC-specific-member-to-the-msi_d.patch index 8dd11f4160..62a0f8a962 100644 --- a/target/linux/layerscape/patches-4.4/7224-fsl-mc-msi-Added-FSL-MC-specific-member-to-the-msi_d.patch +++ b/target/linux/layerscape/patches-4.4/7224-fsl-mc-msi-Added-FSL-MC-specific-member-to-the-msi_d.patch @@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/include/linux/msi.h +++ b/include/linux/msi.h -@@ -33,6 +33,14 @@ struct platform_msi_desc { +@@ -39,6 +39,14 @@ struct platform_msi_desc { }; /** @@ -30,7 +30,7 @@ Signed-off-by: Greg Kroah-Hartman * struct msi_desc - Descriptor structure for MSI based interrupts * @list: List head for management * @irq: The base interrupt number -@@ -87,6 +95,7 @@ struct msi_desc { +@@ -93,6 +101,7 @@ struct msi_desc { * tree wide cleanup. */ struct platform_msi_desc platform; diff --git a/target/linux/mediatek/patches-4.4/0020-arm64-dts-mediatek-add-xHCI-usb-phy-for-mt8173.patch b/target/linux/mediatek/patches-4.4/0020-arm64-dts-mediatek-add-xHCI-usb-phy-for-mt8173.patch index 50c03ee892..5b57b9edbc 100644 --- a/target/linux/mediatek/patches-4.4/0020-arm64-dts-mediatek-add-xHCI-usb-phy-for-mt8173.patch +++ b/target/linux/mediatek/patches-4.4/0020-arm64-dts-mediatek-add-xHCI-usb-phy-for-mt8173.patch @@ -57,7 +57,7 @@ Signed-off-by: Chunfeng Yun #include #include #include "mt8173-pinfunc.h" -@@ -510,6 +511,47 @@ +@@ -512,6 +513,47 @@ status = "disabled"; }; diff --git a/target/linux/mediatek/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch b/target/linux/mediatek/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch index a5b51d4a90..f1f4971b3d 100644 --- a/target/linux/mediatek/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch +++ b/target/linux/mediatek/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch @@ -5142,7 +5142,7 @@ Signed-off-by: John Crispin long long offset, long long length); --- a/include/linux/mtd/sh_flctl.h +++ b/include/linux/mtd/sh_flctl.h -@@ -143,11 +143,11 @@ enum flctl_ecc_res_t { +@@ -143,7 +143,6 @@ enum flctl_ecc_res_t { struct dma_chan; struct sh_flctl { @@ -5150,12 +5150,7 @@ Signed-off-by: John Crispin struct nand_chip chip; struct platform_device *pdev; struct dev_pm_qos_request pm_qos; - void __iomem *reg; -+ resource_size_t fifo; - - uint8_t done_buff[2048 + 64]; /* max size 2048 + 64 */ - int read_bytes; -@@ -186,7 +186,7 @@ struct sh_flctl_platform_data { +@@ -187,7 +186,7 @@ struct sh_flctl_platform_data { static inline struct sh_flctl *mtd_to_flctl(struct mtd_info *mtdinfo) { diff --git a/target/linux/oxnas/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch b/target/linux/oxnas/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch index a5b51d4a90..f1f4971b3d 100644 --- a/target/linux/oxnas/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch +++ b/target/linux/oxnas/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch @@ -5142,7 +5142,7 @@ Signed-off-by: John Crispin long long offset, long long length); --- a/include/linux/mtd/sh_flctl.h +++ b/include/linux/mtd/sh_flctl.h -@@ -143,11 +143,11 @@ enum flctl_ecc_res_t { +@@ -143,7 +143,6 @@ enum flctl_ecc_res_t { struct dma_chan; struct sh_flctl { @@ -5150,12 +5150,7 @@ Signed-off-by: John Crispin struct nand_chip chip; struct platform_device *pdev; struct dev_pm_qos_request pm_qos; - void __iomem *reg; -+ resource_size_t fifo; - - uint8_t done_buff[2048 + 64]; /* max size 2048 + 64 */ - int read_bytes; -@@ -186,7 +186,7 @@ struct sh_flctl_platform_data { +@@ -187,7 +186,7 @@ struct sh_flctl_platform_data { static inline struct sh_flctl *mtd_to_flctl(struct mtd_info *mtdinfo) { diff --git a/target/linux/oxnas/patches-4.4/800-oxnas-ehci.patch b/target/linux/oxnas/patches-4.4/800-oxnas-ehci.patch index 5b25afc953..7f26de6b14 100644 --- a/target/linux/oxnas/patches-4.4/800-oxnas-ehci.patch +++ b/target/linux/oxnas/patches-4.4/800-oxnas-ehci.patch @@ -1,6 +1,6 @@ --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig -@@ -313,6 +313,13 @@ config USB_OCTEON_EHCI +@@ -315,6 +315,13 @@ config USB_OCTEON_EHCI USB 2.0 device support. All CN6XXX based chips with USB are supported.