Преглед изворни кода

kernel: bump 4.19 to 4.19.16

Refresh patches.
Remove upstreamed patches:
- backport/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch
- backport/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch
- backport/424-v4.20-net-dsa-fix-88e6060-roaming.patch
- hack/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch
- pending/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch
Update patch that no longer applies:
- backport/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch

Compile-tested: mesongx
Runtime-tested: mesongx

Signed-off-by: Stijn Tintel <[email protected]>
Stijn Tintel пре 6 година
родитељ
комит
a37098a2d0
41 измењених фајлова са 129 додато и 476 уклоњено
  1. 2 2
      include/kernel-version.mk
  2. 5 19
      target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch
  3. 1 1
      target/linux/apm821xx/patches-4.19/201-add-amcc-apollo3g-support.patch
  4. 1 1
      target/linux/apm821xx/patches-4.19/202-add-netgear-wndr4700-support.patch
  5. 3 3
      target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
  6. 4 4
      target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch
  7. 1 1
      target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch
  8. 2 2
      target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch
  9. 20 19
      target/linux/brcm47xx/patches-4.19/159-cpu_fixes.patch
  10. 2 2
      target/linux/brcm47xx/patches-4.19/160-kmap_coherent.patch
  11. 0 119
      target/linux/generic/backport-4.19/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch
  12. 0 32
      target/linux/generic/backport-4.19/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch
  13. 1 6
      target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch
  14. 5 2
      target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
  15. 0 44
      target/linux/generic/backport-4.19/424-v4.20-net-dsa-fix-88e6060-roaming.patch
  16. 9 9
      target/linux/generic/backport-4.19/500-ubifs-Handle-re-linking-of-inodes-correctly-while-re.patch
  17. 0 83
      target/linux/generic/hack-4.19/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch
  18. 3 8
      target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch
  19. 1 1
      target/linux/generic/hack-4.19/204-module_strip.patch
  20. 2 2
      target/linux/generic/hack-4.19/207-disable-modorder.patch
  21. 1 1
      target/linux/generic/hack-4.19/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch
  22. 1 1
      target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch
  23. 3 3
      target/linux/generic/hack-4.19/721-phy_packets.patch
  24. 1 1
      target/linux/generic/hack-4.19/902-debloat_proc.patch
  25. 1 1
      target/linux/generic/hack-4.19/904-debloat_dma_buf.patch
  26. 1 1
      target/linux/generic/hack-4.19/930-crashlog.patch
  27. 1 1
      target/linux/generic/pending-4.19/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
  28. 1 1
      target/linux/generic/pending-4.19/203-kallsyms_uncompressed.patch
  29. 1 1
      target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch
  30. 0 49
      target/linux/generic/pending-4.19/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch
  31. 3 3
      target/linux/generic/pending-4.19/630-packet_socket_type.patch
  32. 3 3
      target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch
  33. 1 1
      target/linux/generic/pending-4.19/655-increase_skb_pad.patch
  34. 12 12
      target/linux/generic/pending-4.19/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
  35. 13 13
      target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
  36. 5 5
      target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
  37. 1 1
      target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch
  38. 4 4
      target/linux/generic/pending-4.19/834-ledtrig-libata.patch
  39. 1 1
      target/linux/generic/pending-4.19/920-mangle_bootargs.patch
  40. 5 5
      target/linux/ipq40xx/patches-4.19/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch
  41. 8 8
      target/linux/mpc85xx/patches-4.19/100-powerpc-85xx-tl-wdr4900-v1-support.patch

+ 2 - 2
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)))))))

+ 5 - 19
target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch

@@ -55,11 +55,9 @@ Signed-off-by: Christian Lamparter <[email protected]>
 Signed-off-by: Vinod Koul <[email protected]>
 ---
 
-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
-

+ 1 - 1
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.
  

+ 1 - 1
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.
  

