aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/kernel-version.mk4
-rw-r--r--target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch24
-rw-r--r--target/linux/apm821xx/patches-4.19/201-add-amcc-apollo3g-support.patch2
-rw-r--r--target/linux/apm821xx/patches-4.19/202-add-netgear-wndr4700-support.patch2
-rw-r--r--target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch6
-rw-r--r--target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch8
-rw-r--r--target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch2
-rw-r--r--target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch4
-rw-r--r--target/linux/brcm47xx/patches-4.19/159-cpu_fixes.patch39
-rw-r--r--target/linux/brcm47xx/patches-4.19/160-kmap_coherent.patch4
-rw-r--r--target/linux/generic/backport-4.19/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch119
-rw-r--r--target/linux/generic/backport-4.19/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch32
-rw-r--r--target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch7
-rw-r--r--target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch7
-rw-r--r--target/linux/generic/backport-4.19/424-v4.20-net-dsa-fix-88e6060-roaming.patch44
-rw-r--r--target/linux/generic/backport-4.19/500-ubifs-Handle-re-linking-of-inodes-correctly-while-re.patch18
-rw-r--r--target/linux/generic/hack-4.19/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch83
-rw-r--r--target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch11
-rw-r--r--target/linux/generic/hack-4.19/204-module_strip.patch2
-rw-r--r--target/linux/generic/hack-4.19/207-disable-modorder.patch4
-rw-r--r--target/linux/generic/hack-4.19/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch2
-rw-r--r--target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch2
-rw-r--r--target/linux/generic/hack-4.19/721-phy_packets.patch6
-rw-r--r--target/linux/generic/hack-4.19/902-debloat_proc.patch2
-rw-r--r--target/linux/generic/hack-4.19/904-debloat_dma_buf.patch2
-rw-r--r--target/linux/generic/hack-4.19/930-crashlog.patch2
-rw-r--r--target/linux/generic/pending-4.19/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch2
-rw-r--r--target/linux/generic/pending-4.19/203-kallsyms_uncompressed.patch2
-rw-r--r--target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch2
-rw-r--r--target/linux/generic/pending-4.19/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch49
-rw-r--r--target/linux/generic/pending-4.19/630-packet_socket_type.patch6
-rw-r--r--target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch6
-rw-r--r--target/linux/generic/pending-4.19/655-increase_skb_pad.patch2
-rw-r--r--target/linux/generic/pending-4.19/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch24
-rw-r--r--target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch26
-rw-r--r--target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch10
-rw-r--r--target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch2
-rw-r--r--target/linux/generic/pending-4.19/834-ledtrig-libata.patch8
-rw-r--r--target/linux/generic/pending-4.19/920-mangle_bootargs.patch2
-rw-r--r--target/linux/ipq40xx/patches-4.19/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch10
-rw-r--r--target/linux/mpc85xx/patches-4.19/100-powerpc-85xx-tl-wdr4900-v1-support.patch16
41 files changed, 129 insertions, 476 deletions
diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index d534eeef0f..0f4788af83 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -5,12 +5,12 @@ LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .132
LINUX_VERSION-4.9 = .150
LINUX_VERSION-4.14 = .93
-LINUX_VERSION-4.19 = .9
+LINUX_VERSION-4.19 = .16
LINUX_KERNEL_HASH-3.18.132 = c187bd0322372bd34c862cbb06a1996a63524ccb401466362b57ede45901a879
LINUX_KERNEL_HASH-4.9.150 = 94cc177ba2b433e4e30fefef38de33248ba1e2499ebda905096a8822097117e4
LINUX_KERNEL_HASH-4.14.93 = bb125fb204f7089782e179126121dd0f0aad9f02b7517ce3744982254c221bad
-LINUX_KERNEL_HASH-4.19.9 = fc116cc6829c73944215d3b3ac0fc368dde9e8235b456744afffde001269dbf2
+LINUX_KERNEL_HASH-4.19.16 = d8a088381fe3e7e5484c060dabcdda4b053ef7114f91cfd56db003a89bb11bdf
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
diff --git a/target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch b/target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch
index 3c4edff3eb..86da6fcd89 100644
--- a/target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch
+++ b/target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch
@@ -55,11 +55,9 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
-diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c
-index d0c3e50b39fb..2c5ca1961256 100644
--- a/drivers/dma/dw/core.c
+++ b/drivers/dma/dw/core.c
-@@ -160,12 +160,14 @@ static void dwc_initialize_chan_idma32(struct dw_dma_chan *dwc)
+@@ -160,12 +160,14 @@ static void dwc_initialize_chan_idma32(s
static void dwc_initialize_chan_dw(struct dw_dma_chan *dwc)
{
@@ -74,11 +72,9 @@ index d0c3e50b39fb..2c5ca1961256 100644
/* Set polarity of handshake interface */
cfglo |= hs_polarity ? DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL : 0;
-diff --git a/drivers/dma/dw/platform.c b/drivers/dma/dw/platform.c
-index f01b2c173fa6..31ff8113c3de 100644
--- a/drivers/dma/dw/platform.c
+++ b/drivers/dma/dw/platform.c
-@@ -162,6 +162,12 @@ dw_dma_parse_dt(struct platform_device *pdev)
+@@ -162,6 +162,12 @@ dw_dma_parse_dt(struct platform_device *
pdata->multi_block[tmp] = 1;
}
@@ -91,8 +87,6 @@ index f01b2c173fa6..31ff8113c3de 100644
return pdata;
}
#else
-diff --git a/drivers/dma/dw/regs.h b/drivers/dma/dw/regs.h
-index 09e7dfdbb790..646c9c960c07 100644
--- a/drivers/dma/dw/regs.h
+++ b/drivers/dma/dw/regs.h
@@ -200,6 +200,10 @@ enum dw_dma_msize {
@@ -106,11 +100,9 @@ index 09e7dfdbb790..646c9c960c07 100644
#define DWC_CFGH_DS_UPD_EN (1 << 5)
#define DWC_CFGH_SS_UPD_EN (1 << 6)
#define DWC_CFGH_SRC_PER(x) ((x) << 7)
-diff --git a/include/linux/platform_data/dma-dw.h b/include/linux/platform_data/dma-dw.h
-index 896cb71a382c..1a1d58ebffbf 100644
--- a/include/linux/platform_data/dma-dw.h
+++ b/include/linux/platform_data/dma-dw.h
-@@ -49,6 +49,7 @@ struct dw_dma_slave {
+@@ -49,6 +49,7 @@ struct dw_dma_slave {
* @data_width: Maximum data width supported by hardware per AHB master
* (in bytes, power of 2)
* @multi_block: Multi block transfers supported by hardware per channel.
@@ -118,7 +110,7 @@ index 896cb71a382c..1a1d58ebffbf 100644
*/
struct dw_dma_platform_data {
unsigned int nr_channels;
-@@ -65,6 +66,11 @@ struct dw_dma_platform_data {
+@@ -65,6 +66,11 @@ struct dw_dma_platform_data {
unsigned char nr_masters;
unsigned char data_width[DW_DMA_MAX_NR_MASTERS];
unsigned char multi_block[DW_DMA_MAX_NR_CHANNELS];
@@ -130,12 +122,9 @@ index 896cb71a382c..1a1d58ebffbf 100644
};
#endif /* _PLATFORM_DATA_DMA_DW_H */
-diff --git a/include/dt-bindings/dma/dw-dmac.h b/include/dt-bindings/dma/dw-dmac.h
-new file mode 100644
-index 000000000000..d1ca705c95b3
--- /dev/null
+++ b/include/dt-bindings/dma/dw-dmac.h
-@@ -0,0 +1,14 @@
+@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+
+#ifndef __DT_BINDINGS_DMA_DW_DMAC_H__
@@ -150,6 +139,3 @@ index 000000000000..d1ca705c95b3
+#define DW_DMAC_HPROT3_CACHEABLE (1 << 2) /* DMA is cacheable */
+
+#endif /* __DT_BINDINGS_DMA_DW_DMAC_H__ */
---
-cgit 1.2-0.3.lf.el7
-
diff --git a/target/linux/apm821xx/patches-4.19/201-add-amcc-apollo3g-support.patch b/target/linux/apm821xx/patches-4.19/201-add-amcc-apollo3g-support.patch
index 18982392d4..18f4c72de8 100644
--- a/target/linux/apm821xx/patches-4.19/201-add-amcc-apollo3g-support.patch
+++ b/target/linux/apm821xx/patches-4.19/201-add-amcc-apollo3g-support.patch
@@ -1,6 +1,6 @@
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
-@@ -144,6 +144,17 @@ config CANYONLANDS
+@@ -131,6 +131,17 @@ config CANYONLANDS
help
This option enables support for the AMCC PPC460EX evaluation board.
diff --git a/target/linux/apm821xx/patches-4.19/202-add-netgear-wndr4700-support.patch b/target/linux/apm821xx/patches-4.19/202-add-netgear-wndr4700-support.patch
index 77294a8cbd..536a74ef00 100644
--- a/target/linux/apm821xx/patches-4.19/202-add-netgear-wndr4700-support.patch
+++ b/target/linux/apm821xx/patches-4.19/202-add-netgear-wndr4700-support.patch
@@ -10,7 +10,7 @@
obj-$(CONFIG_WARP) += warp.o
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
-@@ -273,6 +273,19 @@ config ICON
+@@ -260,6 +260,19 @@ config ICON
help
This option enables support for the AMCC PPC440SPe evaluation board.
diff --git a/target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch b/target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
index b892674c66..630aaca7e0 100644
--- a/target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
+++ b/target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
@@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
#include "xhci.h"
#include "xhci-trace.h"
-@@ -248,6 +250,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -261,6 +263,458 @@ static void xhci_pme_acpi_rtd3_enable(st
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
#endif /* CONFIG_ACPI */
@@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
/* called during probe() after chip reset completes */
static int xhci_pci_setup(struct usb_hcd *hcd)
{
-@@ -286,6 +740,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -299,6 +753,22 @@ static int xhci_pci_probe(struct pci_dev
struct hc_driver *driver;
struct usb_hcd *hcd;
@@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
driver = (struct hc_driver *)id->driver_data;
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
-@@ -347,6 +817,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -360,6 +830,16 @@ static void xhci_pci_remove(struct pci_d
{
struct xhci_hcd *xhci;
diff --git a/target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch b/target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch
index 2fba6dcca1..90fb27935a 100644
--- a/target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch
+++ b/target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch
@@ -13,7 +13,7 @@ produce a noisy warning.
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -206,6 +206,7 @@ static void xhci_pci_quirks(struct devic
+@@ -214,6 +214,7 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x0015) {
xhci->quirks |= XHCI_RESET_ON_RESUME;
xhci->quirks |= XHCI_ZERO_64B_REGS;
@@ -43,11 +43,11 @@ produce a noisy warning.
hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1857,6 +1857,7 @@ struct xhci_hcd {
+@@ -1859,6 +1859,7 @@ struct xhci_hcd {
/* support xHCI 0.96 spec USB2 software LPM */
unsigned sw_lpm_support:1;
/* support xHCI 1.0 spec USB2 hardware LPM */
+#define XHCI_FORCE_MSI (1 << 24)
unsigned hw_lpm_support:1;
- /* cached usb2 extened protocol capabilites */
- u32 *ext_caps;
+ /* Broken Suspend flag for SNPS Suspend resume issue */
+ unsigned broken_suspend:1;
diff --git a/target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch b/target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch
index b23dae5026..b05749f72d 100644
--- a/target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch
+++ b/target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch
@@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1294,6 +1294,18 @@ static const struct flash_info *spi_nor_
+@@ -1295,6 +1295,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/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch b/target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch
index 8f4b3ac694..773197d8d1 100644
--- a/target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch
+++ b/target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch
@@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
clocks {
--- a/drivers/bcma/main.c
+++ b/drivers/bcma/main.c
-@@ -348,14 +348,6 @@ static int bcma_register_devices(struct
+@@ -330,14 +330,6 @@ static int bcma_register_devices(struct
}
#endif
@@ -36,7 +36,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
#ifdef CONFIG_BCMA_NFLASH
if (bus->drv_cc.nflash.present) {
err = platform_device_register(&bcma_nflash_dev);
-@@ -436,6 +428,14 @@ int bcma_bus_register(struct bcma_bus *b
+@@ -415,6 +407,14 @@ int bcma_bus_register(struct bcma_bus *b
bcma_register_core(bus, core);
}
diff --git a/target/linux/brcm47xx/patches-4.19/159-cpu_fixes.patch b/target/linux/brcm47xx/patches-4.19/159-cpu_fixes.patch
index f3415b5c8e..68fdc50664 100644
--- a/target/linux/brcm47xx/patches-4.19/159-cpu_fixes.patch
+++ b/target/linux/brcm47xx/patches-4.19/159-cpu_fixes.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/include/asm/r4kcache.h
+++ b/arch/mips/include/asm/r4kcache.h
-@@ -25,6 +25,38 @@
+@@ -26,6 +26,38 @@
extern void (*r4k_blast_dcache)(void);
extern void (*r4k_blast_icache)(void);
@@ -39,7 +39,7 @@
/*
* This macro return a properly sign-extended address suitable as base address
* for indexed cache operations. Two issues here:
-@@ -98,6 +130,7 @@ static inline void flush_icache_line_ind
+@@ -99,6 +131,7 @@ static inline void flush_icache_line_ind
static inline void flush_dcache_line_indexed(unsigned long addr)
{
__dflush_prologue
@@ -47,7 +47,7 @@
cache_op(Index_Writeback_Inv_D, addr);
__dflush_epilogue
}
-@@ -125,6 +158,7 @@ static inline void flush_icache_line(uns
+@@ -126,6 +159,7 @@ static inline void flush_icache_line(uns
static inline void flush_dcache_line(unsigned long addr)
{
__dflush_prologue
@@ -55,7 +55,7 @@
cache_op(Hit_Writeback_Inv_D, addr);
__dflush_epilogue
}
-@@ -132,6 +166,7 @@ static inline void flush_dcache_line(uns
+@@ -133,6 +167,7 @@ static inline void flush_dcache_line(uns
static inline void invalidate_dcache_line(unsigned long addr)
{
__dflush_prologue
@@ -63,7 +63,7 @@
cache_op(Hit_Invalidate_D, addr);
__dflush_epilogue
}
-@@ -205,6 +240,7 @@ static inline int protected_flush_icache
+@@ -206,6 +241,7 @@ static inline int protected_flush_icache
#ifdef CONFIG_EVA
return protected_cachee_op(Hit_Invalidate_I, addr);
#else
@@ -71,7 +71,7 @@
return protected_cache_op(Hit_Invalidate_I, addr);
#endif
}
-@@ -218,6 +254,7 @@ static inline int protected_flush_icache
+@@ -219,6 +255,7 @@ static inline int protected_flush_icache
*/
static inline int protected_writeback_dcache_line(unsigned long addr)
{
@@ -79,7 +79,7 @@
#ifdef CONFIG_EVA
return protected_cachee_op(Hit_Writeback_Inv_D, addr);
#else
-@@ -575,8 +612,51 @@ static inline void invalidate_tcache_pag
+@@ -576,8 +613,51 @@ static inline void invalidate_tcache_pag
: "r" (base), \
"i" (op));
@@ -132,7 +132,7 @@
static inline void extra##blast_##pfx##cache##lsize(void) \
{ \
unsigned long start = INDEX_BASE; \
-@@ -588,6 +668,7 @@ static inline void extra##blast_##pfx##c
+@@ -589,6 +669,7 @@ static inline void extra##blast_##pfx##c
\
__##pfx##flush_prologue \
\
@@ -140,7 +140,7 @@
for (ws = 0; ws < ws_end; ws += ws_inc) \
for (addr = start; addr < end; addr += lsize * 32) \
cache##lsize##_unroll32(addr|ws, indexop); \
-@@ -602,6 +683,7 @@ static inline void extra##blast_##pfx##c
+@@ -603,6 +684,7 @@ static inline void extra##blast_##pfx##c
\
__##pfx##flush_prologue \
\
@@ -148,7 +148,7 @@
do { \
cache##lsize##_unroll32(start, hitop); \
start += lsize * 32; \
-@@ -620,6 +702,8 @@ static inline void extra##blast_##pfx##c
+@@ -621,6 +703,8 @@ static inline void extra##blast_##pfx##c
current_cpu_data.desc.waybit; \
unsigned long ws, addr; \
\
@@ -157,7 +157,7 @@
__##pfx##flush_prologue \
\
for (ws = 0; ws < ws_end; ws += ws_inc) \
-@@ -629,26 +713,26 @@ static inline void extra##blast_##pfx##c
+@@ -630,26 +714,26 @@ static inline void extra##blast_##pfx##c
__##pfx##flush_epilogue \
}
@@ -204,7 +204,7 @@
#define __BUILD_BLAST_USER_CACHE(pfx, desc, indexop, hitop, lsize) \
static inline void blast_##pfx##cache##lsize##_user_page(unsigned long page) \
-@@ -677,53 +761,23 @@ __BUILD_BLAST_USER_CACHE(d, dcache, Inde
+@@ -678,53 +762,23 @@ __BUILD_BLAST_USER_CACHE(d, dcache, Inde
__BUILD_BLAST_USER_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64)
/* build blast_xxx_range, protected_blast_xxx_range */
@@ -266,7 +266,7 @@
} \
\
__##pfx##flush_epilogue \
-@@ -731,8 +785,8 @@ static inline void prot##extra##blast_##
+@@ -732,8 +786,8 @@ static inline void prot##extra##blast_##
#ifndef CONFIG_EVA
@@ -277,7 +277,7 @@
#else
-@@ -769,14 +823,14 @@ __BUILD_PROT_BLAST_CACHE_RANGE(d, dcache
+@@ -770,15 +824,15 @@ __BUILD_PROT_BLAST_CACHE_RANGE(d, dcache
__BUILD_PROT_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I)
#endif
@@ -298,7 +298,8 @@
+__BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D, , , , BCM4710_DUMMY_RREG();)
+__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD, , , , )
- #endif /* _ASM_R4KCACHE_H */
+ /* Currently, this is very specific to Loongson-3 */
+ #define __BUILD_BLAST_CACHE_NODE(pfx, desc, indexop, hitop, lsize) \
--- a/arch/mips/include/asm/stackframe.h
+++ b/arch/mips/include/asm/stackframe.h
@@ -428,6 +428,10 @@
@@ -396,7 +397,7 @@
if (dc_lsize == 0)
r4k_blast_dcache = (void *)cache_noop;
else if (dc_lsize == 16)
-@@ -957,6 +969,8 @@ static void local_r4k_flush_cache_sigtra
+@@ -986,6 +998,8 @@ static void local_r4k_flush_cache_sigtra
}
R4600_HIT_CACHEOP_WAR_IMPL;
@@ -405,7 +406,7 @@
if (!cpu_has_ic_fills_f_dc) {
if (dc_lsize)
vaddr ? flush_dcache_line(addr & ~(dc_lsize - 1))
-@@ -1859,6 +1873,17 @@ static void coherency_setup(void)
+@@ -1888,6 +1902,17 @@ static void coherency_setup(void)
* silly idea of putting something else there ...
*/
switch (current_cpu_type()) {
@@ -423,7 +424,7 @@
case CPU_R4000PC:
case CPU_R4000SC:
case CPU_R4000MC:
-@@ -1905,6 +1930,15 @@ void r4k_cache_init(void)
+@@ -1934,6 +1959,15 @@ void r4k_cache_init(void)
extern void build_copy_page(void);
struct cpuinfo_mips *c = &current_cpu_data;
@@ -439,7 +440,7 @@
probe_pcache();
probe_vcache();
setup_scache();
-@@ -1982,7 +2016,15 @@ void r4k_cache_init(void)
+@@ -2012,7 +2046,15 @@ void r4k_cache_init(void)
*/
local_r4k___flush_cache_all(NULL);
diff --git a/target/linux/brcm47xx/patches-4.19/160-kmap_coherent.patch b/target/linux/brcm47xx/patches-4.19/160-kmap_coherent.patch
index f7f4d3eaa5..db5660bc32 100644
--- a/target/linux/brcm47xx/patches-4.19/160-kmap_coherent.patch
+++ b/target/linux/brcm47xx/patches-4.19/160-kmap_coherent.patch
@@ -29,7 +29,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485
#endif /* __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H */
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
-@@ -672,7 +672,7 @@ static inline void local_r4k_flush_cache
+@@ -694,7 +694,7 @@ static inline void local_r4k_flush_cache
map_coherent = (cpu_has_dc_aliases &&
page_mapcount(page) &&
!Page_dcache_dirty(page));
@@ -38,7 +38,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485
vaddr = kmap_coherent(page, addr);
else
vaddr = kmap_atomic(page);
-@@ -697,7 +697,7 @@ static inline void local_r4k_flush_cache
+@@ -719,7 +719,7 @@ static inline void local_r4k_flush_cache
}
if (vaddr) {
diff --git a/target/linux/generic/backport-4.19/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch b/target/linux/generic/backport-4.19/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch
deleted file mode 100644
index f428285a64..0000000000
--- a/target/linux/generic/backport-4.19/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From adcc81f148d733b7e8e641300c5590a2cdc13bf3 Mon Sep 17 00:00:00 2001
-From: Paul Burton <paul.burton@mips.com>
-Date: Thu, 20 Dec 2018 17:45:43 +0000
-Subject: MIPS: math-emu: Write-protect delay slot emulation pages
-
-Mapping the delay slot emulation page as both writeable & executable
-presents a security risk, in that if an exploit can write to & jump into
-the page then it can be used as an easy way to execute arbitrary code.
-
-Prevent this by mapping the page read-only for userland, and using
-access_process_vm() with the FOLL_FORCE flag to write to it from
-mips_dsemul().
-
-This will likely be less efficient due to copy_to_user_page() performing
-cache maintenance on a whole page, rather than a single line as in the
-previous use of flush_cache_sigtramp(). However this delay slot
-emulation code ought not to be running in any performance critical paths
-anyway so this isn't really a problem, and we can probably do better in
-copy_to_user_page() anyway in future.
-
-A major advantage of this approach is that the fix is small & simple to
-backport to stable kernels.
-
-Reported-by: Andy Lutomirski <luto@kernel.org>
-Signed-off-by: Paul Burton <paul.burton@mips.com>
-Fixes: 432c6bacbd0c ("MIPS: Use per-mm page to execute branch delay slot instructions")
-Cc: stable@vger.kernel.org # v4.8+
-Cc: linux-mips@vger.kernel.org
-Cc: linux-kernel@vger.kernel.org
-Cc: Rich Felker <dalias@libc.org>
-Cc: David Daney <david.daney@cavium.com>
----
- arch/mips/kernel/vdso.c | 4 ++--
- arch/mips/math-emu/dsemul.c | 38 ++++++++++++++++++++------------------
- 2 files changed, 22 insertions(+), 20 deletions(-)
-
---- a/arch/mips/kernel/vdso.c
-+++ b/arch/mips/kernel/vdso.c
-@@ -126,8 +126,8 @@ int arch_setup_additional_pages(struct l
-
- /* Map delay slot emulation page */
- base = mmap_region(NULL, STACK_TOP, PAGE_SIZE,
-- VM_READ|VM_WRITE|VM_EXEC|
-- VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC,
-+ VM_READ | VM_EXEC |
-+ VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
- 0, NULL);
- if (IS_ERR_VALUE(base)) {
- ret = base;
---- a/arch/mips/math-emu/dsemul.c
-+++ b/arch/mips/math-emu/dsemul.c
-@@ -214,8 +214,9 @@ int mips_dsemul(struct pt_regs *regs, mi
- {
- int isa16 = get_isa16_mode(regs->cp0_epc);
- mips_instruction break_math;
-- struct emuframe __user *fr;
-- int err, fr_idx;
-+ unsigned long fr_uaddr;
-+ struct emuframe fr;
-+ int fr_idx, ret;
-
- /* NOP is easy */
- if (ir == 0)
-@@ -250,27 +251,31 @@ int mips_dsemul(struct pt_regs *regs, mi
- fr_idx = alloc_emuframe();
- if (fr_idx == BD_EMUFRAME_NONE)
- return SIGBUS;
-- fr = &dsemul_page()[fr_idx];
-
- /* Retrieve the appropriately encoded break instruction */
- break_math = BREAK_MATH(isa16);
-
- /* Write the instructions to the frame */
- if (isa16) {
-- err = __put_user(ir >> 16,
-- (u16 __user *)(&fr->emul));
-- err |= __put_user(ir & 0xffff,
-- (u16 __user *)((long)(&fr->emul) + 2));
-- err |= __put_user(break_math >> 16,
-- (u16 __user *)(&fr->badinst));
-- err |= __put_user(break_math & 0xffff,
-- (u16 __user *)((long)(&fr->badinst) + 2));
-+ union mips_instruction _emul = {
-+ .halfword = { ir >> 16, ir }
-+ };
-+ union mips_instruction _badinst = {
-+ .halfword = { break_math >> 16, break_math }
-+ };
-+
-+ fr.emul = _emul.word;
-+ fr.badinst = _badinst.word;
- } else {
-- err = __put_user(ir, &fr->emul);
-- err |= __put_user(break_math, &fr->badinst);
-+ fr.emul = ir;
-+ fr.badinst = break_math;
- }
-
-- if (unlikely(err)) {
-+ /* Write the frame to user memory */
-+ fr_uaddr = (unsigned long)&dsemul_page()[fr_idx];
-+ ret = access_process_vm(current, fr_uaddr, &fr, sizeof(fr),
-+ FOLL_FORCE | FOLL_WRITE);
-+ if (unlikely(ret != sizeof(fr))) {
- MIPS_FPU_EMU_INC_STATS(errors);
- free_emuframe(fr_idx, current->mm);
- return SIGBUS;
-@@ -282,10 +287,7 @@ int mips_dsemul(struct pt_regs *regs, mi
- atomic_set(&current->thread.bd_emu_frame, fr_idx);
-
- /* Change user register context to execute the frame */
-- regs->cp0_epc = (unsigned long)&fr->emul | isa16;
--
-- /* Ensure the icache observes our newly written frame */
-- flush_cache_sigtramp((unsigned long)&fr->emul);
-+ regs->cp0_epc = fr_uaddr | isa16;
-
- return 0;
- }
diff --git a/target/linux/generic/backport-4.19/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch b/target/linux/generic/backport-4.19/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch
deleted file mode 100644
index 3f5267eb75..0000000000
--- a/target/linux/generic/backport-4.19/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 508b09046c0f21678652fb66fd1e9959d55591d2 Mon Sep 17 00:00:00 2001
-From: Alin Nastac <alin.nastac@gmail.com>
-Date: Wed, 21 Nov 2018 14:00:30 +0100
-Subject: [PATCH] netfilter: ipv6: Preserve link scope traffic original oif
-
-When ip6_route_me_harder is invoked, it resets outgoing interface of:
- - link-local scoped packets sent by neighbor discovery
- - multicast packets sent by MLD host
- - multicast packets send by MLD proxy daemon that sets outgoing
- interface through IPV6_PKTINFO ipi6_ifindex
-
-Link-local and multicast packets must keep their original oif after
-ip6_route_me_harder is called.
-
-Signed-off-by: Alin Nastac <alin.nastac@gmail.com>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- net/ipv6/netfilter.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/net/ipv6/netfilter.c
-+++ b/net/ipv6/netfilter.c
-@@ -24,7 +24,8 @@ int ip6_route_me_harder(struct net *net,
- unsigned int hh_len;
- struct dst_entry *dst;
- struct flowi6 fl6 = {
-- .flowi6_oif = sk ? sk->sk_bound_dev_if : 0,
-+ .flowi6_oif = sk && sk->sk_bound_dev_if ? sk->sk_bound_dev_if :
-+ rt6_need_strict(&iph->daddr) ? skb_dst(skb)->dev->ifindex : 0,
- .flowi6_mark = skb->mark,
- .flowi6_uid = sock_net_uid(net, sk),
- .daddr = iph->daddr,
diff --git a/target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch b/target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch
index 458515a0b5..faeb3e4170 100644
--- a/target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch
+++ b/target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch
@@ -61,11 +61,9 @@ CC: stable@vger.kernel.org # v4.0+
arch/arm/mach-cns3xxx/pcie.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/arch/arm/mach-cns3xxx/pcie.c b/arch/arm/mach-cns3xxx/pcie.c
-index 318394ed5c7a..5e11ad3164e0 100644
--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
-@@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus(struct pci_bus *bus,
+@@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus
} else /* remote PCI bus */
base = cnspci->cfg1_regs + ((busno & 0xf) << 20);
@@ -74,6 +72,3 @@ index 318394ed5c7a..5e11ad3164e0 100644
}
static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
---
-2.17.1
-
diff --git a/target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch b/target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
index 0badce1b73..51c9e488e9 100644
--- a/target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
+++ b/target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
@@ -48,7 +48,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
MODULE_AUTHOR("Pablo Neira Ayuso <pablo@netfilter.org>");
--- a/net/netfilter/nft_flow_offload.c
+++ b/net/netfilter/nft_flow_offload.c
-@@ -193,44 +193,14 @@ static struct nft_expr_type nft_flow_off
+@@ -193,47 +193,14 @@ static struct nft_expr_type nft_flow_off
.owner = THIS_MODULE,
};
@@ -73,7 +73,9 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
{
- int err;
-
-- register_netdevice_notifier(&flow_offload_netdev_notifier);
+- err = register_netdevice_notifier(&flow_offload_netdev_notifier);
+- if (err)
+- goto err;
-
- err = nft_register_expr(&nft_flow_offload_type);
- if (err < 0)
@@ -83,6 +85,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-
-register_expr:
- unregister_netdevice_notifier(&flow_offload_netdev_notifier);
+-err:
- return err;
+ return nft_register_expr(&nft_flow_offload_type);
}
diff --git a/target/linux/generic/backport-4.19/424-v4.20-net-dsa-fix-88e6060-roaming.patch b/target/linux/generic/backport-4.19/424-v4.20-net-dsa-fix-88e6060-roaming.patch
deleted file mode 100644
index a242623983..0000000000
--- a/target/linux/generic/backport-4.19/424-v4.20-net-dsa-fix-88e6060-roaming.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From a74515604a7b171f2702bdcbd1e231225fb456d0 Mon Sep 17 00:00:00 2001
-From: Anderson Luiz Alves <alacn1@gmail.com>
-Date: Fri, 30 Nov 2018 21:58:36 -0200
-Subject: [PATCH] mv88e6060: disable hardware level MAC learning
-
-Disable hardware level MAC learning because it breaks station roaming.
-When enabled it drops all frames that arrive from a MAC address
-that is on a different port at learning table.
-
-Signed-off-by: Anderson Luiz Alves <alacn1@gmail.com>
-Reviewed-by: Andrew Lunn <andrew@lunn.ch>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/dsa/mv88e6060.c | 10 +++-------
- 1 file changed, 3 insertions(+), 7 deletions(-)
-
---- a/drivers/net/dsa/mv88e6060.c
-+++ b/drivers/net/dsa/mv88e6060.c
-@@ -116,8 +116,7 @@ static int mv88e6060_switch_reset(struct
- /* Reset the switch. */
- REG_WRITE(REG_GLOBAL, GLOBAL_ATU_CONTROL,
- GLOBAL_ATU_CONTROL_SWRESET |
-- GLOBAL_ATU_CONTROL_ATUSIZE_1024 |
-- GLOBAL_ATU_CONTROL_ATE_AGE_5MIN);
-+ GLOBAL_ATU_CONTROL_LEARNDIS);
-
- /* Wait up to one second for reset to complete. */
- timeout = jiffies + 1 * HZ;
-@@ -142,13 +141,10 @@ static int mv88e6060_setup_global(struct
- */
- REG_WRITE(REG_GLOBAL, GLOBAL_CONTROL, GLOBAL_CONTROL_MAX_FRAME_1536);
-
-- /* Enable automatic address learning, set the address
-- * database size to 1024 entries, and set the default aging
-- * time to 5 minutes.
-+ /* Disable automatic address learning.
- */
- REG_WRITE(REG_GLOBAL, GLOBAL_ATU_CONTROL,
-- GLOBAL_ATU_CONTROL_ATUSIZE_1024 |
-- GLOBAL_ATU_CONTROL_ATE_AGE_5MIN);
-+ GLOBAL_ATU_CONTROL_LEARNDIS);
-
- return 0;
- }
diff --git a/target/linux/generic/backport-4.19/500-ubifs-Handle-re-linking-of-inodes-correctly-while-re.patch b/target/linux/generic/backport-4.19/500-ubifs-Handle-re-linking-of-inodes-correctly-while-re.patch
index 345a73cf46..53e2c2aaba 100644
--- a/target/linux/generic/backport-4.19/500-ubifs-Handle-re-linking-of-inodes-correctly-while-re.patch
+++ b/target/linux/generic/backport-4.19/500-ubifs-Handle-re-linking-of-inodes-correctly-while-re.patch
@@ -36,7 +36,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
--- a/fs/ubifs/replay.c
+++ b/fs/ubifs/replay.c
-@@ -210,6 +210,38 @@ static int trun_remove_range(struct ubif
+@@ -242,6 +242,38 @@ static bool inode_still_linked(struct ub
}
/**
@@ -75,15 +75,15 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
* apply_replay_entry - apply a replay entry to the TNC.
* @c: UBIFS file-system description object
* @r: replay entry to apply
-@@ -236,6 +268,11 @@ static int apply_replay_entry(struct ubi
- {
- ino_t inum = key_inum(c, &r->key);
+@@ -270,6 +302,11 @@ static int apply_replay_entry(struct ubi
-+ if (inode_still_linked(c, r)) {
-+ err = 0;
+ if (inode_still_linked(c, r)) {
+ err = 0;
+ break;
+ }
+
- err = ubifs_tnc_remove_ino(c, inum);
- break;
- }
++ if (inode_still_linked(c, r)) {
++ err = 0;
+ break;
+ }
+
diff --git a/target/linux/generic/hack-4.19/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch b/target/linux/generic/hack-4.19/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch
deleted file mode 100644
index 9f48ba1cff..0000000000
--- a/target/linux/generic/hack-4.19/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From c942c462411e4757aafba73bf13b5e5c7a4b62ca Mon Sep 17 00:00:00 2001
-From: Christian Lamparter <chunkeey@gmail.com>
-Date: Sun, 23 Dec 2018 00:38:55 +0100
-Subject: [PATCH] mtd: rawnand: qcom: fix memory corruption that causes panic
-
-This patch fixes a memory corruption that occured in the
-qcom-nandc driver since it was converted to nand_scan().
-
-On boot, an affected device will panic from a NPE at a weird place:
-| Unable to handle kernel NULL pointer dereference at virtual address 00000000
-| pgd = (ptrval)
-| [00000000] *pgd=00000000
-| Internal error: Oops: 80000005 [#1] SMP ARM
-| CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.19.9 #0
-| Hardware name: Generic DT based system
-| PC is at (null)
-| LR is at nand_block_isbad+0x90/0xa4
-| pc : [<00000000>] lr : [<c0592240>] psr: 80000013
-| sp : cf839d40 ip : 00000000 fp : cfae9e20
-| r10: cf815810 r9 : 00000000 r8 : 00000000
-| r7 : 00000000 r6 : 00000000 r5 : 00000001 r4 : cf815810
-| r3 : 00000000 r2 : cfae9810 r1 : ffffffff r0 : cf815810
-| Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
-| Control: 10c5387d Table: 8020406a DAC: 00000051
-| Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
-| [<c0592240>] (nand_block_isbad) from [<c0580a94>] (allocate_partition+0x7a0/0x7dc)
-| [<c0580a94>] (allocate_partition) from [<c05811e4>] (add_mtd_partitions+0x58/0x10c)
-| [<c05811e4>] (add_mtd_partitions) from [<c0581164>] (parse_mtd_partitions+0x310/0x338)
-| [<c0581164>] (parse_mtd_partitions) from [<c057def4>] (mtd_device_parse_register+0x60/0x15c)
-| [<c057def4>] (mtd_device_parse_register) from [<c059d274>] (qcom_nandc_probe+0x770/0x8f4)
-| [<c059d274>] (qcom_nandc_probe) from [<c0567f00>] (platform_drv_probe+0x34/0x70)
-
-The problem is that the nand_scan()'s qcom_nand_attach_chip callback
-is updating the nandc->max_cwperpage from 1 to 4. This causes the
-sg_init_table of clear_bam_transaction() in the driver's
-qcom_nandc_block_bad() to memset much more than what was initially
-allocated by alloc_bam_transaction().
-
-Hence, this patch restores the old behavior by performing the
-alloc_bam_transaction() after the chip was identified.
-
-Fixes: 6a3cec64f18c ("mtd: rawnand: qcom: convert driver to nand_scan()")
-Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
----
- drivers/mtd/nand/raw/qcom_nandc.c | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
---- a/drivers/mtd/nand/raw/qcom_nandc.c
-+++ b/drivers/mtd/nand/raw/qcom_nandc.c
-@@ -2839,6 +2839,16 @@ static int qcom_nand_host_init_and_regis
- if (ret)
- return ret;
-
-+ if (nandc->props->is_bam) {
-+ free_bam_transaction(nandc);
-+ nandc->bam_txn = alloc_bam_transaction(nandc);
-+ if (!nandc->bam_txn) {
-+ dev_err(nandc->dev,
-+ "failed to allocate bam transaction\n");
-+ return -ENOMEM;
-+ }
-+ }
-+
- ret = mtd_device_register(mtd, NULL, 0);
- if (ret)
- nand_cleanup(chip);
-@@ -2853,16 +2863,6 @@ static int qcom_probe_nand_devices(struc
- struct qcom_nand_host *host;
- int ret;
-
-- if (nandc->props->is_bam) {
-- free_bam_transaction(nandc);
-- nandc->bam_txn = alloc_bam_transaction(nandc);
-- if (!nandc->bam_txn) {
-- dev_err(nandc->dev,
-- "failed to allocate bam transaction\n");
-- return -ENOMEM;
-- }
-- }
--
- for_each_available_child_of_node(dn, child) {
- host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL);
- if (!host) {
diff --git a/target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch b/target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch
index c0eb5a78aa..e24cac3ddd 100644
--- a/target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch
+++ b/target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch
@@ -27,11 +27,9 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
drivers/leds/led-triggers.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
-diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
-index 17d73db1456e..08e7c724a9dc 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
-@@ -134,6 +134,12 @@ int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig)
+@@ -134,6 +134,12 @@ int led_trigger_set(struct led_classdev
led_set_brightness(led_cdev, LED_OFF);
}
if (trig) {
@@ -44,7 +42,7 @@ index 17d73db1456e..08e7c724a9dc 100644
write_lock_irqsave(&trig->leddev_list_lock, flags);
list_add_tail(&led_cdev->trig_list, &trig->led_cdevs);
write_unlock_irqrestore(&trig->leddev_list_lock, flags);
-@@ -146,12 +152,6 @@ int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig)
+@@ -146,12 +152,6 @@ int led_trigger_set(struct led_classdev
if (ret)
goto err_activate;
@@ -57,7 +55,7 @@ index 17d73db1456e..08e7c724a9dc 100644
}
if (event) {
-@@ -165,17 +165,18 @@ int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig)
+@@ -165,17 +165,18 @@ int led_trigger_set(struct led_classdev
return 0;
@@ -79,6 +77,3 @@ index 17d73db1456e..08e7c724a9dc 100644
led_set_brightness(led_cdev, LED_OFF);
return ret;
---
-2.20.1
-
diff --git a/target/linux/generic/hack-4.19/204-module_strip.patch b/target/linux/generic/hack-4.19/204-module_strip.patch
index c30bfd5c9b..9a62a812cd 100644
--- a/target/linux/generic/hack-4.19/204-module_strip.patch
+++ b/target/linux/generic/hack-4.19/204-module_strip.patch
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1988,6 +1988,13 @@ config TRIM_UNUSED_KSYMS
+@@ -1993,6 +1993,13 @@ config TRIM_UNUSED_KSYMS
If unsure, or if you need to build out-of-tree modules, say N.
diff --git a/target/linux/generic/hack-4.19/207-disable-modorder.patch b/target/linux/generic/hack-4.19/207-disable-modorder.patch
index 7d7b6a8dfb..92c3343dd3 100644
--- a/target/linux/generic/hack-4.19/207-disable-modorder.patch
+++ b/target/linux/generic/hack-4.19/207-disable-modorder.patch
@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile
+++ b/Makefile
-@@ -1224,7 +1224,6 @@ all: modules
+@@ -1227,7 +1227,6 @@ all: modules
PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1253,7 +1252,6 @@ _modinst_:
+@@ -1256,7 +1255,6 @@ _modinst_:
rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \
fi
diff --git a/target/linux/generic/hack-4.19/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch b/target/linux/generic/hack-4.19/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch
index 860a7e03c5..c07ccf9474 100644
--- a/target/linux/generic/hack-4.19/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch
+++ b/target/linux/generic/hack-4.19/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/arch/mips/include/asm/r4kcache.h
+++ b/arch/mips/include/asm/r4kcache.h
-@@ -682,16 +682,48 @@ static inline void prot##extra##blast_##
+@@ -683,16 +683,48 @@ static inline void prot##extra##blast_##
unsigned long end) \
{ \
unsigned long lsize = cpu_##desc##_line_size(); \
diff --git a/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch b/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch
index 31efb35a97..85ffa1ac1b 100644
--- a/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch
+++ b/target/linux/generic/hack-4.19/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
-@@ -1509,6 +1509,9 @@ int genphy_update_link(struct phy_device
+@@ -1506,6 +1506,9 @@ int genphy_update_link(struct phy_device
{
int status;
diff --git a/target/linux/generic/hack-4.19/721-phy_packets.patch b/target/linux/generic/hack-4.19/721-phy_packets.patch
index 77a573446d..108aba121d 100644
--- a/target/linux/generic/hack-4.19/721-phy_packets.patch
+++ b/target/linux/generic/hack-4.19/721-phy_packets.patch
@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2516,6 +2516,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2527,6 +2527,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2646,16 +2650,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2657,16 +2661,6 @@ static inline struct sk_buff *dev_alloc_
}
@@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3233,10 +3233,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3238,10 +3238,20 @@ static int xmit_one(struct sk_buff *skb,
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
dev_queue_xmit_nit(skb, dev);
diff --git a/target/linux/generic/hack-4.19/902-debloat_proc.patch b/target/linux/generic/hack-4.19/902-debloat_proc.patch
index 6f4d264f35..b4eccd3a41 100644
--- a/target/linux/generic/hack-4.19/902-debloat_proc.patch
+++ b/target/linux/generic/hack-4.19/902-debloat_proc.patch
@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -3477,6 +3477,8 @@ static __net_initdata struct pernet_oper
+@@ -3482,6 +3482,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{
diff --git a/target/linux/generic/hack-4.19/904-debloat_dma_buf.patch b/target/linux/generic/hack-4.19/904-debloat_dma_buf.patch
index 20e1c9f7b5..9b686be77d 100644
--- a/target/linux/generic/hack-4.19/904-debloat_dma_buf.patch
+++ b/target/linux/generic/hack-4.19/904-debloat_dma_buf.patch
@@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+MODULE_LICENSE("GPL");
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2128,6 +2128,7 @@ int wake_up_state(struct task_struct *p,
+@@ -2127,6 +2127,7 @@ int wake_up_state(struct task_struct *p,
{
return try_to_wake_up(p, state, 0);
}
diff --git a/target/linux/generic/hack-4.19/930-crashlog.patch b/target/linux/generic/hack-4.19/930-crashlog.patch
index 3bb3e77778..4f303f9b8c 100644
--- a/target/linux/generic/hack-4.19/930-crashlog.patch
+++ b/target/linux/generic/hack-4.19/930-crashlog.patch
@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+#endif
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1041,6 +1041,10 @@ config RELAY
+@@ -1046,6 +1046,10 @@ config RELAY
If unsure, say N.
diff --git a/target/linux/generic/pending-4.19/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/target/linux/generic/pending-4.19/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
index 9f13539fde..bb65da973f 100644
--- a/target/linux/generic/pending-4.19/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
+++ b/target/linux/generic/pending-4.19/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
@@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6370,7 +6370,7 @@ static void __ref alloc_node_mem_map(str
+@@ -6384,7 +6384,7 @@ static void __ref alloc_node_mem_map(str
mem_map = NODE_DATA(0)->node_mem_map;
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
diff --git a/target/linux/generic/pending-4.19/203-kallsyms_uncompressed.patch b/target/linux/generic/pending-4.19/203-kallsyms_uncompressed.patch
index 074f0c45ed..9b3892de28 100644
--- a/target/linux/generic/pending-4.19/203-kallsyms_uncompressed.patch
+++ b/target/linux/generic/pending-4.19/203-kallsyms_uncompressed.patch
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1140,6 +1140,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1145,6 +1145,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
the unaligned access emulation.
see arch/parisc/kernel/unaligned.c for reference
diff --git a/target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch b/target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch
index 2f6ef14b04..a2ab6f3da5 100644
--- a/target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch
+++ b/target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch
@@ -36,7 +36,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+
config SPI_ATMEL_QUADSPI
tristate "Atmel Quad SPI Controller"
- depends on ARCH_AT91 || (ARM && COMPILE_TEST)
+ depends on ARCH_AT91 || (ARM && COMPILE_TEST && !ARCH_EBSA110)
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -2647,10 +2647,12 @@ static int spi_nor_select_erase(struct s
diff --git a/target/linux/generic/pending-4.19/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch b/target/linux/generic/pending-4.19/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch
deleted file mode 100644
index 5a272b40ba..0000000000
--- a/target/linux/generic/pending-4.19/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
-Subject: [PATCH v2 1/1] f2fs: fix validation of the block count in
- sanity_check_raw_super
-Date: Sat, 22 Dec 2018 11:22:26 +0100
-Message-Id: <20181222102226.10050-2-martin.blumenstingl@googlemail.com>
-
-Treat "block_count" from struct f2fs_super_block as 64-bit little endian
-value in sanity_check_raw_super() because struct f2fs_super_block
-declares "block_count" as "__le64".
-
-This fixes a bug where the superblock validation fails on big endian
-devices with the following error:
- F2FS-fs (sda1): Wrong segment_count / block_count (61439 > 0)
- F2FS-fs (sda1): Can't find valid F2FS filesystem in 1th superblock
- F2FS-fs (sda1): Wrong segment_count / block_count (61439 > 0)
- F2FS-fs (sda1): Can't find valid F2FS filesystem in 2th superblock
-As result of this the partition cannot be mounted.
-
-With this patch applied the superblock validation works fine and the
-partition can be mounted again:
- F2FS-fs (sda1): Mounted with checkpoint version = 7c84
-
-My little endian x86-64 hardware was able to mount the partition without
-this fix.
-To confirm that mounting f2fs filesystems works on big endian machines
-again I tested this on a 32-bit MIPS big endian (lantiq) device.
-
-Fixes: 0cfe75c5b01199 ("f2fs: enhance sanity_check_raw_super() to avoid potential overflows")
-Cc: stable@vger.kernel.org
-Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
-Reviewed-by: Chao Yu <yuchao0@huawei.com>
----
-
---- a/fs/f2fs/super.c
-+++ b/fs/f2fs/super.c
-@@ -2267,10 +2267,10 @@ static int sanity_check_raw_super(struct
- return 1;
- }
-
-- if (segment_count > (le32_to_cpu(raw_super->block_count) >> 9)) {
-+ if (segment_count > (le64_to_cpu(raw_super->block_count) >> 9)) {
- f2fs_msg(sb, KERN_INFO,
-- "Wrong segment_count / block_count (%u > %u)",
-- segment_count, le32_to_cpu(raw_super->block_count));
-+ "Wrong segment_count / block_count (%u > %llu)",
-+ segment_count, le64_to_cpu(raw_super->block_count));
- return 1;
- }
-
diff --git a/target/linux/generic/pending-4.19/630-packet_socket_type.patch b/target/linux/generic/pending-4.19/630-packet_socket_type.patch
index 5834ab14c1..273e7ff0a8 100644
--- a/target/linux/generic/pending-4.19/630-packet_socket_type.patch
+++ b/target/linux/generic/pending-4.19/630-packet_socket_type.patch
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3228,6 +3230,7 @@ static int packet_create(struct net *net
+@@ -3232,6 +3234,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 <nbd@nbd.name>
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3839,6 +3842,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3843,6 +3846,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 <nbd@nbd.name>
default:
return -ENOPROTOOPT;
}
-@@ -3891,6 +3904,13 @@ static int packet_getsockopt(struct sock
+@@ -3895,6 +3908,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.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch b/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch
index 6126436b99..0ac545c51c 100644
--- a/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch
+++ b/target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch
@@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+MODULE_ALIAS("nf-flow-table-hw");
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
-@@ -5396,6 +5396,13 @@ static int nf_tables_flowtable_parse_hoo
+@@ -5394,6 +5394,13 @@ static int nf_tables_flowtable_parse_hoo
if (err < 0)
return err;
@@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
if (!ops)
return -ENOMEM;
-@@ -5527,10 +5534,19 @@ static int nf_tables_newflowtable(struct
+@@ -5525,10 +5532,19 @@ static int nf_tables_newflowtable(struct
}
flowtable->data.type = type;
@@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
flowtable);
if (err < 0)
-@@ -5656,7 +5672,8 @@ static int nf_tables_fill_flowtable_info
+@@ -5654,7 +5670,8 @@ static int nf_tables_fill_flowtable_info
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
diff --git a/target/linux/generic/pending-4.19/655-increase_skb_pad.patch b/target/linux/generic/pending-4.19/655-increase_skb_pad.patch
index c19290f8d8..20b0fd894f 100644
--- a/target/linux/generic/pending-4.19/655-increase_skb_pad.patch
+++ b/target/linux/generic/pending-4.19/655-increase_skb_pad.patch
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2480,7 +2480,7 @@ static inline int pskb_network_may_pull(
+@@ -2491,7 +2491,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
diff --git a/target/linux/generic/pending-4.19/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-4.19/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
index 40f7962b67..e21f510fee 100644
--- a/target/linux/generic/pending-4.19/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
+++ b/target/linux/generic/pending-4.19/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
@@ -292,7 +292,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
__skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
-@@ -955,6 +1094,7 @@ static void init_tel_txopt(struct ipv6_t
+@@ -956,6 +1095,7 @@ static void init_tel_txopt(struct ipv6_t
opt->ops.opt_nflen = 8;
}
@@ -300,7 +300,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
/**
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
* @t: the outgoing tunnel device
-@@ -1312,6 +1452,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1309,6 +1449,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
{
struct ip6_tnl *t = netdev_priv(dev);
struct ipv6hdr *ipv6h;
@@ -308,7 +308,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
int encap_limit = -1;
__u16 offset;
struct flowi6 fl6;
-@@ -1379,6 +1520,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1373,6 +1514,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
@@ -327,7 +327,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
return -1;
-@@ -1507,6 +1660,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1504,6 +1657,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
t->parms.link = p->link;
t->parms.proto = p->proto;
t->parms.fwmark = p->fwmark;
@@ -342,7 +342,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
dst_cache_reset(&t->dst_cache);
ip6_tnl_link_config(t);
return 0;
-@@ -1545,6 +1706,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1542,6 +1703,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
p->flowinfo = u->flowinfo;
p->link = u->link;
p->proto = u->proto;
@@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
memcpy(p->name, u->name, sizeof(u->name));
}
-@@ -1931,6 +2093,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1928,6 +2090,15 @@ static int ip6_tnl_validate(struct nlatt
return 0;
}
@@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
static void ip6_tnl_netlink_parms(struct nlattr *data[],
struct __ip6_tnl_parm *parms)
{
-@@ -1968,6 +2139,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1965,6 +2136,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 <cyrus@openwrt.org>
}
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2083,6 +2294,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2080,6 +2291,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 <cyrus@openwrt.org>
return
/* IFLA_IPTUN_LINK */
nla_total_size(4) +
-@@ -2112,6 +2329,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2109,6 +2326,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 <cyrus@openwrt.org>
0;
}
-@@ -2119,6 +2354,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2116,6 +2351,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 <cyrus@openwrt.org>
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2128,9 +2366,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2125,9 +2363,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 <cyrus@openwrt.org>
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) ||
-@@ -2170,6 +2426,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2167,6 +2423,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.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index a022c2c556..485fb3e130 100644
--- a/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -76,7 +76,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
-@@ -177,6 +177,7 @@ static int ipmr_rule_action(struct fib_r
+@@ -179,6 +179,7 @@ static int ipmr_rule_action(struct fib_r
case FR_ACT_UNREACHABLE:
return -ENETUNREACH;
case FR_ACT_PROHIBIT:
@@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
tb_id = fib_rule_get_table(rule, arg);
--- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c
-@@ -159,6 +159,8 @@ static int ip6mr_rule_action(struct fib_
+@@ -162,6 +162,8 @@ static int ip6mr_rule_action(struct fib_
return -ENETUNREACH;
case FR_ACT_PROHIBIT:
return -EACCES;
@@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static void ip6_link_failure(struct sk_buff *skb);
static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
struct sk_buff *skb, u32 mtu);
-@@ -324,6 +326,18 @@ static const struct rt6_info ip6_prohibi
+@@ -326,6 +328,18 @@ static const struct rt6_info ip6_prohibi
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
};
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
-@@ -901,6 +915,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -903,6 +917,7 @@ static const int fib6_prop[RTN_MAX + 1]
[RTN_BLACKHOLE] = -EINVAL,
[RTN_UNREACHABLE] = -EHOSTUNREACH,
[RTN_PROHIBIT] = -EACCES,
@@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
[RTN_THROW] = -EAGAIN,
[RTN_NAT] = -EINVAL,
[RTN_XRESOLVE] = -EINVAL,
-@@ -938,6 +953,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -940,6 +955,10 @@ static void ip6_rt_init_dst_reject(struc
rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit;
break;
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -3745,6 +3764,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -3747,6 +3766,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
@@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/*
* Allocate a dst for local (unicast / anycast) address.
*/
-@@ -4192,7 +4222,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -4194,7 +4224,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
@@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -5031,6 +5062,8 @@ static int ip6_route_dev_notify(struct n
+@@ -5033,6 +5064,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -5042,6 +5075,7 @@ static int ip6_route_dev_notify(struct n
+@@ -5044,6 +5077,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
-@@ -5236,6 +5270,15 @@ static int __net_init ip6_route_net_init
+@@ -5238,6 +5272,15 @@ static int __net_init ip6_route_net_init
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
@@ -218,7 +218,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
#endif
net->ipv6.sysctl.flush_delay = 0;
-@@ -5254,6 +5297,8 @@ out:
+@@ -5256,6 +5299,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -227,7 +227,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -5274,6 +5319,7 @@ static void __net_exit ip6_route_net_exi
+@@ -5276,6 +5321,7 @@ static void __net_exit ip6_route_net_exi
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry);
@@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
}
-@@ -5350,6 +5396,9 @@ void __init ip6_route_init_special_entri
+@@ -5352,6 +5398,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
diff --git a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index 9ea7612123..4bac6f7ef9 100644
--- a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -5447,6 +5447,9 @@ static enum gro_result dev_gro_receive(s
+@@ -5452,6 +5452,9 @@ static enum gro_result dev_gro_receive(s
int same_flow;
int grow;
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -6941,6 +6944,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -6946,6 +6949,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
-@@ -6988,6 +7033,7 @@ static int __netdev_upper_dev_link(struc
+@@ -6993,6 +7038,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -7074,6 +7120,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -7079,6 +7125,7 @@ void netdev_upper_dev_unlink(struct net_
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
}
-@@ -7697,6 +7744,7 @@ int dev_set_mac_address(struct net_devic
+@@ -7702,6 +7749,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.19/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch
index bc45d4ed68..0cf187a491 100644
--- a/target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch
+++ b/target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -1133,6 +1133,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1130,6 +1130,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/generic/pending-4.19/834-ledtrig-libata.patch b/target/linux/generic/pending-4.19/834-ledtrig-libata.patch
index d89bfec897..16855201f3 100644
--- a/target/linux/generic/pending-4.19/834-ledtrig-libata.patch
+++ b/target/linux/generic/pending-4.19/834-ledtrig-libata.patch
@@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile
-@@ -5129,6 +5142,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5130,6 +5143,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (tag < 0)
return NULL;
}
@@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
qc = __ata_qc_from_tag(ap, tag);
qc->tag = qc->hw_tag = tag;
-@@ -6039,6 +6055,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -6040,6 +6056,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1;
#endif
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
ata_sff_port_init(ap);
return ap;
-@@ -6074,6 +6093,12 @@ static void ata_host_release(struct kref
+@@ -6075,6 +6094,12 @@ static void ata_host_release(struct kref
kfree(ap->pmp_link);
kfree(ap->slave_link);
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kfree(ap);
host->ports[i] = NULL;
}
-@@ -6537,7 +6562,23 @@ int ata_host_register(struct ata_host *h
+@@ -6538,7 +6563,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;
}
diff --git a/target/linux/generic/pending-4.19/920-mangle_bootargs.patch b/target/linux/generic/pending-4.19/920-mangle_bootargs.patch
index 85e6b97bb1..a2aeaf34ab 100644
--- a/target/linux/generic/pending-4.19/920-mangle_bootargs.patch
+++ b/target/linux/generic/pending-4.19/920-mangle_bootargs.patch
@@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1522,6 +1522,15 @@ config EMBEDDED
+@@ -1527,6 +1527,15 @@ config EMBEDDED
an embedded system so certain expert options are available
for configuration.
diff --git a/target/linux/ipq40xx/patches-4.19/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch b/target/linux/ipq40xx/patches-4.19/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch
index eae2fd9470..bcc6f65661 100644
--- a/target/linux/ipq40xx/patches-4.19/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch
+++ b/target/linux/ipq40xx/patches-4.19/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch
@@ -1,6 +1,6 @@
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1091,6 +1091,7 @@ static const struct flash_info spi_nor_i
+@@ -1092,6 +1092,7 @@ static const struct flash_info spi_nor_i
{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) },
{ "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
{ "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
@@ -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) },
-@@ -1273,11 +1274,12 @@ static const struct flash_info spi_nor_i
+@@ -1274,11 +1275,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) {
-@@ -1288,10 +1290,16 @@ static const struct flash_info *spi_nor_
+@@ -1289,10 +1291,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);
-@@ -2825,7 +2833,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -2826,7 +2834,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;
-@@ -2836,7 +2844,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -2837,7 +2845,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/mpc85xx/patches-4.19/100-powerpc-85xx-tl-wdr4900-v1-support.patch b/target/linux/mpc85xx/patches-4.19/100-powerpc-85xx-tl-wdr4900-v1-support.patch
index ddcc7f363c..6d76ebc32c 100644
--- a/target/linux/mpc85xx/patches-4.19/100-powerpc-85xx-tl-wdr4900-v1-support.patch
+++ b/target/linux/mpc85xx/patches-4.19/100-powerpc-85xx-tl-wdr4900-v1-support.patch
@@ -17,7 +17,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
-@@ -159,6 +159,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
+@@ -164,6 +164,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
@@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
src-wlib := $(sort $(src-wlib-y))
src-plat := $(sort $(src-plat-y))
-@@ -338,7 +338,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
+@@ -343,7 +344,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
image-$(CONFIG_TQM8560) += cuImage.tqm8560
image-$(CONFIG_SBC8548) += cuImage.sbc8548
image-$(CONFIG_KSI8560) += cuImage.ksi8560
@@ -49,10 +49,10 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
;;
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
-@@ -170,6 +181,18 @@ config STX_GP3
- select CPM2
- select DEFAULT_UIMAGE
-
+@@ -170,6 +170,18 @@ config STX_GP3
+ select CPM2
+ select DEFAULT_UIMAGE
+
+config TL_WDR4900_V1
+ bool "TP-Link TL-WDR4900 v1"
+ select DEFAULT_UIMAGE
@@ -66,8 +66,8 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+ Freescale P1014 SoC.
+
config TQM8540
- bool "TQ Components TQM8540"
- help
+ bool "TQ Components TQM8540"
+ help
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
@@ -26,6 +26,7 @@ obj-$(CONFIG_CORENET_GENERIC) += coren