From: RISCi_ATOM Date: Mon, 31 Dec 2018 22:21:35 +0000 (-0500) Subject: Bump kernel to 4.4.167 (from upstream 17.01 branch) X-Git-Tag: v1.4.6~2 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=69457be419fd9c9038c462544c12fe1f84d4b8d2;p=librecmc%2Flibrecmc.git Bump kernel to 4.4.167 (from upstream 17.01 branch) --- diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 91422a3287..d62245c0d2 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -2,9 +2,9 @@ LINUX_RELEASE?=1 -LINUX_VERSION-4.4 = .159 +LINUX_VERSION-4.4 = .167 -LINUX_KERNEL_HASH-4.4.159 = d464fea1f888ada3a55c3aea1c05ba9fd2d4edd7ffb152369faace18a285998b +LINUX_KERNEL_HASH-4.4.167 = 301feaaecbbe030a7a3ea05a272cca11b8958dc9ec619ec77f562eb1c75f0784 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 72d964df63..164000f5c0 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 @@ -250,7 +250,7 @@ &sin->sin6_addr); sin->sin6_scope_id = 0; } -@@ -770,12 +770,12 @@ int ip6_datagram_send_ctl(struct net *ne +@@ -773,12 +773,12 @@ int ip6_datagram_send_ctl(struct net *ne } if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { @@ -267,7 +267,7 @@ case IPV6_2292HOPOPTS: --- a/net/ipv6/ip6_gre.c +++ b/net/ipv6/ip6_gre.c -@@ -395,7 +395,7 @@ static void ip6gre_err(struct sk_buff *s +@@ -397,7 +397,7 @@ static void ip6gre_err(struct sk_buff *s return; ipv6h = (const struct ipv6hdr *)skb->data; greh = (const struct gre_base_hdr *)(skb->data + offset); @@ -276,7 +276,7 @@ t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr, key, greh->protocol); -@@ -482,11 +482,11 @@ static int ip6gre_rcv(struct sk_buff *sk +@@ -484,11 +484,11 @@ static int ip6gre_rcv(struct sk_buff *sk offset += 4; } if (flags&GRE_KEY) { @@ -290,7 +290,7 @@ offset += 4; } } -@@ -748,7 +748,7 @@ static netdev_tx_t ip6gre_xmit2(struct s +@@ -750,7 +750,7 @@ static netdev_tx_t ip6gre_xmit2(struct s if (tunnel->parms.o_flags&GRE_SEQ) { ++tunnel->o_seqno; @@ -299,7 +299,7 @@ ptr--; } if (tunnel->parms.o_flags&GRE_KEY) { -@@ -844,7 +844,7 @@ static inline int ip6gre_xmit_ipv6(struc +@@ -846,7 +846,7 @@ static inline int ip6gre_xmit_ipv6(struc dsfield = ipv6_get_dsfield(ipv6h); if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS) @@ -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 -@@ -1307,7 +1307,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str +@@ -1319,7 +1319,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str dsfield = ipv6_get_dsfield(ipv6h); if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS) @@ -346,7 +346,7 @@ #endif /* _LINUX_TYPES_H */ --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c -@@ -1321,8 +1321,8 @@ static struct sk_buff **inet_gro_receive +@@ -1322,8 +1322,8 @@ static struct sk_buff **inet_gro_receive if (unlikely(ip_fast_csum((u8 *)iph, 5))) goto out_unlock; @@ -359,7 +359,7 @@ for (p = *head; p; p = p->next) { --- a/net/ipv4/route.c +++ b/net/ipv4/route.c -@@ -458,7 +458,7 @@ static struct neighbour *ipv4_neigh_look +@@ -461,7 +461,7 @@ static struct neighbour *ipv4_neigh_look else if (skb) pkey = &ip_hdr(skb)->daddr; @@ -370,7 +370,7 @@ return neigh_create(&arp_tbl, pkey, dev); --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -451,48 +451,53 @@ static void tcp_options_write(__be32 *pt +@@ -456,48 +456,53 @@ static void tcp_options_write(__be32 *pt u16 options = opts->options; /* mungable copy */ if (unlikely(OPTION_MD5 & options)) { @@ -447,7 +447,7 @@ } if (unlikely(opts->num_sack_blocks)) { -@@ -500,16 +505,17 @@ static void tcp_options_write(__be32 *pt +@@ -505,16 +510,17 @@ static void tcp_options_write(__be32 *pt tp->duplicate_sack : tp->selective_acks; int this_sack; @@ -471,7 +471,7 @@ } tp->rx_opt.dsack = 0; -@@ -522,13 +528,14 @@ static void tcp_options_write(__be32 *pt +@@ -527,13 +533,14 @@ static void tcp_options_write(__be32 *pt if (foc->exp) { len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len; @@ -610,7 +610,7 @@ goto next_ht; --- a/net/ipv6/ip6_offload.c +++ b/net/ipv6/ip6_offload.c -@@ -225,7 +225,7 @@ static struct sk_buff **ipv6_gro_receive +@@ -226,7 +226,7 @@ static struct sk_buff **ipv6_gro_receive continue; iph2 = (struct ipv6hdr *)(p->data + off); @@ -642,9 +642,9 @@ - *(__be32 *)iph = to; + net_hdr_word(iph) = to; if (skb->ip_summed == CHECKSUM_COMPLETE) - skb->csum = csum_add(csum_sub(skb->csum, from), to); - return 1; -@@ -134,7 +134,7 @@ static inline int IP6_ECN_set_ce(struct + skb->csum = csum_add(csum_sub(skb->csum, (__force __wsum)from), + (__force __wsum)to); +@@ -135,7 +135,7 @@ static inline int IP6_ECN_set_ce(struct static inline void IP6_ECN_clear(struct ipv6hdr *iph) { @@ -838,7 +838,7 @@ --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3818,14 +3818,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -3836,14 +3836,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/generic/patches-4.4/030-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch b/target/linux/generic/patches-4.4/030-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch index 36fb936e32..a75ddfc4d9 100644 --- a/target/linux/generic/patches-4.4/030-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch +++ b/target/linux/generic/patches-4.4/030-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c -@@ -1835,13 +1835,13 @@ static struct sk_buff *smsc95xx_tx_fixup +@@ -1838,13 +1838,13 @@ static struct sk_buff *smsc95xx_tx_fixup /* We do not advertise SG, so skbs should be already linearized */ BUG_ON(skb_shinfo(skb)->nr_frags); diff --git a/target/linux/generic/patches-4.4/043-mtd-spi-nor-mx25l3205d-mx25l6405d-append-SECT_4K.patch b/target/linux/generic/patches-4.4/043-mtd-spi-nor-mx25l3205d-mx25l6405d-append-SECT_4K.patch index b7fd046a23..6388c9afea 100644 --- a/target/linux/generic/patches-4.4/043-mtd-spi-nor-mx25l3205d-mx25l6405d-append-SECT_4K.patch +++ b/target/linux/generic/patches-4.4/043-mtd-spi-nor-mx25l3205d-mx25l6405d-append-SECT_4K.patch @@ -13,7 +13,7 @@ Signed-off-by: Brian Norris --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -715,9 +715,9 @@ static const struct flash_info spi_nor_i +@@ -721,9 +721,9 @@ static const struct flash_info spi_nor_i { "mx25l4005a", INFO(0xc22013, 0, 64 * 1024, 8, SECT_4K) }, { "mx25l8005", INFO(0xc22014, 0, 64 * 1024, 16, 0) }, { "mx25l1606e", INFO(0xc22015, 0, 64 * 1024, 32, SECT_4K) }, diff --git a/target/linux/generic/patches-4.4/046-ubifs-silence-error-output-if-MS_SILENT-is-set.patch b/target/linux/generic/patches-4.4/046-ubifs-silence-error-output-if-MS_SILENT-is-set.patch index 95de680989..dc552e46d1 100644 --- a/target/linux/generic/patches-4.4/046-ubifs-silence-error-output-if-MS_SILENT-is-set.patch +++ b/target/linux/generic/patches-4.4/046-ubifs-silence-error-output-if-MS_SILENT-is-set.patch @@ -18,7 +18,7 @@ Signed-off-by: Richard Weinberger --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c -@@ -2107,8 +2107,9 @@ static struct dentry *ubifs_mount(struct +@@ -2116,8 +2116,9 @@ static struct dentry *ubifs_mount(struct */ ubi = open_ubi(name, UBI_READONLY); if (IS_ERR(ubi)) { diff --git a/target/linux/generic/patches-4.4/048-mtd-spi-nor-backport-SPI_NOR_HAS_LOCK-flag.patch b/target/linux/generic/patches-4.4/048-mtd-spi-nor-backport-SPI_NOR_HAS_LOCK-flag.patch index 69a5432fa7..b8a64b66d6 100644 --- a/target/linux/generic/patches-4.4/048-mtd-spi-nor-backport-SPI_NOR_HAS_LOCK-flag.patch +++ b/target/linux/generic/patches-4.4/048-mtd-spi-nor-backport-SPI_NOR_HAS_LOCK-flag.patch @@ -25,7 +25,7 @@ Tested-by: Ezequiel Garcia }; #define JEDEC_MFR(info) ((info)->id[0]) -@@ -1163,7 +1164,8 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -1169,7 +1170,8 @@ int spi_nor_scan(struct spi_nor *nor, co if (JEDEC_MFR(info) == SNOR_MFR_ATMEL || JEDEC_MFR(info) == SNOR_MFR_INTEL || @@ -35,7 +35,7 @@ Tested-by: Ezequiel Garcia write_enable(nor); write_sr(nor, 0); } -@@ -1179,7 +1181,8 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -1185,7 +1187,8 @@ int spi_nor_scan(struct spi_nor *nor, co mtd->_read = spi_nor_read; /* NOR protection support for STmicro/Micron chips and similar */ diff --git a/target/linux/generic/patches-4.4/052-02-ubifs-Implement-RENAME_WHITEOUT.patch b/target/linux/generic/patches-4.4/052-02-ubifs-Implement-RENAME_WHITEOUT.patch index c2ec904939..6d6ad28e96 100644 --- a/target/linux/generic/patches-4.4/052-02-ubifs-Implement-RENAME_WHITEOUT.patch +++ b/target/linux/generic/patches-4.4/052-02-ubifs-Implement-RENAME_WHITEOUT.patch @@ -244,7 +244,7 @@ Signed-off-by: Richard Weinberger .setxattr = ubifs_setxattr, --- a/fs/ubifs/journal.c +++ b/fs/ubifs/journal.c -@@ -917,14 +917,15 @@ int ubifs_jnl_delete_inode(struct ubifs_ +@@ -922,14 +922,15 @@ int ubifs_jnl_delete_inode(struct ubifs_ * @sync: non-zero if the write-buffer has to be synchronized * * This function implements the re-name operation which may involve writing up @@ -262,7 +262,7 @@ Signed-off-by: Richard Weinberger { void *p; union ubifs_key key; -@@ -980,13 +981,19 @@ int ubifs_jnl_rename(struct ubifs_info * +@@ -985,13 +986,19 @@ int ubifs_jnl_rename(struct ubifs_info * zero_dent_node_unused(dent); ubifs_prep_grp_node(c, dent, dlen1, 0); @@ -285,7 +285,7 @@ Signed-off-by: Richard Weinberger dent2->nlen = cpu_to_le16(old_dentry->d_name.len); memcpy(dent2->name, old_dentry->d_name.name, old_dentry->d_name.len); dent2->name[old_dentry->d_name.len] = '\0'; -@@ -1035,16 +1042,26 @@ int ubifs_jnl_rename(struct ubifs_info * +@@ -1040,16 +1047,26 @@ int ubifs_jnl_rename(struct ubifs_info * if (err) goto out_ro; diff --git a/target/linux/generic/patches-4.4/052-03-ubifs-Implement-RENAME_EXCHANGE.patch b/target/linux/generic/patches-4.4/052-03-ubifs-Implement-RENAME_EXCHANGE.patch index 1830cd0eeb..97e0f66f24 100644 --- a/target/linux/generic/patches-4.4/052-03-ubifs-Implement-RENAME_EXCHANGE.patch +++ b/target/linux/generic/patches-4.4/052-03-ubifs-Implement-RENAME_EXCHANGE.patch @@ -104,7 +104,7 @@ Signed-off-by: Richard Weinberger .setxattr = ubifs_setxattr, --- a/fs/ubifs/journal.c +++ b/fs/ubifs/journal.c -@@ -908,6 +908,147 @@ int ubifs_jnl_delete_inode(struct ubifs_ +@@ -913,6 +913,147 @@ int ubifs_jnl_delete_inode(struct ubifs_ } /** diff --git a/target/linux/generic/patches-4.4/052-04-ubifs-Use-move-variable-in-ubifs_rename.patch b/target/linux/generic/patches-4.4/052-04-ubifs-Use-move-variable-in-ubifs_rename.patch index 81129359d3..389af40b27 100644 --- a/target/linux/generic/patches-4.4/052-04-ubifs-Use-move-variable-in-ubifs_rename.patch +++ b/target/linux/generic/patches-4.4/052-04-ubifs-Use-move-variable-in-ubifs_rename.patch @@ -10,7 +10,7 @@ Signed-off-by: Richard Weinberger --- a/fs/ubifs/journal.c +++ b/fs/ubifs/journal.c -@@ -1100,7 +1100,7 @@ int ubifs_jnl_rename(struct ubifs_info * +@@ -1105,7 +1105,7 @@ int ubifs_jnl_rename(struct ubifs_info * aligned_dlen1 = ALIGN(dlen1, 8); aligned_dlen2 = ALIGN(dlen2, 8); len = aligned_dlen1 + aligned_dlen2 + ALIGN(ilen, 8) + ALIGN(plen, 8); @@ -19,7 +19,7 @@ Signed-off-by: Richard Weinberger len += plen; dent = kmalloc(len, GFP_NOFS); if (!dent) -@@ -1216,7 +1216,7 @@ int ubifs_jnl_rename(struct ubifs_info * +@@ -1221,7 +1221,7 @@ int ubifs_jnl_rename(struct ubifs_info * if (err) goto out_ro; diff --git a/target/linux/generic/patches-4.4/082-0001-USB-core-let-USB-device-know-device-node.patch b/target/linux/generic/patches-4.4/082-0001-USB-core-let-USB-device-know-device-node.patch index 901cdf7e83..1c8787907f 100644 --- a/target/linux/generic/patches-4.4/082-0001-USB-core-let-USB-device-know-device-node.patch +++ b/target/linux/generic/patches-4.4/082-0001-USB-core-let-USB-device-know-device-node.patch @@ -131,7 +131,7 @@ Signed-off-by: Greg Kroah-Hartman #include #include -@@ -469,6 +470,7 @@ struct usb_device *usb_alloc_dev(struct +@@ -471,6 +472,7 @@ struct usb_device *usb_alloc_dev(struct dev->route = 0; dev->dev.parent = bus->controller; @@ -139,7 +139,7 @@ Signed-off-by: Greg Kroah-Hartman dev_set_name(&dev->dev, "usb%d", bus->busnum); root_hub = 1; } else { -@@ -493,6 +495,14 @@ struct usb_device *usb_alloc_dev(struct +@@ -495,6 +497,14 @@ struct usb_device *usb_alloc_dev(struct dev->dev.parent = &parent->dev; dev_set_name(&dev->dev, "%d-%s", bus->busnum, dev->devpath); diff --git a/target/linux/generic/patches-4.4/082-0002-usb-core-usb_alloc_dev-fix-setting-of-portnum.patch b/target/linux/generic/patches-4.4/082-0002-usb-core-usb_alloc_dev-fix-setting-of-portnum.patch index 15cf4cae56..bbb64e65be 100644 --- a/target/linux/generic/patches-4.4/082-0002-usb-core-usb_alloc_dev-fix-setting-of-portnum.patch +++ b/target/linux/generic/patches-4.4/082-0002-usb-core-usb_alloc_dev-fix-setting-of-portnum.patch @@ -84,7 +84,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c -@@ -423,6 +423,7 @@ struct usb_device *usb_alloc_dev(struct +@@ -425,6 +425,7 @@ struct usb_device *usb_alloc_dev(struct struct usb_device *dev; struct usb_hcd *usb_hcd = bus_to_hcd(bus); unsigned root_hub = 0; @@ -92,7 +92,7 @@ Signed-off-by: Greg Kroah-Hartman dev = kzalloc(sizeof(*dev), GFP_KERNEL); if (!dev) -@@ -497,11 +498,11 @@ struct usb_device *usb_alloc_dev(struct +@@ -499,11 +500,11 @@ struct usb_device *usb_alloc_dev(struct if (!parent->parent) { /* device under root hub's port */ diff --git a/target/linux/generic/patches-4.4/085-0004-leds-core-add-OF-variants-of-LED-registering-functio.patch b/target/linux/generic/patches-4.4/085-0004-leds-core-add-OF-variants-of-LED-registering-functio.patch index e02984041a..18da7f951a 100644 --- a/target/linux/generic/patches-4.4/085-0004-leds-core-add-OF-variants-of-LED-registering-functio.patch +++ b/target/linux/generic/patches-4.4/085-0004-leds-core-add-OF-variants-of-LED-registering-functio.patch @@ -58,7 +58,7 @@ Signed-off-by: Jacek Anaszewski /** * led_classdev_unregister - unregisters a object of led_properties class. -@@ -269,12 +273,14 @@ static void devm_led_classdev_release(st +@@ -270,12 +274,14 @@ static void devm_led_classdev_release(st } /** @@ -77,7 +77,7 @@ Signed-off-by: Jacek Anaszewski { struct led_classdev **dr; int rc; -@@ -283,7 +289,7 @@ int devm_led_classdev_register(struct de +@@ -284,7 +290,7 @@ int devm_led_classdev_register(struct de if (!dr) return -ENOMEM; @@ -86,7 +86,7 @@ Signed-off-by: Jacek Anaszewski if (rc) { devres_free(dr); return rc; -@@ -294,7 +300,7 @@ int devm_led_classdev_register(struct de +@@ -295,7 +301,7 @@ int devm_led_classdev_register(struct de return 0; } diff --git a/target/linux/generic/patches-4.4/086-0001-thermal-of-thermal-Add-devm-version-of-thermal_zone_.patch b/target/linux/generic/patches-4.4/086-0001-thermal-of-thermal-Add-devm-version-of-thermal_zone_.patch index b551bac69d..4eb5711373 100644 --- a/target/linux/generic/patches-4.4/086-0001-thermal-of-thermal-Add-devm-version-of-thermal_zone_.patch +++ b/target/linux/generic/patches-4.4/086-0001-thermal-of-thermal-Add-devm-version-of-thermal_zone_.patch @@ -19,7 +19,7 @@ Signed-off-by: Eduardo Valentin --- a/drivers/thermal/of-thermal.c +++ b/drivers/thermal/of-thermal.c -@@ -559,6 +559,87 @@ void thermal_zone_of_sensor_unregister(s +@@ -562,6 +562,87 @@ void thermal_zone_of_sensor_unregister(s } EXPORT_SYMBOL_GPL(thermal_zone_of_sensor_unregister); diff --git a/target/linux/generic/patches-4.4/090-MIPS-c-r4k-Use-IPI-calls-for-CM-indexed-cache-ops.patch b/target/linux/generic/patches-4.4/090-MIPS-c-r4k-Use-IPI-calls-for-CM-indexed-cache-ops.patch index 0c1c0a4509..e45e5b884f 100644 --- a/target/linux/generic/patches-4.4/090-MIPS-c-r4k-Use-IPI-calls-for-CM-indexed-cache-ops.patch +++ b/target/linux/generic/patches-4.4/090-MIPS-c-r4k-Use-IPI-calls-for-CM-indexed-cache-ops.patch @@ -256,7 +256,7 @@ Cc: linux-mips@linux-mips.org instruction_hazard(); } -@@ -823,7 +901,12 @@ static void local_r4k_flush_cache_sigtra +@@ -825,7 +903,12 @@ static void local_r4k_flush_cache_sigtra static void r4k_flush_cache_sigtramp(unsigned long addr) { @@ -270,7 +270,7 @@ Cc: linux-mips@linux-mips.org } static void r4k_flush_icache_all(void) -@@ -837,6 +920,15 @@ struct flush_kernel_vmap_range_args { +@@ -839,6 +922,15 @@ struct flush_kernel_vmap_range_args { int size; }; @@ -286,7 +286,7 @@ Cc: linux-mips@linux-mips.org static inline void local_r4k_flush_kernel_vmap_range(void *args) { struct flush_kernel_vmap_range_args *vmra = args; -@@ -847,12 +939,8 @@ static inline void local_r4k_flush_kerne +@@ -849,12 +941,8 @@ static inline void local_r4k_flush_kerne * Aliases only affect the primary caches so don't bother with * S-caches or T-caches. */ @@ -301,7 +301,7 @@ Cc: linux-mips@linux-mips.org } static void r4k_flush_kernel_vmap_range(unsigned long vaddr, int size) -@@ -862,7 +950,12 @@ static void r4k_flush_kernel_vmap_range( +@@ -864,7 +952,12 @@ static void r4k_flush_kernel_vmap_range( args.vaddr = (unsigned long) vaddr; args.size = size; diff --git a/target/linux/generic/patches-4.4/160-usb-gadget-udc-net2280-add-usb2380-support.patch b/target/linux/generic/patches-4.4/160-usb-gadget-udc-net2280-add-usb2380-support.patch index 94f78102b7..0ad684fcea 100644 --- a/target/linux/generic/patches-4.4/160-usb-gadget-udc-net2280-add-usb2380-support.patch +++ b/target/linux/generic/patches-4.4/160-usb-gadget-udc-net2280-add-usb2380-support.patch @@ -112,7 +112,7 @@ Signed-off-by: Felipe Balbi !list_empty(&ep->queue) && ep->td_dma) restart_dma(ep); ep->wedged = 0; -@@ -2394,7 +2394,7 @@ static int net2280_start(struct usb_gadg +@@ -2397,7 +2397,7 @@ static int net2280_start(struct usb_gadg */ net2280_led_active(dev, 1); @@ -121,7 +121,7 @@ Signed-off-by: Felipe Balbi defect7374_enable_data_eps_zero(dev); ep0_start(dev); -@@ -3060,7 +3060,7 @@ static void handle_stat0_irqs(struct net +@@ -3066,7 +3066,7 @@ static void handle_stat0_irqs(struct net } ep->stopped = 0; dev->protocol_stall = 0; @@ -130,7 +130,7 @@ Signed-off-by: Felipe Balbi if (ep->dev->quirks & PLX_2280) tmp = BIT(FIFO_OVERFLOW) | BIT(FIFO_UNDERFLOW); -@@ -3087,7 +3087,7 @@ static void handle_stat0_irqs(struct net +@@ -3093,7 +3093,7 @@ static void handle_stat0_irqs(struct net cpu_to_le32s(&u.raw[0]); cpu_to_le32s(&u.raw[1]); @@ -139,7 +139,7 @@ Signed-off-by: Felipe Balbi defect7374_workaround(dev, u.r); tmp = 0; -@@ -3170,7 +3170,7 @@ static void handle_stat0_irqs(struct net +@@ -3176,7 +3176,7 @@ static void handle_stat0_irqs(struct net } else { ep_vdbg(dev, "%s clear halt\n", e->ep.name); clear_halt(e); @@ -148,7 +148,7 @@ Signed-off-by: Felipe Balbi !list_empty(&e->queue) && e->td_dma) restart_dma(e); } -@@ -3192,7 +3192,7 @@ static void handle_stat0_irqs(struct net +@@ -3198,7 +3198,7 @@ static void handle_stat0_irqs(struct net if (e->ep.name == ep0name) goto do_stall; set_halt(e); @@ -157,7 +157,7 @@ Signed-off-by: Felipe Balbi abort_dma(e); allow_status(ep); ep_vdbg(dev, "%s set halt\n", ep->ep.name); -@@ -3231,7 +3231,7 @@ do_stall: +@@ -3237,7 +3237,7 @@ do_stall: #undef w_length next_endpoints: @@ -166,7 +166,7 @@ Signed-off-by: Felipe Balbi u32 mask = (BIT(ENDPOINT_0_INTERRUPT) | USB3380_IRQSTAT0_EP_INTR_MASK_IN | USB3380_IRQSTAT0_EP_INTR_MASK_OUT); -@@ -3392,7 +3392,7 @@ static void handle_stat1_irqs(struct net +@@ -3404,7 +3404,7 @@ __acquires(dev->lock) writel(tmp, &dma->dmastat); /* dma sync*/ @@ -175,7 +175,7 @@ Signed-off-by: Felipe Balbi u32 r_dmacount = readl(&dma->dmacount); if (!ep->is_in && (r_dmacount & 0x00FFFFFF) && (tmp & BIT(DMA_TRANSACTION_DONE_INTERRUPT))) -@@ -3461,7 +3461,7 @@ static irqreturn_t net2280_irq(int irq, +@@ -3473,7 +3473,7 @@ static irqreturn_t net2280_irq(int irq, /* control requests and PIO */ handle_stat0_irqs(dev, readl(&dev->regs->irqstat0)); @@ -184,7 +184,7 @@ Signed-off-by: Felipe Balbi /* re-enable interrupt to trigger any possible new interrupt */ u32 pciirqenb1 = readl(&dev->regs->pciirqenb1); writel(pciirqenb1 & 0x7FFFFFFF, &dev->regs->pciirqenb1); -@@ -3506,7 +3506,7 @@ static void net2280_remove(struct pci_de +@@ -3518,7 +3518,7 @@ static void net2280_remove(struct pci_de } if (dev->got_irq) free_irq(pdev->irq, dev); @@ -193,7 +193,7 @@ Signed-off-by: Felipe Balbi pci_disable_msi(pdev); if (dev->regs) iounmap(dev->regs); -@@ -3586,7 +3586,7 @@ static int net2280_probe(struct pci_dev +@@ -3598,7 +3598,7 @@ static int net2280_probe(struct pci_dev dev->dep = (struct net2280_dep_regs __iomem *) (base + 0x0200); dev->epregs = (struct net2280_ep_regs __iomem *) (base + 0x0300); @@ -202,7 +202,7 @@ Signed-off-by: Felipe Balbi u32 fsmvalue; u32 usbstat; dev->usb_ext = (struct usb338x_usb_ext_regs __iomem *) -@@ -3630,7 +3630,7 @@ static int net2280_probe(struct pci_dev +@@ -3642,7 +3642,7 @@ static int net2280_probe(struct pci_dev goto done; } @@ -211,7 +211,7 @@ Signed-off-by: Felipe Balbi if (pci_enable_msi(pdev)) ep_err(dev, "Failed to enable MSI mode\n"); -@@ -3748,10 +3748,19 @@ static const struct pci_device_id pci_id +@@ -3760,10 +3760,19 @@ static const struct pci_device_id pci_id .class = ((PCI_CLASS_SERIAL_USB << 8) | 0xfe), .class_mask = ~0, .vendor = PCI_VENDOR_ID_PLX, @@ -232,7 +232,7 @@ Signed-off-by: Felipe Balbi }, { .class = ((PCI_CLASS_SERIAL_USB << 8) | 0xfe), -@@ -3760,7 +3769,7 @@ static const struct pci_device_id pci_id +@@ -3772,7 +3781,7 @@ static const struct pci_device_id pci_id .device = 0x3382, .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 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 b4235a11d4..d9d24263f7 100644 --- a/target/linux/generic/patches-4.4/201-extra_optimization.patch +++ b/target/linux/generic/patches-4.4/201-extra_optimization.patch @@ -1,11 +1,11 @@ --- a/Makefile +++ b/Makefile -@@ -626,12 +626,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni - KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context) +@@ -639,12 +639,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni + KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias) ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE --KBUILD_CFLAGS += -Os -+KBUILD_CFLAGS += -Os $(EXTRA_OPTIMIZATION) +-KBUILD_CFLAGS += $(call cc-option,-Oz,-Os) ++KBUILD_CFLAGS += $(call cc-option,-Oz,-Os) $(EXTRA_OPTIMIZATION) else ifdef CONFIG_PROFILE_ALL_BRANCHES -KBUILD_CFLAGS += -O2 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 1aabf3e722..b46600537f 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 -@@ -405,7 +405,7 @@ KBUILD_CFLAGS_KERNEL := +@@ -400,7 +400,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/304-mips_disable_fpu.patch b/target/linux/generic/patches-4.4/304-mips_disable_fpu.patch index a08564dcea..60b576c1a4 100644 --- a/target/linux/generic/patches-4.4/304-mips_disable_fpu.patch +++ b/target/linux/generic/patches-4.4/304-mips_disable_fpu.patch @@ -86,21 +86,21 @@ v2: incorporated changes suggested by Jonas Gorski extern int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx, int has_fpu, void *__user *fault_addr); -+#else /* no CONFIG_MIPS_FPU_EMULATOR */ ++#else /* no CONFIG_MIPS_FPU_EMULATOR */ +static inline int do_dsemulret(struct pt_regs *xcp) +{ -+ return 0; /* 0 means error, should never get here anyway */ ++ return 0; /* 0 means error, should never get here anyway */ +} + +static inline int fpu_emulator_cop1Handler(struct pt_regs *xcp, -+ struct mips_fpu_struct *ctx, int has_fpu, -+ void *__user *fault_addr) ++ struct mips_fpu_struct *ctx, int has_fpu, ++ void *__user *fault_addr) +{ + *fault_addr = NULL; -+ return SIGILL; /* we don't speak MIPS FPU */ ++ return SIGILL; /* we don't speak MIPS FPU */ +} -+#endif /* CONFIG_MIPS_FPU_EMULATOR */ ++#endif /* CONFIG_MIPS_FPU_EMULATOR */ + + void force_fcr31_sig(unsigned long fcr31, void __user *fault_addr, + struct task_struct *tsk); int process_fpemu_return(int sig, void __user *fault_addr, - unsigned long fcr31); - int mm_isBranchInstr(struct pt_regs *regs, struct mm_decoded_insn dec_insn, diff --git a/target/linux/generic/patches-4.4/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch b/target/linux/generic/patches-4.4/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch index a69d197e62..3a09572bde 100644 --- a/target/linux/generic/patches-4.4/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch +++ b/target/linux/generic/patches-4.4/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch @@ -210,7 +210,7 @@ Signed-off-by: Yousong Zhou /* * The generic kexec code builds a page list with physical -@@ -98,15 +210,16 @@ machine_kexec(struct kimage *image) +@@ -101,15 +213,16 @@ machine_kexec(struct kimage *image) /* * we do not want to be bothered. */ diff --git a/target/linux/generic/patches-4.4/475-mtd-spi-nor-add-macronix-mx25u25635f.patch b/target/linux/generic/patches-4.4/475-mtd-spi-nor-add-macronix-mx25u25635f.patch index d868a7da25..c21d19bf54 100644 --- a/target/linux/generic/patches-4.4/475-mtd-spi-nor-add-macronix-mx25u25635f.patch +++ b/target/linux/generic/patches-4.4/475-mtd-spi-nor-add-macronix-mx25u25635f.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -725,6 +725,7 @@ static const struct flash_info spi_nor_i +@@ -731,6 +731,7 @@ static const struct flash_info spi_nor_i { "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) }, { "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) }, { "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, 0) }, diff --git a/target/linux/generic/patches-4.4/477-mtd-add-spi-nor-add-mx25u3235f.patch b/target/linux/generic/patches-4.4/477-mtd-add-spi-nor-add-mx25u3235f.patch index fa1ab3fa06..1be68e1b83 100644 --- a/target/linux/generic/patches-4.4/477-mtd-add-spi-nor-add-mx25u3235f.patch +++ b/target/linux/generic/patches-4.4/477-mtd-add-spi-nor-add-mx25u3235f.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -722,6 +722,7 @@ static const struct flash_info spi_nor_i +@@ -728,6 +728,7 @@ static const struct flash_info spi_nor_i { "mx25l3205d", INFO(0xc22016, 0, 64 * 1024, 64, SECT_4K) }, { "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64, SECT_4K) }, { "mx25l6405d", INFO(0xc22017, 0, 64 * 1024, 128, SECT_4K) }, diff --git a/target/linux/generic/patches-4.4/530-jffs2_make_lzma_available.patch b/target/linux/generic/patches-4.4/530-jffs2_make_lzma_available.patch index b75dd0f9ff..bde7a986c7 100644 --- a/target/linux/generic/patches-4.4/530-jffs2_make_lzma_available.patch +++ b/target/linux/generic/patches-4.4/530-jffs2_make_lzma_available.patch @@ -206,7 +206,7 @@ +} --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c -@@ -375,14 +375,41 @@ static int __init init_jffs2_fs(void) +@@ -373,14 +373,41 @@ static int __init init_jffs2_fs(void) BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68); BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32); @@ -1081,7 +1081,7 @@ ifdef CONFIG_FUNCTION_TRACER ORIG_CFLAGS := $(KBUILD_CFLAGS) KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) -@@ -98,6 +108,8 @@ obj-$(CONFIG_LZ4HC_COMPRESS) += lz4/ +@@ -96,6 +106,8 @@ obj-$(CONFIG_LZ4HC_COMPRESS) += lz4/ obj-$(CONFIG_LZ4_DECOMPRESS) += lz4/ obj-$(CONFIG_XZ_DEC) += xz/ obj-$(CONFIG_RAID6_PQ) += raid6/ diff --git a/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch b/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch index f1c7ab1d9c..ca23150d7d 100644 --- a/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch +++ b/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch @@ -172,7 +172,7 @@ Implement optinal multicast->unicast conversion for igmp snooping if (err) break; } -@@ -1432,7 +1458,8 @@ br_multicast_leave_group(struct net_brid +@@ -1439,7 +1465,8 @@ br_multicast_leave_group(struct net_brid struct net_bridge_port *port, struct br_ip *group, struct bridge_mcast_other_query *other_query, @@ -182,7 +182,7 @@ Implement optinal multicast->unicast conversion for igmp snooping { struct net_bridge_mdb_htable *mdb; struct net_bridge_mdb_entry *mp; -@@ -1456,7 +1483,7 @@ br_multicast_leave_group(struct net_brid +@@ -1463,7 +1490,7 @@ br_multicast_leave_group(struct net_brid for (pp = &mp->ports; (p = mlock_dereference(*pp, br)) != NULL; pp = &p->next) { @@ -191,7 +191,7 @@ Implement optinal multicast->unicast conversion for igmp snooping continue; rcu_assign_pointer(*pp, p->next); -@@ -1519,7 +1546,7 @@ br_multicast_leave_group(struct net_brid +@@ -1526,7 +1553,7 @@ br_multicast_leave_group(struct net_brid for (p = mlock_dereference(mp->ports, br); p != NULL; p = mlock_dereference(p->next, br)) { @@ -200,7 +200,7 @@ Implement optinal multicast->unicast conversion for igmp snooping continue; if (!hlist_unhashed(&p->mglist) && -@@ -1537,8 +1564,8 @@ out: +@@ -1544,8 +1571,8 @@ out: static void br_ip4_multicast_leave_group(struct net_bridge *br, struct net_bridge_port *port, @@ -211,7 +211,7 @@ Implement optinal multicast->unicast conversion for igmp snooping { struct br_ip br_group; struct bridge_mcast_own_query *own_query; -@@ -1553,14 +1580,14 @@ static void br_ip4_multicast_leave_group +@@ -1560,14 +1587,14 @@ static void br_ip4_multicast_leave_group br_group.vid = vid; br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query, @@ -228,7 +228,7 @@ Implement optinal multicast->unicast conversion for igmp snooping { struct br_ip br_group; struct bridge_mcast_own_query *own_query; -@@ -1575,7 +1602,7 @@ static void br_ip6_multicast_leave_group +@@ -1582,7 +1609,7 @@ static void br_ip6_multicast_leave_group br_group.vid = vid; br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query, @@ -237,7 +237,7 @@ Implement optinal multicast->unicast conversion for igmp snooping } #endif -@@ -1584,6 +1611,7 @@ static int br_multicast_ipv4_rcv(struct +@@ -1591,6 +1618,7 @@ static int br_multicast_ipv4_rcv(struct struct sk_buff *skb, u16 vid) { @@ -245,7 +245,7 @@ Implement optinal multicast->unicast conversion for igmp snooping struct sk_buff *skb_trimmed = NULL; struct igmphdr *ih; int err; -@@ -1600,12 +1628,13 @@ static int br_multicast_ipv4_rcv(struct +@@ -1607,12 +1635,13 @@ static int br_multicast_ipv4_rcv(struct BR_INPUT_SKB_CB(skb)->igmp = 1; ih = igmp_hdr(skb); @@ -260,7 +260,7 @@ Implement optinal multicast->unicast conversion for igmp snooping break; case IGMPV3_HOST_MEMBERSHIP_REPORT: err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid); -@@ -1614,7 +1643,7 @@ static int br_multicast_ipv4_rcv(struct +@@ -1621,7 +1650,7 @@ static int br_multicast_ipv4_rcv(struct err = br_ip4_multicast_query(br, port, skb_trimmed, vid); break; case IGMP_HOST_LEAVE_MESSAGE: @@ -269,7 +269,7 @@ Implement optinal multicast->unicast conversion for igmp snooping break; } -@@ -1630,6 +1659,7 @@ static int br_multicast_ipv6_rcv(struct +@@ -1637,6 +1666,7 @@ static int br_multicast_ipv6_rcv(struct struct sk_buff *skb, u16 vid) { @@ -277,7 +277,7 @@ Implement optinal multicast->unicast conversion for igmp snooping struct sk_buff *skb_trimmed = NULL; struct mld_msg *mld; int err; -@@ -1649,8 +1679,9 @@ static int br_multicast_ipv6_rcv(struct +@@ -1656,8 +1686,9 @@ static int br_multicast_ipv6_rcv(struct switch (mld->mld_type) { case ICMPV6_MGM_REPORT: @@ -288,7 +288,7 @@ Implement optinal multicast->unicast conversion for igmp snooping break; case ICMPV6_MLD2_REPORT: err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid); -@@ -1659,7 +1690,8 @@ static int br_multicast_ipv6_rcv(struct +@@ -1666,7 +1697,8 @@ static int br_multicast_ipv6_rcv(struct err = br_ip6_multicast_query(br, port, skb_trimmed, vid); break; case ICMPV6_MGM_REDUCTION: 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 fe599798ce..9350503415 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 @@ -147,7 +147,7 @@ Signed-off-by: Steven Barth } return &ip6n->tnls[prio][h]; } -@@ -369,6 +378,12 @@ ip6_tnl_dev_uninit(struct net_device *de +@@ -372,6 +381,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 -@@ -765,6 +780,108 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t, +@@ -768,6 +783,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 -@@ -810,6 +927,26 @@ static int ip6_tnl_rcv(struct sk_buff *s +@@ -813,6 +930,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,15 +296,15 @@ Signed-off-by: Steven Barth __skb_tunnel_rx(skb, t->dev, t->net); -@@ -1145,6 +1282,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str +@@ -1153,6 +1290,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str __u32 mtu; u8 tproto; int err; + struct __ip6_tnl_fmr *fmr; - tproto = ACCESS_ONCE(t->parms.proto); - if ((tproto != IPPROTO_IPV6 && tproto != 0) || -@@ -1175,6 +1313,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str + if (unlikely(!pskb_may_pull(skb, sizeof(*ipv6h)))) + return -1; +@@ -1187,6 +1325,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) -@@ -1289,6 +1439,14 @@ ip6_tnl_change(struct ip6_tnl *t, const +@@ -1301,6 +1451,14 @@ ip6_tnl_change(struct ip6_tnl *t, const t->parms.flowinfo = p->flowinfo; t->parms.link = p->link; t->parms.proto = p->proto; @@ -338,7 +338,7 @@ Signed-off-by: Steven Barth dst_cache_reset(&t->dst_cache); ip6_tnl_link_config(t); return 0; -@@ -1327,6 +1485,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ +@@ -1339,6 +1497,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)); } -@@ -1622,6 +1781,15 @@ static int ip6_tnl_validate(struct nlatt +@@ -1634,6 +1793,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) { -@@ -1653,6 +1821,46 @@ static void ip6_tnl_netlink_parms(struct +@@ -1665,6 +1833,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, -@@ -1705,6 +1913,12 @@ static void ip6_tnl_dellink(struct net_d +@@ -1717,6 +1925,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) + -@@ -1722,6 +1936,24 @@ static size_t ip6_tnl_get_size(const str +@@ -1734,6 +1948,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; } -@@ -1729,6 +1961,9 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -1741,6 +1973,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) || -@@ -1737,8 +1972,27 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -1749,8 +1984,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: -@@ -1762,6 +2016,7 @@ static const struct nla_policy ip6_tnl_p +@@ -1774,6 +2028,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 c921a079ae..1d33e421ff 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), -@@ -1899,6 +1916,11 @@ static struct rt6_info *ip6_route_info_c +@@ -1906,6 +1923,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: -@@ -2502,6 +2524,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -2509,6 +2531,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. */ -@@ -2744,7 +2777,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -2753,7 +2786,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) -@@ -3097,6 +3131,9 @@ static int rt6_fill_node(struct net *net +@@ -3106,6 +3140,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; -@@ -3376,6 +3413,8 @@ static int ip6_route_dev_notify(struct n +@@ -3385,6 +3422,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,15 @@ 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 -@@ -3602,6 +3641,17 @@ static int __net_init ip6_route_net_init +@@ -3396,6 +3435,7 @@ static int ip6_route_dev_notify(struct n + in6_dev_put(net->ipv6.ip6_null_entry->rt6i_idev); + #ifdef CONFIG_IPV6_MULTIPLE_TABLES + in6_dev_put(net->ipv6.ip6_prohibit_entry->rt6i_idev); ++ in6_dev_put(net->ipv6.ip6_policy_failed_entry->rt6i_idev); + in6_dev_put(net->ipv6.ip6_blk_hole_entry->rt6i_idev); + #endif + } +@@ -3611,6 +3651,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 +228,7 @@ Signed-off-by: Jonas Gorski #endif net->ipv6.sysctl.flush_delay = 0; -@@ -3620,6 +3670,8 @@ out: +@@ -3629,6 +3680,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -229,7 +237,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -3637,6 +3689,7 @@ static void __net_exit ip6_route_net_exi +@@ -3646,6 +3699,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 +245,7 @@ Signed-off-by: Jonas Gorski #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -3710,6 +3763,9 @@ void __init ip6_route_init_special_entri +@@ -3719,6 +3773,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/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 7c96f4f171..0734bfc5af 100644 --- a/target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4271,6 +4271,9 @@ static enum gro_result dev_gro_receive(s +@@ -4300,6 +4300,9 @@ static enum gro_result dev_gro_receive(s enum gro_result ret; int grow; @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau if (!(skb->dev->features & NETIF_F_GRO)) goto normal; -@@ -5437,6 +5440,48 @@ static void __netdev_adjacent_dev_unlink +@@ -5470,6 +5473,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *private) -@@ -5508,6 +5553,7 @@ static int __netdev_upper_dev_link(struc +@@ -5541,6 +5586,7 @@ static int __netdev_upper_dev_link(struc goto rollback_lower_mesh; } @@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); return 0; -@@ -5634,6 +5680,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -5667,6 +5713,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); @@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); } -@@ -6174,6 +6221,7 @@ int dev_set_mac_address(struct net_devic +@@ -6209,6 +6256,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; @@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -642,7 +642,8 @@ struct sk_buff { - __u8 ipvs_property:1; + __u8 inner_protocol_type:1; __u8 remcsum_offload:1; - /* 3 or 5 bit hole */ diff --git a/target/linux/generic/patches-4.4/721-phy_packets.patch b/target/linux/generic/patches-4.4/721-phy_packets.patch index 716c1a0273..f17c7bd556 100644 --- a/target/linux/generic/patches-4.4/721-phy_packets.patch +++ b/target/linux/generic/patches-4.4/721-phy_packets.patch @@ -52,7 +52,7 @@ /** * pskb_trim_unique - remove end from a paged unique (not cloned) buffer * @skb: buffer to alter -@@ -2312,16 +2316,6 @@ static inline struct sk_buff *dev_alloc_ +@@ -2314,16 +2318,6 @@ static inline struct sk_buff *dev_alloc_ } @@ -86,7 +86,7 @@ help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -2747,10 +2747,20 @@ static int xmit_one(struct sk_buff *skb, +@@ -2776,10 +2776,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/patches-4.4/810-pci_disable_common_quirks.patch b/target/linux/generic/patches-4.4/810-pci_disable_common_quirks.patch index e5c9043065..8e9b6e857c 100644 --- a/target/linux/generic/patches-4.4/810-pci_disable_common_quirks.patch +++ b/target/linux/generic/patches-4.4/810-pci_disable_common_quirks.patch @@ -40,7 +40,7 @@ /* * Some BIOS implementations leave the Intel GPU interrupts enabled, * even though no one is handling them (f.e. i915 driver is never loaded). -@@ -3065,6 +3069,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN +@@ -3069,6 +3073,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); diff --git a/target/linux/generic/patches-4.4/902-debloat_proc.patch b/target/linux/generic/patches-4.4/902-debloat_proc.patch index 931f43fce4..d367577cbf 100644 --- a/target/linux/generic/patches-4.4/902-debloat_proc.patch +++ b/target/linux/generic/patches-4.4/902-debloat_proc.patch @@ -111,7 +111,7 @@ if (!root_irq_dir) --- a/kernel/time/timer_list.c +++ b/kernel/time/timer_list.c -@@ -393,6 +393,8 @@ static int __init init_timer_list_procfs +@@ -399,6 +399,8 @@ static int __init init_timer_list_procfs { struct proc_dir_entry *pe; @@ -122,7 +122,7 @@ return -ENOMEM; --- a/mm/vmalloc.c +++ b/mm/vmalloc.c -@@ -2684,6 +2684,8 @@ static const struct file_operations proc +@@ -2685,6 +2685,8 @@ static const struct file_operations proc static int __init proc_vmalloc_init(void) { @@ -133,7 +133,7 @@ } --- a/mm/vmstat.c +++ b/mm/vmstat.c -@@ -1558,10 +1558,12 @@ static int __init setup_vmstat(void) +@@ -1560,10 +1560,12 @@ static int __init setup_vmstat(void) cpu_notifier_register_done(); #endif #ifdef CONFIG_PROC_FS @@ -239,7 +239,7 @@ --- a/net/ipv4/route.c +++ b/net/ipv4/route.c -@@ -420,6 +420,9 @@ static struct pernet_operations ip_rt_pr +@@ -423,6 +423,9 @@ static struct pernet_operations ip_rt_pr static int __init ip_rt_proc_init(void) {