+ 3 - 3
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 <[email protected]>
  
  #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 <[email protected]>
  /* 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 <[email protected]>
  	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;
  

+ 4 - 4
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;

+ 1 - 1
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 <[email protected]>
 
 --- 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]);

+ 2 - 2
target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch

@@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <[email protected]>
  	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 <[email protected]>
  #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);
  	}
  

+ 20 - 19
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);
  

+ 2 - 2
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) {

+ 0 - 119
target/linux/generic/backport-4.19/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch

@@ -1,119 +0,0 @@
-From adcc81f148d733b7e8e641300c5590a2cdc13bf3 Mon Sep 17 00:00:00 2001
-From: Paul Burton <[email protected]>
-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 <[email protected]>
-Signed-off-by: Paul Burton <[email protected]>
-Fixes: 432c6bacbd0c ("MIPS: Use per-mm page to execute branch delay slot instructions")
-Cc: [email protected] # v4.8+
-Cc: [email protected]
-Cc: [email protected]
-Cc: Rich Felker <[email protected]>
-Cc: David Daney <[email protected]>
----
- 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;
- }

+ 0 - 32
target/linux/generic/backport-4.19/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch

@@ -1,32 +0,0 @@
-From 508b09046c0f21678652fb66fd1e9959d55591d2 Mon Sep 17 00:00:00 2001
-From: Alin Nastac <[email protected]>
-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 <[email protected]>
-Signed-off-by: Pablo Neira Ayuso <[email protected]>
----
- 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,

+ 1 - 6
target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch

@@ -61,11 +61,9 @@ CC: [email protected] # 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
-

+ 5 - 2
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 <[email protected]>
  MODULE_AUTHOR("Pablo Neira Ayuso <[email protected]>");
 --- 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 <[email protected]>
  {
 -	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 <[email protected]>
 -
 -register_expr:
 -	unregister_netdevice_notifier(&flow_offload_netdev_notifier);
+-err:
 -	return err;
 +	return nft_register_expr(&nft_flow_offload_type);
  }

+ 0 - 44
target/linux/generic/backport-4.19/424-v4.20-net-dsa-fix-88e6060-roaming.patch

@@ -1,44 +0,0 @@
-From a74515604a7b171f2702bdcbd1e231225fb456d0 Mon Sep 17 00:00:00 2001
-From: Anderson Luiz Alves <[email protected]>
-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 <[email protected]>
-Reviewed-by: Andrew Lunn <[email protected]>
-Signed-off-by: David S. Miller <[email protected]>
----
- 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;
- }

+ 9 - 9
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 <[email protected]>
 
 --- 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 <[email protected]>
   * 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;
+ 				}
+ 

+ 0 - 83
target/linux/generic/hack-4.19/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch

@@ -1,83 +0,0 @@
-From c942c462411e4757aafba73bf13b5e5c7a4b62ca Mon Sep 17 00:00:00 2001
-From: Christian Lamparter <[email protected]>
-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 <[email protected]>
----
- 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) {

+ 3 - 8
target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch

@@ -27,11 +27,9 @@ Signed-off-by: Christian Lamparter <[email protected]>
  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
-

+ 1 - 1
target/linux/generic/hack-4.19/204-module_strip.patch

@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
 --- 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.
  

+ 2 - 2
target/linux/generic/hack-4.19/207-disable-modorder.patch

@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 --- 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 <[email protected]>
  	@$(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

+ 1 - 1
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 <[email protected]>
 ---
 --- 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();			\

+ 1 - 1
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;
  

+ 3 - 3
target/linux/generic/hack-4.19/721-phy_packets.patch

@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
   */
 --- 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 <[email protected]>
  /**
   *	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 <[email protected]>
  	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);
  

+ 1 - 1
target/linux/generic/hack-4.19/902-debloat_proc.patch

@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
 --- 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)
  {

+ 1 - 1
target/linux/generic/hack-4.19/904-debloat_dma_buf.patch

@@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +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);
  }

+ 1 - 1
target/linux/generic/hack-4.19/930-crashlog.patch

@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +#endif
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1041,6 +1041,10 @@ config RELAY
+@@ -1046,6 +1046,10 @@ config RELAY
  
  	  If unsure, say N.
  

+ 1 - 1
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 <[email protected]>
 
 --- 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)

+ 1 - 1
target/linux/generic/pending-4.19/203-kallsyms_uncompressed.patch

@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 --- 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
  

+ 1 - 1
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 <[email protected]>
 +
  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

+ 0 - 49
target/linux/generic/pending-4.19/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch

@@ -1,49 +0,0 @@
-From: Martin Blumenstingl <[email protected]>
-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: <[email protected]>
-
-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: [email protected]
-Signed-off-by: Martin Blumenstingl <[email protected]>
-Reviewed-by: Chao Yu <[email protected]>
----
-
---- 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;
- 	}
- 

+ 3 - 3
target/linux/generic/pending-4.19/630-packet_socket_type.patch

@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	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 <[email protected]>
  
  	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 <[email protected]>
  	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;

+ 3 - 3
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 <[email protected]>
 +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 <[email protected]>
  	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 <[email protected]>
  	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),

+ 1 - 1
target/linux/generic/pending-4.19/655-increase_skb_pad.patch

@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 --- 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

+ 12 - 12
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 <[email protected]>
  	__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 <[email protected]>
  /**
   * 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 <[email protected]>
  	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 <[email protected]>
  	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 <[email protected]>
  	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 <[email protected]>
  	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 <[email protected]>
  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 <[email protected]>
  }
  
  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 <[email protected]>
  	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 <[email protected]>
  		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 <[email protected]>
  
  	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 <[email protected]>
  	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 },

+ 13 - 13
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 <[email protected]>
  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 <[email protected]>
  	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 <[email protected]>
  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 <[email protected]>
  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 <[email protected]>
  	[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 <[email protected]>
  	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 <[email protected]>
  /*
   *	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 <[email protected]>
  		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 <[email protected]>
  		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 <[email protected]>
  		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 <[email protected]>
  #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 <[email protected]>
  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 <[email protected]>
  #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);

+ 5 - 5
target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch

@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	__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 <[email protected]>
  	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 <[email protected]>
  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 <[email protected]>
  	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 <[email protected]>
  	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;

+ 1 - 1
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 <[email protected]>
 
 --- 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;
  

+ 4 - 4
target/linux/generic/pending-4.19/834-ledtrig-libata.patch

@@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  /**
   *	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 <[email protected]>
  
  	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 <[email protected]>
  	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 <[email protected]>
  		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;
  	}

+ 1 - 1
target/linux/generic/pending-4.19/920-mangle_bootargs.patch

@@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <[email protected]>
 
 --- 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.
  

+ 5 - 5
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;
  

+ 8 - 8
target/linux/mpc85xx/patches-4.19/100-powerpc-85xx-tl-wdr4900-v1-support.patch

@@ -17,7 +17,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
 
 --- 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 <[email protected]>
  
  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 <[email protected]>
          ;;
 --- 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 <[email protected]>
 +      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