From: Koen Vandeputte Date: Tue, 4 Feb 2020 11:04:59 +0000 (+0100) Subject: kernel: bump 4.14 to 4.14.169 X-Git-Tag: v21.02.0-rc1~3868 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=1b310cff0f108cee59974f3c98dbd403da2960a0;p=openwrt%2Fstaging%2Fhauke.git kernel: bump 4.14 to 4.14.169 Refreshed all patches. Fixes: - CVE-2019-14896 - CVE-2019-14897 Remove upstreamed: - 023-0007-crypto-crypto4xx-Fix-wrong-ppc4xx_trng_probe-ppc4xx_.patch - 001-4.22-01-MIPS-BCM63XX-drop-unused-and-broken-DSP-platform-dev.patch Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte --- diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 429256f400..6c67b04fb3 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,10 +6,10 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-4.14 = .167 +LINUX_VERSION-4.14 = .169 LINUX_VERSION-4.19 = .98 -LINUX_KERNEL_HASH-4.14.167 = 2bb78fc7a902faf4f5dad47fdbc2f4bf3df3cf9b41f408e7260f36656659fe43 +LINUX_KERNEL_HASH-4.14.169 = d88ea97993c56b1fa0b0a05061bcde476c6be4fc3bb2de8bd97a8f8ff7278249 LINUX_KERNEL_HASH-4.19.98 = 91feb13bc22d60d69596ab1d01dfecbec13ef70f00c89a483e0733af94dd2937 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/apm821xx/patches-4.14/023-0007-crypto-crypto4xx-Fix-wrong-ppc4xx_trng_probe-ppc4xx_.patch b/target/linux/apm821xx/patches-4.14/023-0007-crypto-crypto4xx-Fix-wrong-ppc4xx_trng_probe-ppc4xx_.patch deleted file mode 100644 index d2c3848820..0000000000 --- a/target/linux/apm821xx/patches-4.14/023-0007-crypto-crypto4xx-Fix-wrong-ppc4xx_trng_probe-ppc4xx_.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 6e88098ca43a3d80ae86908f7badba683c8a0d84 Mon Sep 17 00:00:00 2001 -From: Corentin Labbe -Date: Wed, 23 Jan 2019 11:24:18 +0000 -Subject: [PATCH 07/15] crypto: crypto4xx - Fix wrong - ppc4xx_trng_probe()/ppc4xx_trng_remove() arguments - -When building without CONFIG_HW_RANDOM_PPC4XX, I hit the following build failure: -drivers/crypto/amcc/crypto4xx_core.c: In function 'crypto4xx_probe': -drivers/crypto/amcc/crypto4xx_core.c:1407:20: error: passing argument 1 of 'ppc4xx_trng_probe' from incompatible pointer type [-Werror=incompatible-pointer-types] -In file included from drivers/crypto/amcc/crypto4xx_core.c:50:0: -drivers/crypto/amcc/crypto4xx_trng.h:28:20: note: expected 'struct crypto4xx_device *' but argument is of type 'struct crypto4xx_core_device *' -drivers/crypto/amcc/crypto4xx_core.c: In function 'crypto4xx_remove': -drivers/crypto/amcc/crypto4xx_core.c:1434:21: error: passing argument 1 of 'ppc4xx_trng_remove' from incompatible pointer type [-Werror=incompatible-pointer-types] -In file included from drivers/crypto/amcc/crypto4xx_core.c:50:0: -drivers/crypto/amcc/crypto4xx_trng.h:30:20: note: expected 'struct crypto4xx_device *' but argument is of type 'struct crypto4xx_core_device *' - -This patch fix the needed argument of ppc4xx_trng_probe()/ppc4xx_trng_remove() in that case. - -Fixes: 5343e674f32f ("crypto4xx: integrate ppc4xx-rng into crypto4xx") -Signed-off-by: Corentin Labbe -Signed-off-by: Herbert Xu ---- - drivers/crypto/amcc/crypto4xx_trng.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/crypto/amcc/crypto4xx_trng.h -+++ b/drivers/crypto/amcc/crypto4xx_trng.h -@@ -26,9 +26,9 @@ void ppc4xx_trng_probe(struct crypto4xx_ - void ppc4xx_trng_remove(struct crypto4xx_core_device *core_dev); - #else - static inline void ppc4xx_trng_probe( -- struct crypto4xx_device *dev __maybe_unused) { } -+ struct crypto4xx_core_device *dev __maybe_unused) { } - static inline void ppc4xx_trng_remove( -- struct crypto4xx_device *dev __maybe_unused) { } -+ struct crypto4xx_core_device *dev __maybe_unused) { } - #endif - - #endif diff --git a/target/linux/bcm53xx/patches-4.14/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch b/target/linux/bcm53xx/patches-4.14/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch index 49dd89c2d7..d79b2d0b70 100644 --- a/target/linux/bcm53xx/patches-4.14/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch +++ b/target/linux/bcm53xx/patches-4.14/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch @@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -1222,6 +1222,18 @@ static const struct flash_info *spi_nor_ +@@ -1226,6 +1226,18 @@ static const struct flash_info *spi_nor_ } dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n", id[0], id[1], id[2]); diff --git a/target/linux/brcm63xx/patches-4.14/001-4.22-01-MIPS-BCM63XX-drop-unused-and-broken-DSP-platform-dev.patch b/target/linux/brcm63xx/patches-4.14/001-4.22-01-MIPS-BCM63XX-drop-unused-and-broken-DSP-platform-dev.patch deleted file mode 100644 index ac03e643b3..0000000000 --- a/target/linux/brcm63xx/patches-4.14/001-4.22-01-MIPS-BCM63XX-drop-unused-and-broken-DSP-platform-dev.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 51559154375fff4a94bbbc249fdd9248a80827b3 Mon Sep 17 00:00:00 2001 -From: Jonas Gorski -Date: Tue, 18 Dec 2018 10:19:02 +0100 -Subject: [PATCH] MIPS: BCM63XX: drop unused and broken DSP platform device - -Trying to register the DSP platform device results in a null pointer -access: - -[ 0.124184] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 804e305c, ra == 804e6f20 -[ 0.135208] Oops[#1]: -[ 0.137514] CPU: 0 PID: 1 Comm: swapper Not tainted 4.14.87 -... -[ 0.197117] epc : 804e305c bcm63xx_dsp_register+0x80/0xa4 -[ 0.202838] ra : 804e6f20 board_register_devices+0x258/0x390 -... - -This happens because it tries to copy the passed platform data over the -platform_device's unpopulated platform_data. - -Since this code has been broken since its submission, no driver was ever -submitted for it, and apparently nobody was using it, just remove it -instead of trying to fix it. - -Fixes: e7300d04bd08 ("MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs.") -Signed-off-by: Jonas Gorski ---- - arch/mips/bcm63xx/Makefile | 6 +-- - arch/mips/bcm63xx/boards/board_bcm963xx.c | 20 -------- - arch/mips/bcm63xx/dev-dsp.c | 56 ---------------------- - .../include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h | 14 ------ - .../mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 5 -- - 5 files changed, 3 insertions(+), 98 deletions(-) - delete mode 100644 arch/mips/bcm63xx/dev-dsp.c - delete mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h - ---- a/arch/mips/bcm63xx/Makefile -+++ b/arch/mips/bcm63xx/Makefile -@@ -1,8 +1,8 @@ - # SPDX-License-Identifier: GPL-2.0 - obj-y += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o reset.o \ -- setup.o timer.o dev-dsp.o dev-enet.o dev-flash.o \ -- dev-pcmcia.o dev-rng.o dev-spi.o dev-hsspi.o dev-uart.o \ -- dev-wdt.o dev-usb-usbd.o -+ setup.o timer.o dev-enet.o dev-flash.o dev-pcmcia.o \ -+ dev-rng.o dev-spi.o dev-hsspi.o dev-uart.o dev-wdt.o \ -+ dev-usb-usbd.o - obj-$(CONFIG_EARLY_PRINTK) += early_printk.o - - obj-y += boards/ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -23,7 +23,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -289,14 +288,6 @@ static struct board_info __initdata boar - .has_pccard = 1, - .has_ehci0 = 1, - -- .has_dsp = 1, -- .dsp = { -- .gpio_rst = 6, -- .gpio_int = 34, -- .cs = 2, -- .ext_irq = 2, -- }, -- - .leds = { - { - .name = "adsl-fail", -@@ -401,14 +392,6 @@ static struct board_info __initdata boar - - .has_ohci0 = 1, - -- .has_dsp = 1, -- .dsp = { -- .gpio_rst = 6, -- .gpio_int = 34, -- .ext_irq = 2, -- .cs = 2, -- }, -- - .leds = { - { - .name = "adsl-fail", -@@ -898,9 +881,6 @@ int __init board_register_devices(void) - if (board.has_usbd) - bcm63xx_usbd_register(&board.usbd); - -- if (board.has_dsp) -- bcm63xx_dsp_register(&board.dsp); -- - /* Generate MAC address for WLAN and register our SPROM, - * do this after registering enet devices - */ ---- a/arch/mips/bcm63xx/dev-dsp.c -+++ /dev/null -@@ -1,56 +0,0 @@ --/* -- * Broadcom BCM63xx VoIP DSP registration -- * -- * This file is subject to the terms and conditions of the GNU General Public -- * License. See the file "COPYING" in the main directory of this archive -- * for more details. -- * -- * Copyright (C) 2009 Florian Fainelli -- */ -- --#include --#include --#include -- --#include --#include --#include --#include -- --static struct resource voip_dsp_resources[] = { -- { -- .start = -1, /* filled at runtime */ -- .end = -1, /* filled at runtime */ -- .flags = IORESOURCE_MEM, -- }, -- { -- .start = -1, /* filled at runtime */ -- .flags = IORESOURCE_IRQ, -- }, --}; -- --static struct platform_device bcm63xx_voip_dsp_device = { -- .name = "bcm63xx-voip-dsp", -- .id = -1, -- .num_resources = ARRAY_SIZE(voip_dsp_resources), -- .resource = voip_dsp_resources, --}; -- --int __init bcm63xx_dsp_register(const struct bcm63xx_dsp_platform_data *pd) --{ -- struct bcm63xx_dsp_platform_data *dpd; -- u32 val; -- -- /* Get the memory window */ -- val = bcm_mpi_readl(MPI_CSBASE_REG(pd->cs - 1)); -- val &= MPI_CSBASE_BASE_MASK; -- voip_dsp_resources[0].start = val; -- voip_dsp_resources[0].end = val + 0xFFFFFFF; -- voip_dsp_resources[1].start = pd->ext_irq; -- -- /* copy given platform data */ -- dpd = bcm63xx_voip_dsp_device.dev.platform_data; -- memcpy(dpd, pd, sizeof (*pd)); -- -- return platform_device_register(&bcm63xx_voip_dsp_device); --} ---- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h -+++ /dev/null -@@ -1,14 +0,0 @@ --/* SPDX-License-Identifier: GPL-2.0 */ --#ifndef __BCM63XX_DSP_H --#define __BCM63XX_DSP_H -- --struct bcm63xx_dsp_platform_data { -- unsigned gpio_rst; -- unsigned gpio_int; -- unsigned cs; -- unsigned ext_irq; --}; -- --int __init bcm63xx_dsp_register(const struct bcm63xx_dsp_platform_data *pd); -- --#endif /* __BCM63XX_DSP_H */ ---- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h -+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h -@@ -7,7 +7,6 @@ - #include - #include - #include --#include - - /* - * flash mapping -@@ -31,7 +30,6 @@ struct board_info { - unsigned int has_ohci0:1; - unsigned int has_ehci0:1; - unsigned int has_usbd:1; -- unsigned int has_dsp:1; - unsigned int has_uart0:1; - unsigned int has_uart1:1; - -@@ -43,9 +41,6 @@ struct board_info { - /* USB config */ - struct bcm63xx_usbd_platform_data usbd; - -- /* DSP config */ -- struct bcm63xx_dsp_platform_data dsp; -- - /* GPIO LEDs */ - struct gpio_led leds[5]; - diff --git a/target/linux/generic/hack-4.14/645-netfilter-connmark-introduce-set-dscpmark.patch b/target/linux/generic/hack-4.14/645-netfilter-connmark-introduce-set-dscpmark.patch index 88c8c7f3ef..1ecc95bf22 100644 --- a/target/linux/generic/hack-4.14/645-netfilter-connmark-introduce-set-dscpmark.patch +++ b/target/linux/generic/hack-4.14/645-netfilter-connmark-introduce-set-dscpmark.patch @@ -80,11 +80,9 @@ Signed-off-by: Kevin Darbyshire-Bryant net/netfilter/xt_connmark.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) -diff --git a/net/netfilter/xt_connmark.c b/net/netfilter/xt_connmark.c -index ec377cc6a369..823d925b3aaf 100644 --- a/net/netfilter/xt_connmark.c +++ b/net/netfilter/xt_connmark.c -@@ -42,6 +42,7 @@ connmark_tg(struct sk_buff *skb, const struct xt_action_param *par) +@@ -42,6 +42,7 @@ connmark_tg(struct sk_buff *skb, const s enum ip_conntrack_info ctinfo; struct nf_conn *ct; u_int32_t newmark; @@ -92,7 +90,7 @@ index ec377cc6a369..823d925b3aaf 100644 ct = nf_ct_get(skb, &ctinfo); if (ct == NULL) -@@ -49,7 +50,21 @@ connmark_tg(struct sk_buff *skb, const struct xt_action_param *par) +@@ -49,7 +50,21 @@ connmark_tg(struct sk_buff *skb, const s switch (info->mode) { case XT_CONNMARK_SET: @@ -115,7 +113,7 @@ index ec377cc6a369..823d925b3aaf 100644 if (ct->mark != newmark) { ct->mark = newmark; nf_conntrack_event_cache(IPCT_MARK, ct); -@@ -57,7 +72,7 @@ connmark_tg(struct sk_buff *skb, const struct xt_action_param *par) +@@ -57,7 +72,7 @@ connmark_tg(struct sk_buff *skb, const s break; case XT_CONNMARK_SAVE: newmark = (ct->mark & ~info->ctmask) ^ @@ -124,6 +122,3 @@ index ec377cc6a369..823d925b3aaf 100644 if (ct->mark != newmark) { ct->mark = newmark; nf_conntrack_event_cache(IPCT_MARK, ct); --- -2.21.0 (Apple Git-122.2) - diff --git a/target/linux/generic/hack-4.14/702-phy_add_aneg_done_function.patch b/target/linux/generic/hack-4.14/702-phy_add_aneg_done_function.patch index 97bbee96a9..cc84311ef9 100644 --- a/target/linux/generic/hack-4.14/702-phy_add_aneg_done_function.patch +++ b/target/linux/generic/hack-4.14/702-phy_add_aneg_done_function.patch @@ -15,7 +15,7 @@ --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1461,6 +1461,9 @@ int genphy_update_link(struct phy_device +@@ -1462,6 +1462,9 @@ int genphy_update_link(struct phy_device { int status; diff --git a/target/linux/generic/pending-4.14/630-packet_socket_type.patch b/target/linux/generic/pending-4.14/630-packet_socket_type.patch index 1c9af3f2b2..a4737b23ef 100644 --- a/target/linux/generic/pending-4.14/630-packet_socket_type.patch +++ b/target/linux/generic/pending-4.14/630-packet_socket_type.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1830,6 +1830,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1836,6 +1836,7 @@ static int packet_rcv_spkt(struct sk_buf { struct sock *sk; struct sockaddr_pkt *spkt; @@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau /* * When we registered the protocol we saved the socket in the data -@@ -1837,6 +1838,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1843,6 +1844,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau /* * Yank back the headers [hope the device set this -@@ -1849,7 +1851,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1855,7 +1857,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -2076,12 +2078,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -2082,12 +2084,12 @@ static int packet_rcv(struct sk_buff *sk unsigned int snaplen, res; bool is_drop_n_account = false; @@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2207,12 +2209,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2213,12 +2215,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); @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3295,6 +3297,7 @@ static int packet_create(struct net *net +@@ -3301,6 +3303,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3908,6 +3911,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3923,6 +3926,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3960,6 +3973,13 @@ static int packet_getsockopt(struct sock +@@ -3975,6 +3988,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch index 6e2eca6daf..96c8ae9c12 100644 --- a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch @@ -350,7 +350,7 @@ Signed-off-by: Steven Barth memcpy(p->name, u->name, sizeof(u->name)); } -@@ -1922,6 +2084,15 @@ static int ip6_tnl_validate(struct nlatt +@@ -1920,6 +2082,15 @@ static int ip6_tnl_validate(struct nlatt return 0; } @@ -366,7 +366,7 @@ Signed-off-by: Steven Barth static void ip6_tnl_netlink_parms(struct nlattr *data[], struct __ip6_tnl_parm *parms) { -@@ -1959,6 +2130,46 @@ static void ip6_tnl_netlink_parms(struct +@@ -1957,6 +2128,46 @@ static void ip6_tnl_netlink_parms(struct if (data[IFLA_IPTUN_FWMARK]) parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]); @@ -413,7 +413,7 @@ Signed-off-by: Steven Barth } static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[], -@@ -2074,6 +2285,12 @@ static void ip6_tnl_dellink(struct net_d +@@ -2072,6 +2283,12 @@ static void ip6_tnl_dellink(struct net_d static size_t ip6_tnl_get_size(const struct net_device *dev) { @@ -426,7 +426,7 @@ Signed-off-by: Steven Barth return /* IFLA_IPTUN_LINK */ nla_total_size(4) + -@@ -2103,6 +2320,24 @@ static size_t ip6_tnl_get_size(const str +@@ -2101,6 +2318,24 @@ static size_t ip6_tnl_get_size(const str nla_total_size(0) + /* IFLA_IPTUN_FWMARK */ nla_total_size(4) + @@ -451,7 +451,7 @@ Signed-off-by: Steven Barth 0; } -@@ -2110,6 +2345,9 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2108,6 +2343,9 @@ static int ip6_tnl_fill_info(struct sk_b { struct ip6_tnl *tunnel = netdev_priv(dev); struct __ip6_tnl_parm *parm = &tunnel->parms; @@ -461,7 +461,7 @@ Signed-off-by: Steven Barth if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || -@@ -2119,9 +2357,27 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2117,9 +2355,27 @@ static int ip6_tnl_fill_info(struct sk_b nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) || nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) || @@ -490,7 +490,7 @@ Signed-off-by: Steven Barth if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) || -@@ -2161,6 +2417,7 @@ static const struct nla_policy ip6_tnl_p +@@ -2159,6 +2415,7 @@ static const struct nla_policy ip6_tnl_p [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 }, [IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG }, [IFLA_IPTUN_FWMARK] = { .type = NLA_U32 }, diff --git a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 8919ea34ec..067de75f3c 100644 --- a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); } -@@ -6970,6 +7017,7 @@ int dev_set_mac_address(struct net_devic +@@ -6961,6 +7008,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-4.14/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-4.14/703-phy-add-detach-callback-to-struct-phy_driver.patch index 4ba722183c..d49fdc77ab 100644 --- a/target/linux/generic/pending-4.14/703-phy-add-detach-callback-to-struct-phy_driver.patch +++ b/target/linux/generic/pending-4.14/703-phy-add-detach-callback-to-struct-phy_driver.patch @@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1105,6 +1105,9 @@ void phy_detach(struct phy_device *phyde +@@ -1106,6 +1106,9 @@ void phy_detach(struct phy_device *phyde struct module *ndev_owner = dev->dev.parent->driver->owner; struct mii_bus *bus; diff --git a/target/linux/ipq40xx/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch b/target/linux/ipq40xx/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch index 01de239814..b77ab89e66 100644 --- a/target/linux/ipq40xx/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch +++ b/target/linux/ipq40xx/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch @@ -8,7 +8,7 @@ { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) }, { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) }, { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, -@@ -1201,11 +1202,12 @@ static const struct flash_info spi_nor_i +@@ -1205,11 +1206,12 @@ static const struct flash_info spi_nor_i { }, }; @@ -23,7 +23,7 @@ tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN); if (tmp < 0) { -@@ -1216,10 +1218,16 @@ static const struct flash_info *spi_nor_ +@@ -1220,10 +1222,16 @@ static const struct flash_info *spi_nor_ for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) { info = &spi_nor_ids[tmp]; if (info->id_len) { @@ -42,7 +42,7 @@ dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n", id[0], id[1], id[2]); return ERR_PTR(-ENODEV); -@@ -2679,7 +2687,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2683,7 +2691,7 @@ int spi_nor_scan(struct spi_nor *nor, co info = spi_nor_match_id(name); /* Try to auto-detect if chip name wasn't specified or not found */ if (!info) @@ -51,7 +51,7 @@ if (IS_ERR_OR_NULL(info)) return -ENOENT; -@@ -2690,7 +2698,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2694,7 +2702,7 @@ int spi_nor_scan(struct spi_nor *nor, co if (name && info->id_len) { const struct flash_info *jinfo; diff --git a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch index f0926d088d..784b10dd50 100644 --- a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch @@ -77,8 +77,8 @@ Signed-off-by: Yangbo Lu * * A side effect of the link creation is re-ordering of dpm_list and the * devices_kset list by moving the consumer device and all devices depending -@@ -182,7 +182,8 @@ struct device_link *device_link_add(stru - struct device_link *link; +@@ -183,7 +183,8 @@ struct device_link *device_link_add(stru + bool rpm_put_supplier = false; if (!consumer || !supplier || - ((flags & DL_FLAG_STATELESS) && (flags & DL_FLAG_AUTOREMOVE))) @@ -86,8 +86,8 @@ Signed-off-by: Yangbo Lu + (flags & DL_FLAG_AUTOREMOVE_CONSUMER))) return NULL; - device_links_write_lock(); -@@ -200,8 +201,10 @@ struct device_link *device_link_add(stru + if (flags & DL_FLAG_PM_RUNTIME && flags & DL_FLAG_RPM_ACTIVE) { +@@ -209,8 +210,10 @@ struct device_link *device_link_add(stru } list_for_each_entry(link, &supplier->links.consumers, s_node) @@ -99,7 +99,7 @@ Signed-off-by: Yangbo Lu link = kzalloc(sizeof(*link), GFP_KERNEL); if (!link) -@@ -233,6 +236,7 @@ struct device_link *device_link_add(stru +@@ -237,6 +240,7 @@ struct device_link *device_link_add(stru link->consumer = consumer; INIT_LIST_HEAD(&link->c_node); link->flags = flags; @@ -107,7 +107,7 @@ Signed-off-by: Yangbo Lu /* Determine the initial link state. */ if (flags & DL_FLAG_STATELESS) { -@@ -303,8 +307,10 @@ static void __device_link_free_srcu(stru +@@ -311,8 +315,10 @@ static void __device_link_free_srcu(stru device_link_free(container_of(rhead, struct device_link, rcu_head)); } @@ -119,7 +119,7 @@ Signed-off-by: Yangbo Lu dev_info(link->consumer, "Dropping the link to %s\n", dev_name(link->supplier)); -@@ -316,8 +322,10 @@ static void __device_link_del(struct dev +@@ -324,8 +330,10 @@ static void __device_link_del(struct dev call_srcu(&device_links_srcu, &link->rcu_head, __device_link_free_srcu); } #else /* !CONFIG_SRCU */ @@ -131,7 +131,7 @@ Signed-off-by: Yangbo Lu dev_info(link->consumer, "Dropping the link to %s\n", dev_name(link->supplier)); -@@ -335,18 +343,50 @@ static void __device_link_del(struct dev +@@ -343,18 +351,50 @@ static void __device_link_del(struct dev * @link: Device link to delete. * * The caller must ensure proper synchronization of this function with runtime @@ -184,7 +184,7 @@ Signed-off-by: Yangbo Lu static void device_links_missing_supplier(struct device *dev) { struct device_link *link; -@@ -454,8 +494,8 @@ static void __device_links_no_driver(str +@@ -462,8 +502,8 @@ static void __device_links_no_driver(str if (link->flags & DL_FLAG_STATELESS) continue; @@ -195,7 +195,7 @@ Signed-off-by: Yangbo Lu else if (link->status != DL_STATE_SUPPLIER_UNBIND) WRITE_ONCE(link->status, DL_STATE_AVAILABLE); } -@@ -490,8 +530,18 @@ void device_links_driver_cleanup(struct +@@ -498,8 +538,18 @@ void device_links_driver_cleanup(struct if (link->flags & DL_FLAG_STATELESS) continue; @@ -215,7 +215,7 @@ Signed-off-by: Yangbo Lu WRITE_ONCE(link->status, DL_STATE_DORMANT); } -@@ -608,13 +658,13 @@ static void device_links_purge(struct de +@@ -616,13 +666,13 @@ static void device_links_purge(struct de list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) { WARN_ON(link->status == DL_STATE_ACTIVE); @@ -231,7 +231,7 @@ Signed-off-by: Yangbo Lu } device_links_write_unlock(); -@@ -1036,6 +1086,34 @@ static ssize_t online_store(struct devic +@@ -1044,6 +1094,34 @@ static ssize_t online_store(struct devic } static DEVICE_ATTR_RW(online); @@ -266,7 +266,7 @@ Signed-off-by: Yangbo Lu int device_add_groups(struct device *dev, const struct attribute_group **groups) { return sysfs_create_groups(&dev->kobj, groups); -@@ -1207,8 +1285,20 @@ static int device_add_attrs(struct devic +@@ -1215,8 +1293,20 @@ static int device_add_attrs(struct devic goto err_remove_dev_groups; } @@ -287,7 +287,7 @@ Signed-off-by: Yangbo Lu err_remove_dev_groups: device_remove_groups(dev, dev->groups); err_remove_type_groups: -@@ -1226,6 +1316,8 @@ static void device_remove_attrs(struct d +@@ -1234,6 +1324,8 @@ static void device_remove_attrs(struct d struct class *class = dev->class; const struct device_type *type = dev->type; @@ -462,7 +462,7 @@ Signed-off-by: Yangbo Lu extern int __must_check bus_create_file(struct bus_type *, struct bus_attribute *); -@@ -750,14 +752,16 @@ enum device_link_state { +@@ -751,14 +753,16 @@ enum device_link_state { * Device link flags. * * STATELESS: The core won't track the presence of supplier/consumer drivers. @@ -484,7 +484,7 @@ Signed-off-by: Yangbo Lu /** * struct device_link - Device link representation. -@@ -768,6 +772,7 @@ enum device_link_state { +@@ -769,6 +773,7 @@ enum device_link_state { * @status: The state of the link (with respect to the presence of drivers). * @flags: Link flags. * @rpm_active: Whether or not the consumer device is runtime-PM-active. @@ -492,7 +492,7 @@ Signed-off-by: Yangbo Lu * @rcu_head: An RCU head to use for deferred execution of SRCU callbacks. */ struct device_link { -@@ -778,6 +783,7 @@ struct device_link { +@@ -779,6 +784,7 @@ struct device_link { enum device_link_state status; u32 flags; bool rpm_active; @@ -500,7 +500,7 @@ Signed-off-by: Yangbo Lu #ifdef CONFIG_SRCU struct rcu_head rcu_head; #endif -@@ -850,6 +856,8 @@ struct dev_links_info { +@@ -851,6 +857,8 @@ struct dev_links_info { * @coherent_dma_mask: Like dma_mask, but for alloc_coherent mapping as not all * hardware supports 64-bit addresses for consistent allocations * such descriptors. @@ -509,7 +509,7 @@ Signed-off-by: Yangbo Lu * @dma_pfn_offset: offset of DMA memory range relatively of RAM * @dma_parms: A low level driver may set these to teach IOMMU code about * segment limitations. -@@ -929,6 +937,7 @@ struct device { +@@ -930,6 +938,7 @@ struct device { not all hardware supports 64 bit addresses for consistent allocations such descriptors. */ @@ -517,7 +517,7 @@ Signed-off-by: Yangbo Lu unsigned long dma_pfn_offset; struct device_dma_parameters *dma_parms; -@@ -1267,6 +1276,7 @@ extern const char *dev_driver_string(con +@@ -1268,6 +1277,7 @@ extern const char *dev_driver_string(con struct device_link *device_link_add(struct device *consumer, struct device *supplier, u32 flags); void device_link_del(struct device_link *link); diff --git a/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch b/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch index 871a8068cb..919bb30cfc 100644 --- a/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch @@ -607,9 +607,9 @@ Signed-off-by: Zhao Qiang +}; + &enet0 { - tbi-handle = <&tbi1>; + tbi-handle = <&tbi0>; phy-handle = <&sgmii_phy2>; -@@ -228,6 +243,10 @@ +@@ -235,6 +250,10 @@ }; }; @@ -620,7 +620,7 @@ Signed-off-by: Zhao Qiang &sai1 { status = "okay"; }; -@@ -243,3 +262,11 @@ +@@ -250,3 +269,11 @@ &uart1 { status = "okay"; }; @@ -740,7 +740,7 @@ Signed-off-by: Zhao Qiang dcu: dcu@2ce0000 { compatible = "fsl,ls1021a-dcu"; reg = <0x0 0x2ce0000 0x0 0x10000>; -@@ -684,6 +734,11 @@ +@@ -693,6 +743,11 @@ dr_mode = "host"; snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; @@ -752,7 +752,7 @@ Signed-off-by: Zhao Qiang }; pcie@3400000 { -@@ -691,7 +746,9 @@ +@@ -700,7 +755,9 @@ reg = <0x00 0x03400000 0x0 0x00010000 /* controller registers */ 0x40 0x00000000 0x0 0x00002000>; /* configuration space */ reg-names = "regs", "config"; @@ -763,7 +763,7 @@ Signed-off-by: Zhao Qiang fsl,pcie-scfg = <&scfg 0>; #address-cells = <3>; #size-cells = <2>; -@@ -707,6 +764,7 @@ +@@ -716,6 +773,7 @@ <0000 0 0 2 &gic GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 4 &gic GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; @@ -771,7 +771,7 @@ Signed-off-by: Zhao Qiang }; pcie@3500000 { -@@ -714,7 +772,9 @@ +@@ -723,7 +781,9 @@ reg = <0x00 0x03500000 0x0 0x00010000 /* controller registers */ 0x48 0x00000000 0x0 0x00002000>; /* configuration space */ reg-names = "regs", "config"; @@ -782,7 +782,7 @@ Signed-off-by: Zhao Qiang fsl,pcie-scfg = <&scfg 1>; #address-cells = <3>; #size-cells = <2>; -@@ -730,6 +790,47 @@ +@@ -739,6 +799,47 @@ <0000 0 0 2 &gic GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 4 &gic GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; diff --git a/target/linux/layerscape/patches-4.14/811-clock-support-layerscape.patch b/target/linux/layerscape/patches-4.14/811-clock-support-layerscape.patch index 331c77c80a..09a33572fe 100644 --- a/target/linux/layerscape/patches-4.14/811-clock-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/811-clock-support-layerscape.patch @@ -75,7 +75,7 @@ Signed-off-by: Yogesh Gaur snprintf(pll->div[i].name, sizeof(pll->div[i].name), "cg-pll%d-div%d", idx, i + 1); -@@ -1417,6 +1435,7 @@ CLK_OF_DECLARE(qoriq_clockgen_ls1043a, " +@@ -1418,6 +1436,7 @@ CLK_OF_DECLARE(qoriq_clockgen_ls1043a, " CLK_OF_DECLARE(qoriq_clockgen_ls1046a, "fsl,ls1046a-clockgen", clockgen_init); CLK_OF_DECLARE(qoriq_clockgen_ls1088a, "fsl,ls1088a-clockgen", clockgen_init); CLK_OF_DECLARE(qoriq_clockgen_ls2080a, "fsl,ls2080a-clockgen", clockgen_init); diff --git a/target/linux/layerscape/patches-4.14/812-flexspi-support-layerscape.patch b/target/linux/layerscape/patches-4.14/812-flexspi-support-layerscape.patch index 3ecec1756e..fa1cdf075a 100644 --- a/target/linux/layerscape/patches-4.14/812-flexspi-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/812-flexspi-support-layerscape.patch @@ -1534,7 +1534,7 @@ Signed-off-by: Yogesh Gaur /* PMC */ { "pm25lv512", INFO(0, 0, 32 * 1024, 2, SECT_4K_PMC) }, { "pm25lv010", INFO(0, 0, 32 * 1024, 4, SECT_4K_PMC) }, -@@ -2431,6 +2438,7 @@ static int spi_nor_init_params(struct sp +@@ -2435,6 +2442,7 @@ static int spi_nor_init_params(struct sp params->quad_enable = macronix_quad_enable; break; @@ -1542,7 +1542,7 @@ Signed-off-by: Yogesh Gaur case SNOR_MFR_MICRON: break; -@@ -2749,7 +2757,8 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2753,7 +2761,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/layerscape/patches-4.14/820-sec-support-layerscape.patch b/target/linux/layerscape/patches-4.14/820-sec-support-layerscape.patch index 9632b32d56..63f6540be0 100644 --- a/target/linux/layerscape/patches-4.14/820-sec-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/820-sec-support-layerscape.patch @@ -11852,7 +11852,7 @@ Signed-off-by: Zhao Qiang dev = caam_jr_alloc(); if (IS_ERR(dev)) { -@@ -361,10 +342,3 @@ free_caam_alloc: +@@ -364,10 +345,3 @@ free_caam_alloc: caam_jr_free(dev); return err; } diff --git a/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch b/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch index c396e314a9..bb49ee75e8 100644 --- a/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch +++ b/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1943,7 +1943,7 @@ static struct phy_driver genphy_driver = +@@ -1944,7 +1944,7 @@ static struct phy_driver genphy_driver = .config_init = genphy_config_init, .features = PHY_GBIT_FEATURES | SUPPORTED_MII | SUPPORTED_AUI | SUPPORTED_FIBRE | diff --git a/target/linux/mediatek/patches-4.14/0199-thermal-mtk-Cleanup-unused-defines.patch b/target/linux/mediatek/patches-4.14/0199-thermal-mtk-Cleanup-unused-defines.patch index a7288acdf1..af910a6660 100644 --- a/target/linux/mediatek/patches-4.14/0199-thermal-mtk-Cleanup-unused-defines.patch +++ b/target/linux/mediatek/patches-4.14/0199-thermal-mtk-Cleanup-unused-defines.patch @@ -40,7 +40,7 @@ Signed-off-by: Eduardo Valentin struct mtk_thermal; struct thermal_bank_cfg { -@@ -765,7 +758,7 @@ static struct platform_driver mtk_therma +@@ -767,7 +760,7 @@ static struct platform_driver mtk_therma .probe = mtk_thermal_probe, .remove = mtk_thermal_remove, .driver = { diff --git a/target/linux/mediatek/patches-4.14/0200-thermal-mediatek-add-support-for-MT7622-SoC.patch b/target/linux/mediatek/patches-4.14/0200-thermal-mediatek-add-support-for-MT7622-SoC.patch index 731bd163d8..1dc293641e 100644 --- a/target/linux/mediatek/patches-4.14/0200-thermal-mediatek-add-support-for-MT7622-SoC.patch +++ b/target/linux/mediatek/patches-4.14/0200-thermal-mediatek-add-support-for-MT7622-SoC.patch @@ -68,7 +68,7 @@ Signed-off-by: Shunli Wang /** * raw_to_mcelsius - convert a raw ADC value to mcelsius * @mt: The thermal controller -@@ -631,6 +662,10 @@ static const struct of_device_id mtk_the +@@ -633,6 +664,10 @@ static const struct of_device_id mtk_the { .compatible = "mediatek,mt2712-thermal", .data = (void *)&mt2712_thermal_data, diff --git a/target/linux/pistachio/patches-4.14/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-4.14/401-mtd-nor-support-mtd-name-from-device-tree.patch index d5f9627fac..f35b3901e0 100644 --- a/target/linux/pistachio/patches-4.14/401-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/pistachio/patches-4.14/401-mtd-nor-support-mtd-name-from-device-tree.patch @@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2663,6 +2663,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2667,6 +2667,7 @@ int spi_nor_scan(struct spi_nor *nor, co struct device *dev = nor->dev; struct mtd_info *mtd = &nor->mtd; struct device_node *np = spi_nor_get_flash_node(nor); @@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma int ret; int i; -@@ -2738,7 +2739,12 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2742,7 +2743,12 @@ int spi_nor_scan(struct spi_nor *nor, co spi_nor_wait_till_ready(nor); } diff --git a/target/linux/ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch b/target/linux/ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch index 8631f5d720..dee65a8394 100644 --- a/target/linux/ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch +++ b/target/linux/ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch @@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau { "w25m512jv", INFO(0xef7119, 0, 64 * 1024, 1024, SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ) }, -@@ -1237,6 +1289,9 @@ static int spi_nor_read(struct mtd_info +@@ -1241,6 +1293,9 @@ static int spi_nor_read(struct mtd_info if (ret) return ret; @@ -135,7 +135,7 @@ Signed-off-by: Felix Fietkau while (len) { loff_t addr = from; -@@ -1261,6 +1316,18 @@ static int spi_nor_read(struct mtd_info +@@ -1265,6 +1320,18 @@ static int spi_nor_read(struct mtd_info ret = 0; read_err: @@ -154,7 +154,7 @@ Signed-off-by: Felix Fietkau spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ); return ret; } -@@ -1362,6 +1429,10 @@ static int spi_nor_write(struct mtd_info +@@ -1366,6 +1433,10 @@ static int spi_nor_write(struct mtd_info if (ret) return ret; @@ -165,7 +165,7 @@ Signed-off-by: Felix Fietkau for (i = 0; i < len; ) { ssize_t written; loff_t addr = to + i; -@@ -1402,6 +1473,7 @@ static int spi_nor_write(struct mtd_info +@@ -1406,6 +1477,7 @@ static int spi_nor_write(struct mtd_info } write_err: @@ -173,7 +173,7 @@ Signed-off-by: Felix Fietkau spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE); return ret; } -@@ -2818,8 +2890,10 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2822,8 +2894,10 @@ int spi_nor_scan(struct spi_nor *nor, co } else if (mtd->size > 0x1000000) { /* enable 4-byte addressing if the device exceeds 16MiB */ nor->addr_width = 4; diff --git a/target/linux/ramips/patches-4.14/0054-mtd-spi-nor-w25q256-respect-default-mode.patch b/target/linux/ramips/patches-4.14/0054-mtd-spi-nor-w25q256-respect-default-mode.patch index b6266a8ef3..9ea2a11354 100644 --- a/target/linux/ramips/patches-4.14/0054-mtd-spi-nor-w25q256-respect-default-mode.patch +++ b/target/linux/ramips/patches-4.14/0054-mtd-spi-nor-w25q256-respect-default-mode.patch @@ -33,7 +33,7 @@ /* * Write status register 1 byte * Returns negative if error occurred. -@@ -2890,9 +2899,16 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2894,9 +2903,16 @@ int spi_nor_scan(struct spi_nor *nor, co } else if (mtd->size > 0x1000000) { /* enable 4-byte addressing if the device exceeds 16MiB */ nor->addr_width = 4; diff --git a/target/linux/ramips/patches-4.14/304-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch b/target/linux/ramips/patches-4.14/304-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch index c8febaf73f..831350546d 100644 --- a/target/linux/ramips/patches-4.14/304-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch +++ b/target/linux/ramips/patches-4.14/304-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch @@ -18,7 +18,7 @@ For reference see: { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) }, { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) }, { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, -@@ -1267,11 +1268,12 @@ static const struct flash_info spi_nor_i +@@ -1271,11 +1272,12 @@ static const struct flash_info spi_nor_i { }, }; @@ -33,7 +33,7 @@ For reference see: tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN); if (tmp < 0) { -@@ -1282,10 +1284,16 @@ static const struct flash_info *spi_nor_ +@@ -1286,10 +1288,16 @@ static const struct flash_info *spi_nor_ for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) { info = &spi_nor_ids[tmp]; if (info->id_len) { @@ -52,7 +52,7 @@ For reference see: dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n", id[0], id[1], id[2]); return ERR_PTR(-ENODEV); -@@ -2765,7 +2773,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2769,7 +2777,7 @@ int spi_nor_scan(struct spi_nor *nor, co info = spi_nor_match_id(name); /* Try to auto-detect if chip name wasn't specified or not found */ if (!info) @@ -61,7 +61,7 @@ For reference see: if (IS_ERR_OR_NULL(info)) return -ENOENT; -@@ -2776,7 +2784,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2780,7 +2788,7 @@ int spi_nor_scan(struct spi_nor *nor, co if (name && info->id_len) { const struct flash_info *jinfo; diff --git a/target/linux/sunxi/patches-4.14/025-arm64-dts-allwinner-A64-Restore-EMAC-changes.patch b/target/linux/sunxi/patches-4.14/025-arm64-dts-allwinner-A64-Restore-EMAC-changes.patch index af4a921583..23c3ec27ed 100644 --- a/target/linux/sunxi/patches-4.14/025-arm64-dts-allwinner-A64-Restore-EMAC-changes.patch +++ b/target/linux/sunxi/patches-4.14/025-arm64-dts-allwinner-A64-Restore-EMAC-changes.patch @@ -155,7 +155,7 @@ Signed-off-by: Maxime Ripard pinctrl-0 = <&mmc2_pins>; --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -449,6 +449,26 @@ +@@ -450,6 +450,26 @@ #size-cells = <0>; }; diff --git a/target/linux/sunxi/patches-4.14/026-arm64-dts-allwinner-add-snps-dwmac-mdio-compatible-t.patch b/target/linux/sunxi/patches-4.14/026-arm64-dts-allwinner-add-snps-dwmac-mdio-compatible-t.patch index 40efc9f3e8..ee4731d0dc 100644 --- a/target/linux/sunxi/patches-4.14/026-arm64-dts-allwinner-add-snps-dwmac-mdio-compatible-t.patch +++ b/target/linux/sunxi/patches-4.14/026-arm64-dts-allwinner-add-snps-dwmac-mdio-compatible-t.patch @@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -464,6 +464,7 @@ +@@ -465,6 +465,7 @@ #size-cells = <0>; mdio: mdio { diff --git a/target/linux/sunxi/patches-4.14/040-arm64-dts-allwinner-a64-Add-watchdog.patch b/target/linux/sunxi/patches-4.14/040-arm64-dts-allwinner-a64-Add-watchdog.patch index 0503b88823..90c72f9508 100644 --- a/target/linux/sunxi/patches-4.14/040-arm64-dts-allwinner-a64-Add-watchdog.patch +++ b/target/linux/sunxi/patches-4.14/040-arm64-dts-allwinner-a64-Add-watchdog.patch @@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard Example: --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -537,5 +537,12 @@ +@@ -538,5 +538,12 @@ #address-cells = <1>; #size-cells = <0>; }; diff --git a/target/linux/sunxi/patches-4.14/080-arm64-allwinner-a64-add-SPI-nodes.patch b/target/linux/sunxi/patches-4.14/080-arm64-allwinner-a64-add-SPI-nodes.patch index 5374547e92..1e40f99d04 100644 --- a/target/linux/sunxi/patches-4.14/080-arm64-allwinner-a64-add-SPI-nodes.patch +++ b/target/linux/sunxi/patches-4.14/080-arm64-allwinner-a64-add-SPI-nodes.patch @@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -325,6 +325,16 @@ +@@ -326,6 +326,16 @@ drive-strength = <40>; }; @@ -38,7 +38,7 @@ Signed-off-by: Maxime Ripard uart0_pins_a: uart0@0 { pins = "PB8", "PB9"; function = "uart0"; -@@ -470,6 +480,37 @@ +@@ -471,6 +481,37 @@ }; };