From: RISCi_ATOM Date: Mon, 22 Apr 2019 16:30:30 +0000 (+0000) Subject: Linux-libre 4.4.178 patch refresh X-Git-Tag: v1.4.8~21 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=852909f990e2e099b9ca17d6352fcdb907b1e125;p=librecmc%2Flibrecmc.git Linux-libre 4.4.178 patch refresh --- diff --git a/target/linux/ar71xx/patches-4.4/310-lib-add-rle-decompression.patch b/target/linux/ar71xx/patches-4.4/310-lib-add-rle-decompression.patch index f5466db176..5b2d1a11de 100644 --- a/target/linux/ar71xx/patches-4.4/310-lib-add-rle-decompression.patch +++ b/target/linux/ar71xx/patches-4.4/310-lib-add-rle-decompression.patch @@ -12,7 +12,7 @@ # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) --- a/lib/Makefile +++ b/lib/Makefile -@@ -110,6 +110,7 @@ obj-$(CONFIG_XZ_DEC) += xz/ +@@ -108,6 +108,7 @@ obj-$(CONFIG_XZ_DEC) += xz/ obj-$(CONFIG_RAID6_PQ) += raid6/ obj-$(CONFIG_LZMA_COMPRESS) += lzma/ obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/ diff --git a/target/linux/ar71xx/patches-4.4/411-mtd-cfi_cmdset_0002-force-word-write.patch b/target/linux/ar71xx/patches-4.4/411-mtd-cfi_cmdset_0002-force-word-write.patch index 39c5478182..aa708e01af 100644 --- a/target/linux/ar71xx/patches-4.4/411-mtd-cfi_cmdset_0002-force-word-write.patch +++ b/target/linux/ar71xx/patches-4.4/411-mtd-cfi_cmdset_0002-force-word-write.patch @@ -7,7 +7,7 @@ -#define FORCE_WORD_WRITE 0 +#define FORCE_WORD_WRITE 1 - #define MAX_WORD_RETRIES 3 + #define MAX_RETRIES 3 @@ -51,7 +51,9 @@ @@ -35,7 +35,7 @@ /* Atmel chips don't use the same PRI format as AMD chips */ static void fixup_convert_atmel_pri(struct mtd_info *mtd) -@@ -1791,6 +1795,7 @@ static int cfi_amdstd_write_words(struct +@@ -1790,6 +1794,7 @@ static int cfi_amdstd_write_words(struct /* * FIXME: interleaved mode not tested, and probably not supported! */ @@ -43,7 +43,7 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, unsigned long adr, const u_char *buf, int len) -@@ -1919,7 +1924,6 @@ static int __xipram do_write_buffer(stru +@@ -1918,7 +1923,6 @@ static int __xipram do_write_buffer(stru return ret; } @@ -51,7 +51,7 @@ static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf) { -@@ -1994,6 +1998,7 @@ static int cfi_amdstd_write_buffers(stru +@@ -1993,6 +1997,7 @@ static int cfi_amdstd_write_buffers(stru return 0; } diff --git a/target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch b/target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch index 880c088c56..d7d76a84af 100644 --- a/target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch +++ b/target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch @@ -1,8 +1,8 @@ --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig -@@ -720,6 +720,11 @@ config SPI_RB4XX_CPLD - SPI driver for the Xilinx CPLD chip present on the - MikroTik RB4xx boards. +@@ -707,6 +707,11 @@ config SPI_TLE62X0 + sysfs interface, with each line presented as a kind of GPIO + exposing both switch control and diagnostic feedback. +config SPI_VSC7385 + tristate "Vitesse VSC7385 ethernet switch driver" @@ -14,7 +14,7 @@ # --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile -@@ -91,6 +91,7 @@ obj-$(CONFIG_SPI_TEGRA20_SLINK) += spi- +@@ -89,6 +89,7 @@ obj-$(CONFIG_SPI_TEGRA20_SLINK) += spi- obj-$(CONFIG_SPI_TLE62X0) += spi-tle62x0.o obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi-topcliff-pch.o obj-$(CONFIG_SPI_TXX9) += spi-txx9.o diff --git a/target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch b/target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch index 811a234a2c..984984d8ab 100644 --- a/target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch +++ b/target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch @@ -10,7 +10,7 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1118,6 +1118,9 @@ config MIPS_MSC +@@ -1121,6 +1121,9 @@ config MIPS_MSC config MIPS_NILE4 bool diff --git a/target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch b/target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch index 0126f6a3b9..9ece104c40 100644 --- a/target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch +++ b/target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch @@ -66,7 +66,7 @@ +#define AR71XX_ETH1_PLL_SHIFT 19 + #define AR724X_PLL_REG_CPU_CONFIG 0x00 - #define AR724X_PLL_REG_PCIE_CONFIG 0x18 + #define AR724X_PLL_REG_PCIE_CONFIG 0x10 @@ -186,6 +205,8 @@ #define AR724X_DDR_DIV_SHIFT 22 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 164000f5c0..3ace99ff7c 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 @@ -241,7 +241,7 @@ */ --- a/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c -@@ -433,7 +433,7 @@ int ipv6_recv_error(struct sock *sk, str +@@ -434,7 +434,7 @@ int ipv6_recv_error(struct sock *sk, str ipv6_iface_scope_id(&sin->sin6_addr, IP6CB(skb)->iif); } else { @@ -250,7 +250,7 @@ &sin->sin6_addr); sin->sin6_scope_id = 0; } -@@ -773,12 +773,12 @@ int ip6_datagram_send_ctl(struct net *ne +@@ -772,12 +772,12 @@ int ip6_datagram_send_ctl(struct net *ne } if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { @@ -359,7 +359,7 @@ for (p = *head; p; p = p->next) { --- a/net/ipv4/route.c +++ b/net/ipv4/route.c -@@ -461,7 +461,7 @@ static struct neighbour *ipv4_neigh_look +@@ -458,7 +458,7 @@ static struct neighbour *ipv4_neigh_look else if (skb) pkey = &ip_hdr(skb)->daddr; @@ -664,7 +664,7 @@ #define IP6_MF 0x0001 #define IP6_OFFSET 0xFFF8 -@@ -418,8 +418,8 @@ static inline void __ipv6_addr_set_half( +@@ -411,8 +411,8 @@ static inline void __ipv6_addr_set_half( } #endif #endif @@ -675,7 +675,7 @@ } static inline void ipv6_addr_set(struct in6_addr *addr, -@@ -478,6 +478,8 @@ static inline bool ipv6_prefix_equal(con +@@ -471,6 +471,8 @@ static inline bool ipv6_prefix_equal(con const __be32 *a1 = addr1->s6_addr32; const __be32 *a2 = addr2->s6_addr32; unsigned int pdw, pbi; @@ -684,7 +684,7 @@ /* check complete u32 in prefix */ pdw = prefixlen >> 5; -@@ -486,7 +488,9 @@ static inline bool ipv6_prefix_equal(con +@@ -479,7 +481,9 @@ static inline bool ipv6_prefix_equal(con /* check incomplete u32 in prefix */ pbi = prefixlen & 0x1f; @@ -695,7 +695,7 @@ return false; return true; -@@ -630,13 +634,13 @@ static inline void ipv6_addr_set_v4mappe +@@ -608,13 +612,13 @@ static inline void ipv6_addr_set_v4mappe */ static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen) { @@ -711,7 +711,7 @@ if (xb) return i * 32 + 31 - __fls(ntohl(xb)); } -@@ -805,17 +809,18 @@ static inline int ip6_default_np_autolab +@@ -783,17 +787,18 @@ static inline int ip6_default_np_autolab static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, __be32 flowlabel) { @@ -814,7 +814,7 @@ static struct fib6_node *node_alloc(void) --- a/net/netfilter/nf_conntrack_proto_tcp.c +++ b/net/netfilter/nf_conntrack_proto_tcp.c -@@ -456,7 +456,7 @@ static void tcp_sack(const struct sk_buf +@@ -458,7 +458,7 @@ static void tcp_sack(const struct sk_buf /* Fast path for timestamp-only option */ if (length == TCPOLEN_TSTAMP_ALIGNED diff --git a/target/linux/ar71xx/patches-4.4/912-ar300m-add-FW-PM-spinand.patch b/target/linux/ar71xx/patches-4.4/912-ar300m-add-FW-PM-spinand.patch index 1b34104d31..a28dcfbcaf 100644 --- a/target/linux/ar71xx/patches-4.4/912-ar300m-add-FW-PM-spinand.patch +++ b/target/linux/ar71xx/patches-4.4/912-ar300m-add-FW-PM-spinand.patch @@ -10,7 +10,7 @@ cmd.n_dummy = 0; cmd.n_rx = len; cmd.rx_buf = rbuf; -@@ -776,9 +779,9 @@ static void ath79_spinand_cmdfunc(struct +@@ -775,9 +778,9 @@ static void ath79_spinand_cmdfunc(struct state->buf); break; case NAND_CMD_READOOB: @@ -23,7 +23,7 @@ break; case NAND_CMD_RNDOUT: state->buf_ptr = column; -@@ -1005,6 +1008,21 @@ static struct ath79_spinand_priv ath79_s +@@ -1004,6 +1007,21 @@ static struct ath79_spinand_priv ath79_s 0x07, /* ecc error code */ SZ_512, /* ecc size */ 16, /* ecc bytes */ @@ -57,7 +57,7 @@ {"GD5F2GQ4U 2G 3.3V 8-bit", { .id = {0xc8, 0xb2} }, SZ_2K, SZ_256, SZ_128K, 0, 2, 128, NAND_ECC_INFO(4, SZ_512) }, -@@ -128,6 +131,7 @@ struct nand_flash_dev nand_flash_ids[] = +@@ -129,6 +132,7 @@ struct nand_flash_dev nand_flash_ids[] = EXTENDED_ID_NAND("NAND 128MiB 3,3V 8-bit", 0xF1, 128, LP_OPTIONS), EXTENDED_ID_NAND("NAND 128MiB 3,3V 8-bit", 0xD1, 128, LP_OPTIONS), EXTENDED_ID_NAND("NAND 128MiB 1,8V 16-bit", 0xB1, 128, LP_OPTIONS16), @@ -65,7 +65,7 @@ EXTENDED_ID_NAND("NAND 128MiB 3,3V 16-bit", 0xC1, 128, LP_OPTIONS16), EXTENDED_ID_NAND("NAND 128MiB 1,8V 16-bit", 0xAD, 128, LP_OPTIONS16), -@@ -207,6 +211,7 @@ struct nand_manufacturers nand_manuf_ids +@@ -208,6 +212,7 @@ struct nand_manufacturers nand_manuf_ids {NAND_MFR_GIGADEVICE, "Giga Device"}, {NAND_MFR_WINBOND, "Winbond"}, {NAND_MFR_HEYANGTEK, "HeYang Tek"}, diff --git a/target/linux/generic/patches-4.4/080-spi-introduce-accelerated-read-support-for-spi-flash.patch b/target/linux/generic/patches-4.4/080-spi-introduce-accelerated-read-support-for-spi-flash.patch index 5e116b0bbf..a717f1cee2 100644 --- a/target/linux/generic/patches-4.4/080-spi-introduce-accelerated-read-support-for-spi-flash.patch +++ b/target/linux/generic/patches-4.4/080-spi-introduce-accelerated-read-support-for-spi-flash.patch @@ -24,7 +24,7 @@ Signed-off-by: Mark Brown --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -1135,6 +1135,7 @@ static void __spi_pump_messages(struct s +@@ -1141,6 +1141,7 @@ static void __spi_pump_messages(struct s } } @@ -32,7 +32,7 @@ Signed-off-by: Mark Brown trace_spi_message_start(master->cur_msg); if (master->prepare_message) { -@@ -1144,6 +1145,7 @@ static void __spi_pump_messages(struct s +@@ -1150,6 +1151,7 @@ static void __spi_pump_messages(struct s "failed to prepare message: %d\n", ret); master->cur_msg->status = ret; spi_finalize_current_message(master); @@ -40,7 +40,7 @@ Signed-off-by: Mark Brown return; } master->cur_msg_prepared = true; -@@ -1153,6 +1155,7 @@ static void __spi_pump_messages(struct s +@@ -1159,6 +1161,7 @@ static void __spi_pump_messages(struct s if (ret) { master->cur_msg->status = ret; spi_finalize_current_message(master); @@ -48,7 +48,7 @@ Signed-off-by: Mark Brown return; } -@@ -1160,8 +1163,10 @@ static void __spi_pump_messages(struct s +@@ -1166,8 +1169,10 @@ static void __spi_pump_messages(struct s if (ret) { dev_err(&master->dev, "failed to transfer one message from queue\n"); @@ -59,7 +59,7 @@ Signed-off-by: Mark Brown } /** -@@ -2329,6 +2334,46 @@ int spi_async_locked(struct spi_device * +@@ -2335,6 +2340,46 @@ int spi_async_locked(struct spi_device * EXPORT_SYMBOL_GPL(spi_async_locked); diff --git a/target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch b/target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch index 0408353138..b0cb2099b2 100644 --- a/target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch +++ b/target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch @@ -36,7 +36,7 @@ Signed-off-by: Stephen Boyd dmam_alloc_coherent() --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c -@@ -2595,6 +2595,22 @@ fail_out: +@@ -2598,6 +2598,22 @@ fail_out: } EXPORT_SYMBOL_GPL(clk_register); @@ -59,7 +59,7 @@ Signed-off-by: Stephen Boyd /* Free memory allocated for a clock. */ static void __clk_release(struct kref *ref) { -@@ -2696,11 +2712,26 @@ void clk_unregister(struct clk *clk) +@@ -2699,11 +2715,26 @@ void clk_unregister(struct clk *clk) } EXPORT_SYMBOL_GPL(clk_unregister); @@ -86,7 +86,7 @@ Signed-off-by: Stephen Boyd /** * devm_clk_register - resource managed clk_register() * @dev: device that is registering this clock -@@ -2731,6 +2762,36 @@ struct clk *devm_clk_register(struct dev +@@ -2734,6 +2765,36 @@ struct clk *devm_clk_register(struct dev } EXPORT_SYMBOL_GPL(devm_clk_register); @@ -123,7 +123,7 @@ Signed-off-by: Stephen Boyd static int devm_clk_match(struct device *dev, void *res, void *data) { struct clk *c = res; -@@ -2739,6 +2800,15 @@ static int devm_clk_match(struct device +@@ -2742,6 +2803,15 @@ static int devm_clk_match(struct device return c == data; } @@ -139,7 +139,7 @@ Signed-off-by: Stephen Boyd /** * devm_clk_unregister - resource managed clk_unregister() * @clk: clock to unregister -@@ -2753,6 +2823,22 @@ void devm_clk_unregister(struct device * +@@ -2756,6 +2826,22 @@ void devm_clk_unregister(struct device * } EXPORT_SYMBOL_GPL(devm_clk_unregister); diff --git a/target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch b/target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch index 0bcb5bb805..983cf14aec 100644 --- a/target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch +++ b/target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch @@ -30,7 +30,7 @@ Signed-off-by: Stephen Boyd --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c -@@ -3001,6 +3001,7 @@ struct of_clk_provider { +@@ -3004,6 +3004,7 @@ struct of_clk_provider { struct device_node *node; struct clk *(*get)(struct of_phandle_args *clkspec, void *data); @@ -38,7 +38,7 @@ Signed-off-by: Stephen Boyd void *data; }; -@@ -3017,6 +3018,12 @@ struct clk *of_clk_src_simple_get(struct +@@ -3020,6 +3021,12 @@ struct clk *of_clk_src_simple_get(struct } EXPORT_SYMBOL_GPL(of_clk_src_simple_get); @@ -51,7 +51,7 @@ Signed-off-by: Stephen Boyd struct clk *of_clk_src_onecell_get(struct of_phandle_args *clkspec, void *data) { struct clk_onecell_data *clk_data = data; -@@ -3031,6 +3038,21 @@ struct clk *of_clk_src_onecell_get(struc +@@ -3034,6 +3041,21 @@ struct clk *of_clk_src_onecell_get(struc } EXPORT_SYMBOL_GPL(of_clk_src_onecell_get); @@ -73,7 +73,7 @@ Signed-off-by: Stephen Boyd /** * of_clk_add_provider() - Register a clock provider for a node * @np: Device node pointer associated with clock provider -@@ -3067,6 +3089,41 @@ int of_clk_add_provider(struct device_no +@@ -3070,6 +3092,41 @@ int of_clk_add_provider(struct device_no EXPORT_SYMBOL_GPL(of_clk_add_provider); /** @@ -115,7 +115,7 @@ Signed-off-by: Stephen Boyd * of_clk_del_provider() - Remove a previously registered clock provider * @np: Device node pointer associated with clock provider */ -@@ -3087,11 +3144,32 @@ void of_clk_del_provider(struct device_n +@@ -3090,11 +3147,32 @@ void of_clk_del_provider(struct device_n } EXPORT_SYMBOL_GPL(of_clk_del_provider); @@ -148,7 +148,7 @@ Signed-off-by: Stephen Boyd if (!clkspec) return ERR_PTR(-EINVAL); -@@ -3100,10 +3178,9 @@ struct clk *__of_clk_get_from_provider(s +@@ -3103,10 +3181,9 @@ struct clk *__of_clk_get_from_provider(s mutex_lock(&of_clk_mutex); list_for_each_entry(provider, &of_clk_providers, link) { if (provider->node == clkspec->np) diff --git a/target/linux/generic/patches-4.4/092-MIPS-ZBOOT-copy-appended-dtb-to-the-end-of-the-kerne.patch b/target/linux/generic/patches-4.4/092-MIPS-ZBOOT-copy-appended-dtb-to-the-end-of-the-kerne.patch index 78188dd298..a23a8d00fd 100644 --- a/target/linux/generic/patches-4.4/092-MIPS-ZBOOT-copy-appended-dtb-to-the-end-of-the-kerne.patch +++ b/target/linux/generic/patches-4.4/092-MIPS-ZBOOT-copy-appended-dtb-to-the-end-of-the-kerne.patch @@ -27,7 +27,7 @@ Signed-off-by: Ralf Baechle --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2753,10 +2753,10 @@ choice +@@ -2756,10 +2756,10 @@ choice the documented boot protocol using a device tree. config MIPS_RAW_APPENDED_DTB @@ -40,7 +40,7 @@ Signed-off-by: Ralf Baechle (e.g. cat vmlinux.bin .dtb > vmlinux_w_dtb). This is meant as a backward compatibility convenience for those -@@ -2768,24 +2768,6 @@ choice +@@ -2771,24 +2771,6 @@ choice look like a DTB header after a reboot if no actual DTB is appended to vmlinux.bin. Do not leave this option active in a production kernel if you don't intend to always append a DTB. diff --git a/target/linux/generic/patches-4.4/093-MIPS-store-the-appended-dtb-address-in-a-variable.patch b/target/linux/generic/patches-4.4/093-MIPS-store-the-appended-dtb-address-in-a-variable.patch index d868d210aa..7b011d444c 100644 --- a/target/linux/generic/patches-4.4/093-MIPS-store-the-appended-dtb-address-in-a-variable.patch +++ b/target/linux/generic/patches-4.4/093-MIPS-store-the-appended-dtb-address-in-a-variable.patch @@ -36,7 +36,7 @@ Signed-off-by: Ralf Baechle --- a/arch/mips/ath79/setup.c +++ b/arch/mips/ath79/setup.c -@@ -207,6 +207,8 @@ void __init plat_mem_setup(void) +@@ -208,6 +208,8 @@ void __init plat_mem_setup(void) fdt_start = fw_getenvl("fdt_start"); if (fdt_start) __dt_setup_arch((void *)KSEG0ADDR(fdt_start)); diff --git a/target/linux/generic/patches-4.4/103-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/target/linux/generic/patches-4.4/103-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch index a53be2d15c..dfdee8b5ce 100644 --- a/target/linux/generic/patches-4.4/103-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch +++ b/target/linux/generic/patches-4.4/103-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch @@ -75,7 +75,7 @@ Signed-off-by: Tobias Wolf --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -5372,7 +5372,7 @@ static void __init_refok alloc_node_mem_ +@@ -5370,7 +5370,7 @@ static void __init_refok alloc_node_mem_ 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/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch b/target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch index b7ff845343..3b640c7073 100644 --- a/target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch +++ b/target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau .get_acl = jffs2_get_acl, .set_acl = jffs2_set_acl, .setattr = jffs2_setattr, -@@ -754,8 +754,27 @@ static int jffs2_mknod (struct inode *di +@@ -750,8 +750,27 @@ static int jffs2_mknod (struct inode *di return ret; } @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau { int ret; struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb); -@@ -763,6 +782,9 @@ static int jffs2_rename (struct inode *o +@@ -759,6 +778,9 @@ static int jffs2_rename (struct inode *o uint8_t type; uint32_t now; @@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau /* The VFS will check for us and prevent trying to rename a * file over a directory and vice versa, but if it's a directory, * the VFS can't check whether the victim is empty. The filesystem -@@ -826,9 +848,14 @@ static int jffs2_rename (struct inode *o +@@ -822,9 +844,14 @@ static int jffs2_rename (struct inode *o if (d_is_dir(old_dentry) && !victim_f) inc_nlink(new_dir_i); diff --git a/target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch b/target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch index 37eb073df9..ac231272e2 100644 --- a/target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch +++ b/target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch @@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau --- a/fs/jffs2/dir.c +++ b/fs/jffs2/dir.c -@@ -779,18 +779,31 @@ static int jffs2_rename (struct inode *o +@@ -775,18 +775,31 @@ static int jffs2_rename (struct inode *o int ret; struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb); struct jffs2_inode_info *victim_f = NULL; @@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau victim_f = JFFS2_INODE_INFO(d_inode(new_dentry)); if (d_is_dir(new_dentry)) { struct jffs2_full_dirent *fd; -@@ -825,7 +838,7 @@ static int jffs2_rename (struct inode *o +@@ -821,7 +834,7 @@ static int jffs2_rename (struct inode *o if (ret) return ret; @@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau /* There was a victim. Kill it off nicely */ if (d_is_dir(new_dentry)) clear_nlink(d_inode(new_dentry)); -@@ -845,12 +858,18 @@ static int jffs2_rename (struct inode *o +@@ -841,12 +854,18 @@ static int jffs2_rename (struct inode *o /* If it was a directory we moved, and there was no victim, increase i_nlink on its new parent */ @@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau else /* Unlink the original */ ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i), -@@ -882,7 +901,7 @@ static int jffs2_rename (struct inode *o +@@ -878,7 +897,7 @@ static int jffs2_rename (struct inode *o return ret; } diff --git a/target/linux/generic/patches-4.4/132-mips_inline_dma_ops.patch b/target/linux/generic/patches-4.4/132-mips_inline_dma_ops.patch index 143b0bb3ff..535ab915b2 100644 --- a/target/linux/generic/patches-4.4/132-mips_inline_dma_ops.patch +++ b/target/linux/generic/patches-4.4/132-mips_inline_dma_ops.patch @@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1619,6 +1619,7 @@ config CPU_CAVIUM_OCTEON +@@ -1622,6 +1622,7 @@ config CPU_CAVIUM_OCTEON select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN select MIPS_L1_CACHE_SHIFT_7 @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau help The Cavium Octeon processor is a highly integrated chip containing many ethernet hardware widgets for networking tasks. The processor -@@ -1914,6 +1915,9 @@ config MIPS_MALTA_PM +@@ -1917,6 +1918,9 @@ config MIPS_MALTA_PM bool default y diff --git a/target/linux/generic/patches-4.4/203-kallsyms_uncompressed.patch b/target/linux/generic/patches-4.4/203-kallsyms_uncompressed.patch index cf8a447bbc..d3a5aa7606 100644 --- a/target/linux/generic/patches-4.4/203-kallsyms_uncompressed.patch +++ b/target/linux/generic/patches-4.4/203-kallsyms_uncompressed.patch @@ -51,7 +51,7 @@ } else if (argc != 1) --- a/init/Kconfig +++ b/init/Kconfig -@@ -1345,6 +1345,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW +@@ -1358,6 +1358,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW the unaligned access emulation. see arch/parisc/kernel/unaligned.c for reference 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 a661f98c65..ba105f1817 100644 --- a/target/linux/generic/patches-4.4/204-module_strip.patch +++ b/target/linux/generic/patches-4.4/204-module_strip.patch @@ -89,7 +89,7 @@ Signed-off-by: Felix Fietkau --- a/init/Kconfig +++ b/init/Kconfig -@@ -2033,6 +2033,13 @@ config MODULE_COMPRESS_XZ +@@ -2046,6 +2046,13 @@ config MODULE_COMPRESS_XZ endchoice @@ -123,7 +123,7 @@ Signed-off-by: Felix Fietkau set_license(mod, get_modinfo(info, "license")); --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c -@@ -1964,7 +1964,9 @@ static void read_symbols(char *modname) +@@ -1966,7 +1966,9 @@ static void read_symbols(char *modname) symname = remove_dot(info.strtab + sym->st_name); handle_modversions(mod, &info, sym, symname); @@ -133,7 +133,7 @@ Signed-off-by: Felix Fietkau } if (!is_vmlinux(modname) || (is_vmlinux(modname) && vmlinux_section_warnings)) -@@ -2108,7 +2110,9 @@ static void add_header(struct buffer *b, +@@ -2110,7 +2112,9 @@ static void add_header(struct buffer *b, buf_printf(b, "#include \n"); buf_printf(b, "#include \n"); buf_printf(b, "\n"); @@ -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,8 +2129,10 @@ static void add_header(struct buffer *b, +@@ -2127,8 +2131,10 @@ static void add_header(struct buffer *b, static void add_intree_flag(struct buffer *b, int is_intree) { @@ -154,7 +154,7 @@ Signed-off-by: Felix Fietkau } /* Cannot check for assembler */ -@@ -2139,10 +2145,12 @@ static void add_retpoline(struct buffer +@@ -2141,10 +2147,12 @@ static void add_retpoline(struct buffer static void add_staging_flag(struct buffer *b, const char *name) { @@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau } /* In kernel, this size is defined in linux/module.h; -@@ -2246,11 +2254,13 @@ static void add_depends(struct buffer *b +@@ -2248,11 +2256,13 @@ static void add_depends(struct buffer *b static void add_srcversion(struct buffer *b, struct module *mod) { @@ -181,7 +181,7 @@ Signed-off-by: Felix Fietkau } static void write_if_changed(struct buffer *b, const char *fname) -@@ -2485,7 +2495,9 @@ int main(int argc, char **argv) +@@ -2487,7 +2497,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/221-module_exports.patch b/target/linux/generic/patches-4.4/221-module_exports.patch index 44c0a6dec6..bd7022f20b 100644 --- a/target/linux/generic/patches-4.4/221-module_exports.patch +++ b/target/linux/generic/patches-4.4/221-module_exports.patch @@ -54,7 +54,7 @@ } --- a/scripts/Makefile.build +++ b/scripts/Makefile.build -@@ -372,7 +372,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $( +@@ -380,7 +380,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $( # Linker scripts preprocessor (.lds.S -> .lds) # --------------------------------------------------------------------------- quiet_cmd_cpp_lds_S = LDS $@ diff --git a/target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch b/target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch index c44a46730a..726090f4f8 100644 --- a/target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch +++ b/target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch @@ -1,7 +1,5 @@ -Index: linux-4.4.178/include/uapi/linux/if_ether.h -=================================================================== ---- linux-4.4.178.orig/include/uapi/linux/if_ether.h -+++ linux-4.4.178/include/uapi/linux/if_ether.h +--- a/include/uapi/linux/if_ether.h ++++ b/include/uapi/linux/if_ether.h @@ -22,6 +22,7 @@ #define _UAPI_LINUX_IF_ETHER_H @@ -22,10 +20,8 @@ Index: linux-4.4.178/include/uapi/linux/if_ether.h #define __UAPI_DEF_ETHHDR 1 #endif -Index: linux-4.4.178/include/uapi/linux/libc-compat.h -=================================================================== ---- linux-4.4.178.orig/include/uapi/linux/libc-compat.h -+++ linux-4.4.178/include/uapi/linux/libc-compat.h +--- a/include/uapi/linux/libc-compat.h ++++ b/include/uapi/linux/libc-compat.h @@ -160,6 +160,8 @@ #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1 /* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */ diff --git a/target/linux/generic/patches-4.4/300-mips_expose_boot_raw.patch b/target/linux/generic/patches-4.4/300-mips_expose_boot_raw.patch index 0980c26d50..5ccbb58263 100644 --- a/target/linux/generic/patches-4.4/300-mips_expose_boot_raw.patch +++ b/target/linux/generic/patches-4.4/300-mips_expose_boot_raw.patch @@ -8,7 +8,7 @@ Acked-by: Rob Landley --- --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1033,9 +1033,6 @@ config FW_ARC +@@ -1036,9 +1036,6 @@ config FW_ARC config ARCH_MAY_HAVE_PC_FDC bool @@ -18,7 +18,7 @@ Acked-by: Rob Landley config CEVT_BCM1480 bool -@@ -2793,6 +2790,18 @@ choice +@@ -2796,6 +2793,18 @@ choice bool "Bootloader kernel arguments if available" endchoice diff --git a/target/linux/generic/patches-4.4/301-mips_image_cmdline_hack.patch b/target/linux/generic/patches-4.4/301-mips_image_cmdline_hack.patch index 625a84c814..93730d9f73 100644 --- a/target/linux/generic/patches-4.4/301-mips_image_cmdline_hack.patch +++ b/target/linux/generic/patches-4.4/301-mips_image_cmdline_hack.patch @@ -1,6 +1,6 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1124,6 +1124,10 @@ config SYNC_R4K +@@ -1127,6 +1127,10 @@ config SYNC_R4K config MIPS_MACHINE def_bool n 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 60b576c1a4..ed4a0c5d2f 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 @@ -26,7 +26,7 @@ v2: incorporated changes suggested by Jonas Gorski --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2725,6 +2725,20 @@ config MIPS_O32_FP64_SUPPORT +@@ -2728,6 +2728,20 @@ config MIPS_O32_FP64_SUPPORT If unsure, say N. diff --git a/target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch b/target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch index 5a2b67cfcd..a24fc573c1 100644 --- a/target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch +++ b/target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch @@ -21,8 +21,8 @@ Signed-off-by: Alexey Brodkin --- a/arch/arc/kernel/head.S +++ b/arch/arc/kernel/head.S -@@ -49,6 +49,16 @@ - 1: +@@ -59,6 +59,16 @@ + #endif .endm +; Here "patch-dtb" will embed external .dtb diff --git a/target/linux/generic/patches-4.4/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch b/target/linux/generic/patches-4.4/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch index c437a140f0..382b44a939 100644 --- a/target/linux/generic/patches-4.4/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch +++ b/target/linux/generic/patches-4.4/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch @@ -8,7 +8,7 @@ Signed-off-by: George Kashperko 1 file changed, 1 insertion(+) --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c -@@ -1830,6 +1830,7 @@ static int __xipram do_write_buffer(stru +@@ -1831,6 +1831,7 @@ static int __xipram do_write_buffer(stru /* Write Buffer Load */ map_write(map, CMD(0x25), cmd_adr); diff --git a/target/linux/generic/patches-4.4/465-m25p80-mx-disable-software-protection.patch b/target/linux/generic/patches-4.4/465-m25p80-mx-disable-software-protection.patch index e81ebbb3fa..6782b1d380 100644 --- a/target/linux/generic/patches-4.4/465-m25p80-mx-disable-software-protection.patch +++ b/target/linux/generic/patches-4.4/465-m25p80-mx-disable-software-protection.patch @@ -4,7 +4,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -1166,6 +1166,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -1172,6 +1172,7 @@ int spi_nor_scan(struct spi_nor *nor, co if (JEDEC_MFR(info) == SNOR_MFR_ATMEL || JEDEC_MFR(info) == SNOR_MFR_INTEL || diff --git a/target/linux/generic/patches-4.4/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch b/target/linux/generic/patches-4.4/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch index f08f9b4a7c..7fd9d9c1b4 100644 --- a/target/linux/generic/patches-4.4/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch +++ b/target/linux/generic/patches-4.4/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch @@ -11,7 +11,7 @@ Signed-off-by: Daniel Golle --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c -@@ -1203,6 +1203,49 @@ static struct mtd_info * __init open_mtd +@@ -1217,6 +1217,49 @@ static struct mtd_info * __init open_mtd return mtd; } @@ -61,7 +61,7 @@ Signed-off-by: Daniel Golle static int __init ubi_init(void) { int err, i, k; -@@ -1286,6 +1329,12 @@ static int __init ubi_init(void) +@@ -1300,6 +1343,12 @@ static int __init ubi_init(void) } } diff --git a/target/linux/generic/patches-4.4/494-mtd-ubi-add-EOF-marker-support.patch b/target/linux/generic/patches-4.4/494-mtd-ubi-add-EOF-marker-support.patch index dd5ee306ef..d23c7be1bd 100644 --- a/target/linux/generic/patches-4.4/494-mtd-ubi-add-EOF-marker-support.patch +++ b/target/linux/generic/patches-4.4/494-mtd-ubi-add-EOF-marker-support.patch @@ -1,7 +1,7 @@ --- a/drivers/mtd/ubi/attach.c +++ b/drivers/mtd/ubi/attach.c -@@ -803,6 +803,13 @@ out_unlock: - return err; +@@ -851,6 +851,13 @@ static bool vol_ignored(int vol_id) + #endif } +static bool ec_hdr_has_eof(struct ubi_ec_hdr *ech) @@ -14,7 +14,7 @@ /** * scan_peb - scan and process UBI headers of a PEB. * @ubi: UBI device description object -@@ -833,9 +840,21 @@ static int scan_peb(struct ubi_device *u +@@ -880,9 +887,21 @@ static int scan_peb(struct ubi_device *u return 0; } @@ -41,7 +41,7 @@ break; --- a/drivers/mtd/ubi/ubi.h +++ b/drivers/mtd/ubi/ubi.h -@@ -741,6 +741,7 @@ struct ubi_attach_info { +@@ -747,6 +747,7 @@ struct ubi_attach_info { int mean_ec; uint64_t ec_sum; int ec_count; 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 bde7a986c7..0921fe8e54 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 -@@ -373,14 +373,41 @@ static int __init init_jffs2_fs(void) +@@ -374,14 +374,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); diff --git a/target/linux/generic/patches-4.4/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/patches-4.4/610-netfilter_match_bypass_default_checks.patch index 0967795751..6a228a3429 100644 --- a/target/linux/generic/patches-4.4/610-netfilter_match_bypass_default_checks.patch +++ b/target/linux/generic/patches-4.4/610-netfilter_match_bypass_default_checks.patch @@ -59,7 +59,7 @@ if (!xt_percpu_counter_alloc(alloc_state, &e->counters)) return -ENOMEM; -@@ -957,6 +985,7 @@ copy_entries_to_user(unsigned int total_ +@@ -958,6 +986,7 @@ copy_entries_to_user(unsigned int total_ const struct xt_table_info *private = table->private; int ret = 0; const void *loc_cpu_entry; @@ -67,7 +67,7 @@ counters = alloc_counters(table); if (IS_ERR(counters)) -@@ -983,6 +1012,14 @@ copy_entries_to_user(unsigned int total_ +@@ -984,6 +1013,14 @@ copy_entries_to_user(unsigned int total_ ret = -EFAULT; goto free_counters; } diff --git a/target/linux/generic/patches-4.4/613-netfilter_optional_tcp_window_check.patch b/target/linux/generic/patches-4.4/613-netfilter_optional_tcp_window_check.patch index 3740dd74e5..d83485c790 100644 --- a/target/linux/generic/patches-4.4/613-netfilter_optional_tcp_window_check.patch +++ b/target/linux/generic/patches-4.4/613-netfilter_optional_tcp_window_check.patch @@ -10,7 +10,7 @@ /* "Be conservative in what you do, be liberal in what you accept from others." If it's non-zero, we mark only out of window RST segments as INVALID. */ -@@ -515,6 +518,9 @@ static bool tcp_in_window(const struct n +@@ -519,6 +522,9 @@ static bool tcp_in_window(const struct n s32 receiver_offset; bool res, in_recv_win; @@ -20,7 +20,7 @@ /* * Get the required data from the packet. */ -@@ -1481,6 +1487,13 @@ static struct ctl_table tcp_sysctl_table +@@ -1485,6 +1491,13 @@ static struct ctl_table tcp_sysctl_table .mode = 0644, .proc_handler = proc_dointvec, }, diff --git a/target/linux/generic/patches-4.4/630-packet_socket_type.patch b/target/linux/generic/patches-4.4/630-packet_socket_type.patch index 0314938ac4..720781b604 100644 --- a/target/linux/generic/patches-4.4/630-packet_socket_type.patch +++ b/target/linux/generic/patches-4.4/630-packet_socket_type.patch @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1777,6 +1777,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1784,6 +1784,7 @@ static int packet_rcv_spkt(struct sk_buf { struct sock *sk; struct sockaddr_pkt *spkt; @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau /* * When we registered the protocol we saved the socket in the data -@@ -1784,6 +1785,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1791,6 +1792,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau /* * Yank back the headers [hope the device set this -@@ -1796,7 +1798,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1803,7 +1805,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -1999,12 +2001,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -2006,12 +2008,12 @@ static int packet_rcv(struct sk_buff *sk int skb_len = skb->len; unsigned int snaplen, res; @@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2124,12 +2126,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2131,12 +2133,12 @@ static int tpacket_rcv(struct sk_buff *s BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3126,6 +3128,7 @@ static int packet_create(struct net *net +@@ -3143,6 +3145,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3755,6 +3758,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3801,6 +3804,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3807,6 +3820,13 @@ static int packet_getsockopt(struct sock +@@ -3853,6 +3866,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/patches-4.4/642-bridge_port_isolate.patch b/target/linux/generic/patches-4.4/642-bridge_port_isolate.patch index 02dfea4659..f6383015a9 100644 --- a/target/linux/generic/patches-4.4/642-bridge_port_isolate.patch +++ b/target/linux/generic/patches-4.4/642-bridge_port_isolate.patch @@ -61,7 +61,7 @@ Isolating individual bridge ports skb = NULL; --- a/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c -@@ -141,7 +141,7 @@ EXPORT_SYMBOL_GPL(br_deliver); +@@ -140,7 +140,7 @@ EXPORT_SYMBOL_GPL(br_deliver); /* called with rcu_read_lock */ void br_forward(const struct net_bridge_port *to, struct sk_buff *skb, struct sk_buff *skb0) { @@ -70,7 +70,7 @@ Isolating individual bridge ports if (skb0) deliver_clone(to, skb, __br_forward); else -@@ -197,7 +197,7 @@ static void br_flood(struct net_bridge * +@@ -196,7 +196,7 @@ static void br_flood(struct net_bridge * struct sk_buff *skb0, void (*__packet_hook)(const struct net_bridge_port *p, struct sk_buff *skb), @@ -79,7 +79,7 @@ Isolating individual bridge ports { struct net_bridge_port *p; struct net_bridge_port *prev; -@@ -205,6 +205,8 @@ static void br_flood(struct net_bridge * +@@ -204,6 +204,8 @@ static void br_flood(struct net_bridge * prev = NULL; list_for_each_entry_rcu(p, &br->port_list, list) { @@ -88,7 +88,7 @@ Isolating individual bridge ports /* Do not flood unicast traffic to ports that turn it off */ if (unicast && !(p->flags & BR_FLOOD)) continue; -@@ -239,14 +241,14 @@ out: +@@ -238,14 +240,14 @@ out: /* called with rcu_read_lock */ void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast) { 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 ca23150d7d..1b7287278f 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; } -@@ -1439,7 +1465,8 @@ br_multicast_leave_group(struct net_brid +@@ -1432,7 +1458,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; -@@ -1463,7 +1490,7 @@ br_multicast_leave_group(struct net_brid +@@ -1456,7 +1483,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); -@@ -1526,7 +1553,7 @@ br_multicast_leave_group(struct net_brid +@@ -1519,7 +1546,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) && -@@ -1544,8 +1571,8 @@ out: +@@ -1537,8 +1564,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; -@@ -1560,14 +1587,14 @@ static void br_ip4_multicast_leave_group +@@ -1553,14 +1580,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; -@@ -1582,7 +1609,7 @@ static void br_ip6_multicast_leave_group +@@ -1575,7 +1602,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 -@@ -1591,6 +1618,7 @@ static int br_multicast_ipv4_rcv(struct +@@ -1584,6 +1611,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; -@@ -1607,12 +1635,13 @@ static int br_multicast_ipv4_rcv(struct +@@ -1600,12 +1628,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); -@@ -1621,7 +1650,7 @@ static int br_multicast_ipv4_rcv(struct +@@ -1614,7 +1643,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; } -@@ -1637,6 +1666,7 @@ static int br_multicast_ipv6_rcv(struct +@@ -1630,6 +1659,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; -@@ -1656,8 +1686,9 @@ static int br_multicast_ipv6_rcv(struct +@@ -1649,8 +1679,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); -@@ -1666,7 +1697,8 @@ static int br_multicast_ipv6_rcv(struct +@@ -1659,7 +1690,8 @@ static int br_multicast_ipv6_rcv(struct err = br_ip6_multicast_query(br, port, skb_trimmed, vid); break; case ICMPV6_MGM_REDUCTION: @@ -333,7 +333,7 @@ Implement optinal multicast->unicast conversion for igmp snooping rcu_assign_pointer(*pp, p); --- a/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c -@@ -192,6 +192,34 @@ out: +@@ -191,6 +191,34 @@ out: return p; } @@ -368,7 +368,7 @@ Implement optinal multicast->unicast conversion for igmp snooping /* called under bridge lock */ static void br_flood(struct net_bridge *br, struct sk_buff *skb, struct sk_buff *skb0, -@@ -264,6 +292,7 @@ static void br_multicast_flood(struct ne +@@ -263,6 +291,7 @@ static void br_multicast_flood(struct ne struct net_bridge_port *prev = NULL; struct net_bridge_port_group *p; struct hlist_node *rp; @@ -376,7 +376,7 @@ Implement optinal multicast->unicast conversion for igmp snooping rp = rcu_dereference(hlist_first_rcu(&br->router_list)); p = mdst ? rcu_dereference(mdst->ports) : NULL; -@@ -274,10 +303,19 @@ static void br_multicast_flood(struct ne +@@ -273,10 +302,19 @@ static void br_multicast_flood(struct ne rport = rp ? hlist_entry(rp, struct net_bridge_port, rlist) : NULL; diff --git a/target/linux/generic/patches-4.4/653-disable_netlink_trim.patch b/target/linux/generic/patches-4.4/653-disable_netlink_trim.patch index b11104be9e..744bba1682 100644 --- a/target/linux/generic/patches-4.4/653-disable_netlink_trim.patch +++ b/target/linux/generic/patches-4.4/653-disable_netlink_trim.patch @@ -1,6 +1,6 @@ --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c -@@ -1231,24 +1231,7 @@ void netlink_detachskb(struct sock *sk, +@@ -1241,24 +1241,7 @@ void netlink_detachskb(struct sock *sk, static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation) { diff --git a/target/linux/generic/patches-4.4/655-increase_skb_pad.patch b/target/linux/generic/patches-4.4/655-increase_skb_pad.patch index 1c8ebacf46..6acdb670de 100644 --- a/target/linux/generic/patches-4.4/655-increase_skb_pad.patch +++ b/target/linux/generic/patches-4.4/655-increase_skb_pad.patch @@ -1,6 +1,6 @@ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2177,7 +2177,7 @@ static inline int pskb_network_may_pull( +@@ -2182,7 +2182,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/patches-4.4/662-use_fq_codel_by_default.patch b/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch index 8d70b82350..6aeca173fa 100644 --- a/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch +++ b/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch @@ -84,7 +84,7 @@ if (!qdisc) --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c -@@ -1951,7 +1951,7 @@ static int __init pktsched_init(void) +@@ -1950,7 +1950,7 @@ static int __init pktsched_init(void) return err; } 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 1d33e421ff..b316cf140b 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 @@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski static void rt_fibinfo_free(struct rtable __rcu **rtp) --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c -@@ -2370,6 +2370,7 @@ static const char *const rtn_type_names[ +@@ -2380,6 +2380,7 @@ static const char *const rtn_type_names[ [RTN_THROW] = "THROW", [RTN_NAT] = "NAT", [RTN_XRESOLVE] = "XRESOLVE", @@ -78,7 +78,7 @@ Signed-off-by: Jonas Gorski static inline const char *rtn_type(char *buf, size_t len, unsigned int t) --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c -@@ -182,6 +182,7 @@ static int ipmr_rule_action(struct fib_r +@@ -183,6 +183,7 @@ static int ipmr_rule_action(struct fib_r case FR_ACT_UNREACHABLE: return -ENETUNREACH; case FR_ACT_PROHIBIT: @@ -101,7 +101,7 @@ Signed-off-by: Jonas Gorski table = fib6_get_table(net, rule->table); --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c -@@ -167,6 +167,8 @@ static int ip6mr_rule_action(struct fib_ +@@ -169,6 +169,8 @@ static int ip6mr_rule_action(struct fib_ return -ENETUNREACH; case FR_ACT_PROHIBIT: return -EACCES; 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 0734bfc5af..f0f21006db 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 @@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau #endif --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -642,7 +642,8 @@ struct sk_buff { +@@ -647,7 +647,8 @@ struct sk_buff { __u8 inner_protocol_type:1; __u8 remcsum_offload:1; diff --git a/target/linux/generic/patches-4.4/701-phy_extension.patch b/target/linux/generic/patches-4.4/701-phy_extension.patch index 39b8fd4660..a644fd8bc0 100644 --- a/target/linux/generic/patches-4.4/701-phy_extension.patch +++ b/target/linux/generic/patches-4.4/701-phy_extension.patch @@ -1,6 +1,6 @@ --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -385,6 +385,50 @@ int phy_ethtool_gset(struct phy_device * +@@ -391,6 +391,50 @@ int phy_ethtool_gset(struct phy_device * } EXPORT_SYMBOL(phy_ethtool_gset); diff --git a/target/linux/generic/patches-4.4/710-phy-add-mdio_register_board_info.patch b/target/linux/generic/patches-4.4/710-phy-add-mdio_register_board_info.patch index d78f3d48a7..6c71383665 100644 --- a/target/linux/generic/patches-4.4/710-phy-add-mdio_register_board_info.patch +++ b/target/linux/generic/patches-4.4/710-phy-add-mdio_register_board_info.patch @@ -9,7 +9,7 @@ /** * mdiobus_alloc_size - allocate a mii_bus structure * @size: extra amount of memory to allocate for private storage. -@@ -346,9 +348,21 @@ void mdiobus_free(struct mii_bus *bus) +@@ -345,9 +347,21 @@ void mdiobus_free(struct mii_bus *bus) } EXPORT_SYMBOL(mdiobus_free); @@ -31,7 +31,7 @@ int err; phydev = get_phy_device(bus, addr, false); -@@ -361,6 +375,12 @@ struct phy_device *mdiobus_scan(struct m +@@ -360,6 +374,12 @@ struct phy_device *mdiobus_scan(struct m */ of_mdiobus_link_phydev(bus, phydev); 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 f17c7bd556..5cc9bb0cad 100644 --- a/target/linux/generic/patches-4.4/721-phy_packets.patch +++ b/target/linux/generic/patches-4.4/721-phy_packets.patch @@ -41,7 +41,7 @@ */ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2208,6 +2208,10 @@ static inline int pskb_trim(struct sk_bu +@@ -2213,6 +2213,10 @@ static inline int pskb_trim(struct sk_bu return (len < skb->len) ? __pskb_trim(skb, len) : 0; } @@ -52,7 +52,7 @@ /** * pskb_trim_unique - remove end from a paged unique (not cloned) buffer * @skb: buffer to alter -@@ -2314,16 +2318,6 @@ static inline struct sk_buff *dev_alloc_ +@@ -2319,16 +2323,6 @@ static inline struct sk_buff *dev_alloc_ } @@ -121,7 +121,7 @@ #include #include -@@ -520,6 +521,22 @@ skb_fail: +@@ -524,6 +525,22 @@ skb_fail: } EXPORT_SYMBOL(__napi_alloc_skb); diff --git a/target/linux/generic/patches-4.4/834-ledtrig-libata.patch b/target/linux/generic/patches-4.4/834-ledtrig-libata.patch index ad63634479..4b851072a8 100644 --- a/target/linux/generic/patches-4.4/834-ledtrig-libata.patch +++ b/target/linux/generic/patches-4.4/834-ledtrig-libata.patch @@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle /** * ata_build_rw_tf - Build ATA taskfile for given read/write request * @tf: Target ATA taskfile -@@ -4781,6 +4794,9 @@ struct ata_queued_cmd *ata_qc_new_init(s +@@ -4812,6 +4825,9 @@ struct ata_queued_cmd *ata_qc_new_init(s if (tag < 0) return NULL; } @@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle qc = __ata_qc_from_tag(ap, tag); qc->tag = tag; -@@ -5678,6 +5694,9 @@ struct ata_port *ata_port_alloc(struct a +@@ -5708,6 +5724,9 @@ struct ata_port *ata_port_alloc(struct a ap->stats.unhandled_irq = 1; ap->stats.idle_irq = 1; #endif @@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle ata_sff_port_init(ap); return ap; -@@ -5699,6 +5718,12 @@ static void ata_host_release(struct devi +@@ -5729,6 +5748,12 @@ static void ata_host_release(struct devi kfree(ap->pmp_link); kfree(ap->slave_link); @@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle kfree(ap); host->ports[i] = NULL; } -@@ -6145,7 +6170,23 @@ int ata_host_register(struct ata_host *h +@@ -6175,7 +6200,23 @@ int ata_host_register(struct ata_host *h host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->local_port_no = i + 1; } @@ -138,7 +138,7 @@ Signed-off-by: Daniel Golle /* * Define if arch has non-standard setup. This is a _PCI_ standard -@@ -877,6 +880,12 @@ struct ata_port { +@@ -878,6 +881,12 @@ struct ata_port { #ifdef CONFIG_ATA_ACPI struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */ #endif 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 b304e141b9..eeaabb8505 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 @@ -25,7 +25,7 @@ obj-$(CONFIG_PROC_FS) += net-procfs.o --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -1474,9 +1474,11 @@ void sk_destruct(struct sock *sk) +@@ -1475,9 +1475,11 @@ void sk_destruct(struct sock *sk) static void __sk_free(struct sock *sk) { @@ -39,7 +39,7 @@ --- a/net/ipv4/Kconfig +++ b/net/ipv4/Kconfig -@@ -415,6 +415,7 @@ config INET_LRO +@@ -416,6 +416,7 @@ config INET_LRO config INET_DIAG tristate "INET: socket monitoring interface" diff --git a/target/linux/generic/patches-4.4/904-debloat_dma_buf.patch b/target/linux/generic/patches-4.4/904-debloat_dma_buf.patch index b9fdad9c1b..a43ebf19e0 100644 --- a/target/linux/generic/patches-4.4/904-debloat_dma_buf.patch +++ b/target/linux/generic/patches-4.4/904-debloat_dma_buf.patch @@ -34,7 +34,7 @@ +MODULE_LICENSE("GPL"); --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -2096,6 +2096,7 @@ int wake_up_state(struct task_struct *p, +@@ -2097,6 +2097,7 @@ int wake_up_state(struct task_struct *p, { return try_to_wake_up(p, state, 0); } diff --git a/target/linux/generic/patches-4.4/911-kobject_add_broadcast_uevent.patch b/target/linux/generic/patches-4.4/911-kobject_add_broadcast_uevent.patch index a3401ff4b3..cadcd7467e 100644 --- a/target/linux/generic/patches-4.4/911-kobject_add_broadcast_uevent.patch +++ b/target/linux/generic/patches-4.4/911-kobject_add_broadcast_uevent.patch @@ -9,7 +9,7 @@ #ifdef CONFIG_UEVENT_HELPER /* path to the userspace helper executed on an event */ extern char uevent_helper[]; -@@ -222,4 +224,7 @@ int add_uevent_var(struct kobj_uevent_en +@@ -239,4 +241,7 @@ int add_uevent_var(struct kobj_uevent_en int kobject_action_type(const char *buf, size_t count, enum kobject_action *type); diff --git a/target/linux/generic/patches-4.4/995-mangle_bootargs.patch b/target/linux/generic/patches-4.4/995-mangle_bootargs.patch index 821370350e..55863882bf 100644 --- a/target/linux/generic/patches-4.4/995-mangle_bootargs.patch +++ b/target/linux/generic/patches-4.4/995-mangle_bootargs.patch @@ -40,7 +40,7 @@ setup_per_cpu_areas(); --- a/init/Kconfig +++ b/init/Kconfig -@@ -1655,6 +1655,15 @@ config EMBEDDED +@@ -1668,6 +1668,15 @@ config EMBEDDED an embedded system so certain expert options are available for configuration. diff --git a/target/linux/ramips/patches-4.4/0013-owrt-hack-fix-mt7688-cache-issue.patch b/target/linux/ramips/patches-4.4/0013-owrt-hack-fix-mt7688-cache-issue.patch index c9bba2a9dd..37d377de0c 100644 --- a/target/linux/ramips/patches-4.4/0013-owrt-hack-fix-mt7688-cache-issue.patch +++ b/target/linux/ramips/patches-4.4/0013-owrt-hack-fix-mt7688-cache-issue.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c -@@ -696,7 +696,6 @@ static void __init arch_mem_init(char ** +@@ -768,7 +768,6 @@ static void __init arch_mem_init(char ** crashk_res.end - crashk_res.start + 1, BOOTMEM_DEFAULT); #endif @@ -18,7 +18,7 @@ Signed-off-by: John Crispin sparse_init(); plat_swiotlb_setup(); paging_init(); -@@ -809,6 +808,7 @@ void __init setup_arch(char **cmdline_p) +@@ -881,6 +880,7 @@ void __init setup_arch(char **cmdline_p) prefill_possible_map(); cpu_cache_init(); diff --git a/target/linux/ramips/patches-4.4/0031-uvc-add-iPassion-iP2970-support.patch b/target/linux/ramips/patches-4.4/0031-uvc-add-iPassion-iP2970-support.patch index cecca5b22c..ff834be429 100644 --- a/target/linux/ramips/patches-4.4/0031-uvc-add-iPassion-iP2970-support.patch +++ b/target/linux/ramips/patches-4.4/0031-uvc-add-iPassion-iP2970-support.patch @@ -13,7 +13,7 @@ Signed-off-by: John Crispin --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2665,6 +2665,18 @@ static struct usb_device_id uvc_ids[] = +@@ -2673,6 +2673,18 @@ static struct usb_device_id uvc_ids[] = .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_FORCE_Y8 }, @@ -64,7 +64,7 @@ Signed-off-by: John Crispin #include -@@ -1092,9 +1097,149 @@ static void uvc_video_decode_data(struct +@@ -1112,9 +1117,149 @@ static void uvc_video_decode_data(struct } } @@ -214,7 +214,7 @@ Signed-off-by: John Crispin /* Mark the buffer as done if the EOF marker is set. */ if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) { uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n"); -@@ -1507,6 +1652,8 @@ static int uvc_init_video_isoc(struct uv +@@ -1527,6 +1672,8 @@ static int uvc_init_video_isoc(struct uv if (npackets == 0) return -ENOMEM; diff --git a/target/linux/ramips/patches-4.4/0032-USB-dwc2-add-device_reset.patch b/target/linux/ramips/patches-4.4/0032-USB-dwc2-add-device_reset.patch index e77e02f677..4fccaeb7df 100644 --- a/target/linux/ramips/patches-4.4/0032-USB-dwc2-add-device_reset.patch +++ b/target/linux/ramips/patches-4.4/0032-USB-dwc2-add-device_reset.patch @@ -18,7 +18,7 @@ Signed-off-by: John Crispin #include #include -@@ -3002,6 +3003,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso +@@ -3006,6 +3007,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso retval = -ENOMEM; diff --git a/target/linux/ramips/patches-4.4/0033-xhci-mediatek-support-MTK-xHCI-host-controller.patch b/target/linux/ramips/patches-4.4/0033-xhci-mediatek-support-MTK-xHCI-host-controller.patch index 316e5d8fd4..afe3440276 100644 --- a/target/linux/ramips/patches-4.4/0033-xhci-mediatek-support-MTK-xHCI-host-controller.patch +++ b/target/linux/ramips/patches-4.4/0033-xhci-mediatek-support-MTK-xHCI-host-controller.patch @@ -1420,7 +1420,7 @@ Signed-off-by: Greg Kroah-Hartman /* * Returns zero if the TRB isn't in this segment, otherwise it returns the DMA -@@ -3113,17 +3114,22 @@ static u32 xhci_td_remainder(struct xhci +@@ -3116,17 +3117,22 @@ static u32 xhci_td_remainder(struct xhci { u32 maxp, total_packet_count; @@ -1447,7 +1447,7 @@ Signed-off-by: Greg Kroah-Hartman /* Queueing functions don't count the current TRB into transferred */ return (total_packet_count - ((transferred + trb_buff_len) / maxp)); } -@@ -3511,7 +3517,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * +@@ -3514,7 +3520,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * field |= 0x1; /* xHCI 1.0/1.1 6.4.1.2.1: Transfer Type field */ @@ -1479,7 +1479,7 @@ Signed-off-by: Greg Kroah-Hartman writel(temp, &xhci->ir_set->irq_control); /* Set the HCD state before we enable the irqs */ -@@ -1691,6 +1696,9 @@ int xhci_drop_endpoint(struct usb_hcd *h +@@ -1730,6 +1735,9 @@ int xhci_drop_endpoint(struct usb_hcd *h xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep); @@ -1489,7 +1489,7 @@ Signed-off-by: Greg Kroah-Hartman xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n", (unsigned int) ep->desc.bEndpointAddress, udev->slot_id, -@@ -1786,6 +1794,15 @@ int xhci_add_endpoint(struct usb_hcd *hc +@@ -1825,6 +1833,15 @@ int xhci_add_endpoint(struct usb_hcd *hc return -ENOMEM; } @@ -1507,7 +1507,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1634,6 +1634,7 @@ struct xhci_hcd { +@@ -1639,6 +1639,7 @@ struct xhci_hcd { /* For controllers with a broken beyond repair streams implementation */ #define XHCI_BROKEN_STREAMS (1 << 19) #define XHCI_PME_STUCK_QUIRK (1 << 20) diff --git a/target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch b/target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch index b6ab65a553..21e8644db4 100644 --- a/target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch +++ b/target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc +@@ -896,7 +896,8 @@ void phy_state_machine(struct work_struc /* If the link is down, give up on negotiation for now */ if (!phydev->link) { phydev->state = PHY_NOLINK; @@ -21,7 +21,7 @@ Signed-off-by: John Crispin phydev->adjust_link(phydev->attached_dev); break; } -@@ -982,7 +983,8 @@ void phy_state_machine(struct work_struc +@@ -988,7 +989,8 @@ void phy_state_machine(struct work_struc netif_carrier_on(phydev->attached_dev); } else { phydev->state = PHY_NOLINK; @@ -31,7 +31,7 @@ Signed-off-by: John Crispin } phydev->adjust_link(phydev->attached_dev); -@@ -994,7 +996,8 @@ void phy_state_machine(struct work_struc +@@ -1000,7 +1002,8 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; @@ -43,7 +43,7 @@ Signed-off-by: John Crispin } --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -377,6 +377,7 @@ struct phy_device { +@@ -373,6 +373,7 @@ struct phy_device { bool is_pseudo_fixed_link; bool has_fixups; bool suspended; diff --git a/target/linux/ramips/patches-4.4/0037-mtd-cfi-cmdset-0002-force-word-write.patch b/target/linux/ramips/patches-4.4/0037-mtd-cfi-cmdset-0002-force-word-write.patch index 8f274bca15..767fa6102e 100644 --- a/target/linux/ramips/patches-4.4/0037-mtd-cfi-cmdset-0002-force-word-write.patch +++ b/target/linux/ramips/patches-4.4/0037-mtd-cfi-cmdset-0002-force-word-write.patch @@ -16,7 +16,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write -#define FORCE_WORD_WRITE 0 +#define FORCE_WORD_WRITE 1 - #define MAX_WORD_RETRIES 3 + #define MAX_RETRIES 3 @@ -51,7 +51,9 @@ @@ -44,7 +44,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write /* Atmel chips don't use the same PRI format as AMD chips */ static void fixup_convert_atmel_pri(struct mtd_info *mtd) -@@ -1789,6 +1793,7 @@ static int cfi_amdstd_write_words(struct +@@ -1790,6 +1794,7 @@ static int cfi_amdstd_write_words(struct /* * FIXME: interleaved mode not tested, and probably not supported! */ @@ -52,7 +52,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, unsigned long adr, const u_char *buf, int len) -@@ -1917,7 +1922,6 @@ static int __xipram do_write_buffer(stru +@@ -1918,7 +1923,6 @@ static int __xipram do_write_buffer(stru return ret; } @@ -60,7 +60,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf) { -@@ -1992,6 +1996,7 @@ static int cfi_amdstd_write_buffers(stru +@@ -1993,6 +1997,7 @@ static int cfi_amdstd_write_buffers(stru return 0; } diff --git a/target/linux/ramips/patches-4.4/0039-mtd-add-mt7621-nand-support.patch b/target/linux/ramips/patches-4.4/0039-mtd-add-mt7621-nand-support.patch index b63018fde7..05fb18b8b3 100644 --- a/target/linux/ramips/patches-4.4/0039-mtd-add-mt7621-nand-support.patch +++ b/target/linux/ramips/patches-4.4/0039-mtd-add-mt7621-nand-support.patch @@ -4078,7 +4078,7 @@ Signed-off-by: John Crispin { struct nand_chip *chip = mtd->priv; -@@ -829,7 +829,7 @@ static void panic_nand_get_device(struct +@@ -834,7 +834,7 @@ static void panic_nand_get_device(struct * * Get the device and lock it for exclusive access */ diff --git a/target/linux/ramips/patches-4.4/0040-nand-add-mtk-nand-hack-hook.patch b/target/linux/ramips/patches-4.4/0040-nand-add-mtk-nand-hack-hook.patch index e7f4d893f6..9608f6c52e 100644 --- a/target/linux/ramips/patches-4.4/0040-nand-add-mtk-nand-hack-hook.patch +++ b/target/linux/ramips/patches-4.4/0040-nand-add-mtk-nand-hack-hook.patch @@ -100,7 +100,7 @@ Signed-off-by: John Crispin --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c -@@ -1727,6 +1727,9 @@ static int nand_do_read_ops(struct mtd_i +@@ -1732,6 +1732,9 @@ static int nand_do_read_ops(struct mtd_i __func__, buf); read_retry: @@ -110,7 +110,7 @@ Signed-off-by: John Crispin chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, page); /* -@@ -1745,6 +1748,7 @@ read_retry: +@@ -1750,6 +1753,7 @@ read_retry: else ret = chip->ecc.read_page(mtd, chip, bufpoi, oob_required, page); @@ -118,7 +118,7 @@ Signed-off-by: John Crispin if (ret < 0) { if (use_bufpoi) /* Invalidate page cache */ -@@ -2935,8 +2939,11 @@ int nand_erase_nand(struct mtd_info *mtd +@@ -2943,8 +2947,11 @@ int nand_erase_nand(struct mtd_info *mtd if (page <= chip->pagebuf && chip->pagebuf < (page + pages_per_block)) chip->pagebuf = -1; diff --git a/target/linux/ramips/patches-4.4/0046-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch b/target/linux/ramips/patches-4.4/0046-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch index 3ec5fbc417..c51141c828 100644 --- a/target/linux/ramips/patches-4.4/0046-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch +++ b/target/linux/ramips/patches-4.4/0046-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch @@ -25,7 +25,7 @@ Signed-off-by: John Crispin --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig -@@ -786,3 +786,5 @@ config MMC_MTK +@@ -780,3 +780,5 @@ config MMC_MTK If you have a machine with a integrated SD/MMC card reader, say Y or M here. This is needed if support for any SD/SDIO/MMC devices is required. If unsure, say N. diff --git a/target/linux/ramips/patches-4.4/0054-mtd-add-chunked-read-io-to-m25p80.patch b/target/linux/ramips/patches-4.4/0054-mtd-add-chunked-read-io-to-m25p80.patch index 7a01846ae1..8ac0b6e305 100644 --- a/target/linux/ramips/patches-4.4/0054-mtd-add-chunked-read-io-to-m25p80.patch +++ b/target/linux/ramips/patches-4.4/0054-mtd-add-chunked-read-io-to-m25p80.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -1014,6 +1014,66 @@ write_err: +@@ -1020,6 +1020,66 @@ write_err: return ret; } @@ -67,7 +67,7 @@ static int macronix_quad_enable(struct spi_nor *nor) { int ret, val; -@@ -1201,10 +1261,12 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -1207,10 +1267,12 @@ int spi_nor_scan(struct spi_nor *nor, co } /* sst nor chips use AAI word program */ @@ -82,7 +82,7 @@ if (info->flags & USE_FSR) nor->flags |= SNOR_F_USE_FSR; -@@ -1232,11 +1294,20 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -1238,11 +1300,20 @@ int spi_nor_scan(struct spi_nor *nor, co mtd->writebufsize = nor->page_size; if (np) { diff --git a/target/linux/ramips/patches-4.4/0511-net-mediatek-add-support-for-the-multiphy-carrier-pa.patch b/target/linux/ramips/patches-4.4/0511-net-mediatek-add-support-for-the-multiphy-carrier-pa.patch index 643c68731c..4d5c2d8744 100644 --- a/target/linux/ramips/patches-4.4/0511-net-mediatek-add-support-for-the-multiphy-carrier-pa.patch +++ b/target/linux/ramips/patches-4.4/0511-net-mediatek-add-support-for-the-multiphy-carrier-pa.patch @@ -25,7 +25,7 @@ Signed-off-by: John Crispin return IRQ_HANDLED; --- a/drivers/net/ethernet/mediatek/gsw_mt7620.h +++ b/drivers/net/ethernet/mediatek/gsw_mt7620.h -@@ -119,5 +119,6 @@ u32 mt7530_mdio_r32(struct mt7620_gsw *g +@@ -113,5 +113,6 @@ u32 mt7530_mdio_r32(struct mt7620_gsw *g u32 _mt7620_mii_write(struct mt7620_gsw *gsw, u32 phy_addr, u32 phy_register, u32 write_data); u32 _mt7620_mii_read(struct mt7620_gsw *gsw, int phy_addr, int phy_reg); diff --git a/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch b/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch index 35d1bd0c74..10db0765c2 100644 --- a/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch +++ b/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch @@ -51,7 +51,7 @@ Signed-off-by: John Crispin #define GSW_REG_PORT_PMCR(x) (0x3000 + (x * 0x100)) #define GSW_REG_PORT_STATUS(x) (0x3008 + (x * 0x100)) #define GSW_REG_SMACCR0 0x3fE4 -@@ -82,6 +84,7 @@ +@@ -76,6 +78,7 @@ #define PHY_PRE_EN BIT(30) #define PMY_MDC_CONF(_x) ((_x & 0x3f) << 24) diff --git a/target/linux/ramips/patches-4.4/0901-spansion_nand_id_fix.patch b/target/linux/ramips/patches-4.4/0901-spansion_nand_id_fix.patch index 7091085958..a023284a4d 100644 --- a/target/linux/ramips/patches-4.4/0901-spansion_nand_id_fix.patch +++ b/target/linux/ramips/patches-4.4/0901-spansion_nand_id_fix.patch @@ -13,7 +13,7 @@ Signed-off-by: Nikolay Martynov --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c -@@ -3571,6 +3571,7 @@ static void nand_decode_ext_id(struct mt +@@ -3579,6 +3579,7 @@ static void nand_decode_ext_id(struct mt /* * Field definitions are in the following datasheets: * Old style (4,5 byte ID): Samsung K9GAG08U0M (p.32) @@ -21,7 +21,7 @@ Signed-off-by: Nikolay Martynov * New Samsung (6 byte ID): Samsung K9GAG08U0F (p.44) * Hynix MLC (6 byte ID): Hynix H27UBG8T2B (p.22) * -@@ -3668,6 +3669,19 @@ static void nand_decode_ext_id(struct mt +@@ -3676,6 +3677,19 @@ static void nand_decode_ext_id(struct mt *busw = (extid & 0x01) ? NAND_BUSWIDTH_16 : 0; /* diff --git a/target/linux/ramips/patches-4.4/0902-mediatek-4-byte-spi-reset.patch b/target/linux/ramips/patches-4.4/0902-mediatek-4-byte-spi-reset.patch index 2ef5cf0a3d..d13647329c 100644 --- a/target/linux/ramips/patches-4.4/0902-mediatek-4-byte-spi-reset.patch +++ b/target/linux/ramips/patches-4.4/0902-mediatek-4-byte-spi-reset.patch @@ -1,5 +1,3 @@ -diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c -index fe9ceb7..2151975 100644 --- a/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c @@ -27,6 +27,9 @@ @@ -12,7 +10,7 @@ index fe9ceb7..2151975 100644 #define MAX_CMD_SIZE 6 struct m25p { struct spi_device *spi; -@@ -168,6 +171,17 @@ static int m25p80_erase(struct spi_nor *nor, loff_t offset) +@@ -190,6 +193,17 @@ static int m25p80_erase(struct spi_nor * return 0; } @@ -30,7 +28,7 @@ index fe9ceb7..2151975 100644 /* * board specific setup should have ensured the SPI clock used here * matches what the READ command supports, at least until this driver -@@ -197,6 +211,7 @@ static int m25p_probe(struct spi_device *spi) +@@ -219,6 +233,7 @@ static int m25p_probe(struct spi_device nor->erase = m25p80_erase; nor->write_reg = m25p80_write_reg; nor->read_reg = m25p80_read_reg; @@ -38,6 +36,3 @@ index fe9ceb7..2151975 100644 nor->dev = &spi->dev; nor->flash_node = spi->dev.of_node; --- -2.9.3 -