From 8df12d76c642cd2e094e2c02fdf7b676fb902bc7 Mon Sep 17 00:00:00 2001
From: Koen Vandeputte <koen.vandeputte@ncentric.com>
Date: Mon, 8 Apr 2019 14:15:26 +0200
Subject: [PATCH] kernel: bump 4.19 to 4.19.34

Refreshed all patches.

Removed:
- 030-PCI-dwc-skip-MSI-init-if-MSIs-have-been-explicitly-d.patch

Altered:
- 366-netfilter-nf_flow_table-clean-up-and-fix-dst-handlin.patch
- 650-netfilter-add-xt_OFFLOAD-target.patch
- 662-remove_pfifo_fast.patch
- 332-arc-add-OWRTDTB-section.patch
- 100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch
- 702-phy_add_aneg_done_function.patch

New symbols:
- ARC_IRQ_NO_AUTOSAVE
- SUN50I_ERRATUM_UNKNOWN1

Compile-tested: cns3xxx, imx6, sunxi
Runtime-tested: cns3xxx, imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
---
 include/kernel-version.mk                     |  4 +-
 ...mware-loader-for-uPD720201-and-uPD72.patch |  6 +--
 .../802-usb-xhci-force-msi-renesas-xhci.patch |  4 +-
 .../0036-GPIO-add-named-gpio-exports.patch    |  4 +-
 .../910-unaligned_access_hacks.patch          | 16 +++----
 ...support-for-performing-fake-doorbell.patch |  2 +-
 .../905-BCM53573-minor-hacks.patch            |  2 +-
 ...able-USB-power-on-Netgear-WNDR3400v2.patch |  5 --
 ...-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch |  2 +-
 ...emini-Indent-DIR-685-partition-table.patch |  5 --
 ...-DIR-685-partition-table-for-OpenWrt.patch |  5 --
 ...-init-if-MSIs-have-been-explicitly-d.patch | 48 -------------------
 ...rt-Fix-build-failure-with-disabled-c.patch | 11 ++---
 ...ow_offload-handle-netdevice-events-f.patch |  4 +-
 ...w_table-clean-up-and-fix-dst-handlin.patch | 11 +----
 ...w_table-fix-offloaded-connection-tim.patch | 10 ++--
 ...w_table-fix-up-ct-state-of-flows-aft.patch |  2 +-
 target/linux/generic/config-4.19              |  2 +
 .../hack-4.19/207-disable-modorder.patch      |  4 +-
 .../generic/hack-4.19/220-gc_sections.patch   |  2 +-
 .../hack-4.19/647-netfilter-flow-acct.patch   |  4 +-
 .../650-netfilter-add-xt_OFFLOAD-target.patch |  4 +-
 .../661-use_fq_codel_by_default.patch         |  4 +-
 .../hack-4.19/662-remove_pfifo_fast.patch     |  7 ++-
 .../702-phy_add_aneg_done_function.patch      |  6 +--
 .../generic/hack-4.19/902-debloat_proc.patch  |  2 +-
 .../hack-4.19/904-debloat_dma_buf.patch       |  2 +-
 ...p-offload-hooks-on-netdev-unregister.patch |  4 +-
 .../pending-4.19/201-extra_optimization.patch |  2 +-
 .../pending-4.19/308-mips32r2_tune.patch      |  2 +-
 .../332-arc-add-OWRTDTB-section.patch         | 28 +++++------
 ...-netfilter_optional_tcp_window_check.patch |  2 +-
 ...w_table-add-hardware-offload-support.patch | 24 +++++-----
 ...w_table-rework-hardware-offload-time.patch |  2 +-
 ...ng-with-source-address-failed-policy.patch | 16 +++----
 ...edia-i2c-tda1997x-select-V4L2_FWNODE.patch |  5 --
 .../110-er200-ethernet_probe_order.patch      |  4 +-
 .../patches-4.19/120-cmdline-hack.patch       |  4 +-
 ...ers-arch_timer-Workaround-for-Allwin.patch | 44 +++--------------
 39 files changed, 102 insertions(+), 213 deletions(-)
 delete mode 100644 target/linux/generic/backport-4.19/030-PCI-dwc-skip-MSI-init-if-MSIs-have-been-explicitly-d.patch

diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 3d8e85abe2..8f80c31977 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -5,12 +5,12 @@ LINUX_RELEASE?=1
 LINUX_VERSION-3.18 = .136
 LINUX_VERSION-4.9 = .168
 LINUX_VERSION-4.14 = .111
-LINUX_VERSION-4.19 = .25
+LINUX_VERSION-4.19 = .34
 
 LINUX_KERNEL_HASH-3.18.136 = 48c8775013d23229462134f911bbb14c7935096fcccfb19ce28ecd5f7154f35c
 LINUX_KERNEL_HASH-4.9.168 = 4d451c21effad77de323edc9bfeae095aa1faed1a801ef427d66f5763bef091e
 LINUX_KERNEL_HASH-4.14.111 = f8197d56553f864d1d2e97abbe4fca50f8ab5e72089c292d22f0e4395340a6e8
-LINUX_KERNEL_HASH-4.19.25 = 7ec71d90d6e96e6f741676d157ac06f30c75be4eaf1649143a3c8b7d4f919731
+LINUX_KERNEL_HASH-4.19.34 = dd795e2a1fddbee5b03c3bb55a1926829cc08df4fdcabce62dda717ba087b8cc
 
 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/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 88866a68a0..6db2f2ec27 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"
-@@ -261,6 +263,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -262,6 +264,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)
  {
-@@ -299,6 +753,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -300,6 +754,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 */
-@@ -360,6 +830,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -361,6 +831,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 90fb27935a..fc4553d2d8 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
-@@ -214,6 +214,7 @@ static void xhci_pci_quirks(struct devic
+@@ -215,6 +215,7 @@ static void xhci_pci_quirks(struct devic
  	    pdev->device == 0x0015) {
  		xhci->quirks |= XHCI_RESET_ON_RESUME;
  		xhci->quirks |= XHCI_ZERO_64B_REGS;
@@ -43,7 +43,7 @@ produce a noisy warning.
  		hcd->msi_enabled = 1;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1859,6 +1859,7 @@ struct xhci_hcd {
+@@ -1867,6 +1867,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 */
diff --git a/target/linux/ath79/patches-4.19/0036-GPIO-add-named-gpio-exports.patch b/target/linux/ath79/patches-4.19/0036-GPIO-add-named-gpio-exports.patch
index 9c728b91f5..c3977efa01 100644
--- a/target/linux/ath79/patches-4.19/0036-GPIO-add-named-gpio-exports.patch
+++ b/target/linux/ath79/patches-4.19/0036-GPIO-add-named-gpio-exports.patch
@@ -141,7 +141,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  {
 --- a/include/linux/gpio/consumer.h
 +++ b/include/linux/gpio/consumer.h
-@@ -531,6 +531,7 @@ struct gpio_desc *devm_fwnode_get_gpiod_
+@@ -533,6 +533,7 @@ struct gpio_desc *devm_fwnode_get_gpiod_
  
  #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS)
  
@@ -149,7 +149,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  int gpiod_export(struct gpio_desc *desc, bool direction_may_change);
  int gpiod_export_link(struct device *dev, const char *name,
  		      struct gpio_desc *desc);
-@@ -538,6 +539,13 @@ void gpiod_unexport(struct gpio_desc *de
+@@ -540,6 +541,13 @@ void gpiod_unexport(struct gpio_desc *de
  
  #else  /* CONFIG_GPIOLIB && CONFIG_GPIO_SYSFS */
  
diff --git a/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch
index dcc0e8b3c6..67e462aec6 100644
--- a/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch
@@ -171,7 +171,7 @@
  #define UDP_CORK	1	/* Never send partially complete segments */
 --- a/net/netfilter/nf_conntrack_core.c
 +++ b/net/netfilter/nf_conntrack_core.c
-@@ -262,8 +262,8 @@ static bool ipv4_pkt_to_tuple(const stru
+@@ -262,8 +262,8 @@ nf_ct_get_tuple(const struct sk_buff *sk
  
  	switch (l3num) {
  	case NFPROTO_IPV4:
@@ -241,7 +241,7 @@
   */
 --- a/net/ipv6/datagram.c
 +++ b/net/ipv6/datagram.c
-@@ -477,7 +477,7 @@ int ipv6_recv_error(struct sock *sk, str
+@@ -478,7 +478,7 @@ int ipv6_recv_error(struct sock *sk, str
  				ipv6_iface_scope_id(&sin->sin6_addr,
  						    IP6CB(skb)->iif);
  		} else {
@@ -250,7 +250,7 @@
  					       &sin->sin6_addr);
  			sin->sin6_scope_id = 0;
  		}
-@@ -829,12 +829,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -828,12 +828,12 @@ int ip6_datagram_send_ctl(struct net *ne
  			}
  
  			if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
@@ -303,7 +303,7 @@
  #endif /* _LINUX_TYPES_H */
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
-@@ -1422,8 +1422,8 @@ struct sk_buff **inet_gro_receive(struct
+@@ -1422,8 +1422,8 @@ struct sk_buff *inet_gro_receive(struct
  	if (unlikely(ip_fast_csum((u8 *)iph, 5)))
  		goto out_unlock;
  
@@ -556,7 +556,7 @@
  			goto next_ht;
 --- a/net/ipv6/ip6_offload.c
 +++ b/net/ipv6/ip6_offload.c
-@@ -223,7 +223,7 @@ static struct sk_buff **ipv6_gro_receive
+@@ -223,7 +223,7 @@ static struct sk_buff *ipv6_gro_receive(
  			continue;
  
  		iph2 = (struct ipv6hdr *)(p->data + off);
@@ -648,7 +648,7 @@
  		if (xb)
  			return i * 32 + 31 - __fls(ntohl(xb));
  	}
-@@ -876,17 +880,18 @@ static inline int ip6_default_np_autolab
+@@ -876,17 +880,18 @@ static inline int ip6_multipath_hash_pol
  static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
  				__be32 flowlabel)
  {
@@ -762,7 +762,7 @@
  
 --- a/net/ipv6/netfilter/nf_log_ipv6.c
 +++ b/net/ipv6/netfilter/nf_log_ipv6.c
-@@ -66,9 +66,9 @@ static void dump_ipv6_packet(struct nf_l
+@@ -66,9 +66,9 @@ static void dump_ipv6_packet(struct net
  	/* Max length: 44 "LEN=65535 TC=255 HOPLIMIT=255 FLOWLBL=FFFFF " */
  	nf_log_buf_add(m, "LEN=%zu TC=%u HOPLIMIT=%u FLOWLBL=%u ",
  	       ntohs(ih->payload_len) + sizeof(struct ipv6hdr),
@@ -849,7 +849,7 @@
  
 --- a/net/ipv4/tcp_offload.c
 +++ b/net/ipv4/tcp_offload.c
-@@ -226,7 +226,7 @@ struct sk_buff **tcp_gro_receive(struct
+@@ -226,7 +226,7 @@ struct sk_buff *tcp_gro_receive(struct l
  
  		th2 = tcp_hdr(p);
  
diff --git a/target/linux/bcm53xx/patches-4.19/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-4.19/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
index 89b4cc8d97..6bd99b7486 100644
--- a/target/linux/bcm53xx/patches-4.19/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
+++ b/target/linux/bcm53xx/patches-4.19/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
@@ -127,7 +127,7 @@ it on BCM4708 family.
  /*
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1848,6 +1848,7 @@ struct xhci_hcd {
+@@ -1856,6 +1856,7 @@ struct xhci_hcd {
  #define XHCI_ZERO_64B_REGS	BIT_ULL(32)
  #define XHCI_RESET_PLL_ON_DISCONNECT	BIT_ULL(34)
  #define XHCI_SNPS_BROKEN_SUSPEND    BIT_ULL(35)
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 773197d8d1..470b17a5ff 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
@@ -61,7 +61,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
  #include <linux/clockchips.h>
  #include <linux/clocksource.h>
  #include <linux/interrupt.h>
-@@ -864,6 +865,16 @@ static void arch_timer_of_configure_rate
+@@ -919,6 +920,16 @@ static void arch_timer_of_configure_rate
  	if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
  		arch_timer_rate = rate;
  
diff --git a/target/linux/brcm47xx/patches-4.19/031-v5.1-mips-bcm47xx-Enable-USB-power-on-Netgear-WNDR3400v2.patch b/target/linux/brcm47xx/patches-4.19/031-v5.1-mips-bcm47xx-Enable-USB-power-on-Netgear-WNDR3400v2.patch
index 6e8ad0f36c..34a79f9d5b 100644
--- a/target/linux/brcm47xx/patches-4.19/031-v5.1-mips-bcm47xx-Enable-USB-power-on-Netgear-WNDR3400v2.patch
+++ b/target/linux/brcm47xx/patches-4.19/031-v5.1-mips-bcm47xx-Enable-USB-power-on-Netgear-WNDR3400v2.patch
@@ -22,8 +22,6 @@ Signed-off-by: Paul Burton <paul.burton@mips.com>
  arch/mips/bcm47xx/workarounds.c | 1 +
  1 file changed, 1 insertion(+)
 
-diff --git a/arch/mips/bcm47xx/workarounds.c b/arch/mips/bcm47xx/workarounds.c
-index 46eddbe..0ab95dd 100644
 --- a/arch/mips/bcm47xx/workarounds.c
 +++ b/arch/mips/bcm47xx/workarounds.c
 @@ -24,6 +24,7 @@ void __init bcm47xx_workarounds(void)
@@ -34,6 +32,3 @@ index 46eddbe..0ab95dd 100644
  	case BCM47XX_BOARD_NETGEAR_WNDR3400_V3:
  		bcm47xx_workarounds_enable_usb_power(21);
  		break;
--- 
-1.9.1
-
diff --git a/target/linux/cns3xxx/patches-4.19/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch b/target/linux/cns3xxx/patches-4.19/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch
index 4b4f0e4f0a..b17a61392d 100644
--- a/target/linux/cns3xxx/patches-4.19/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch
+++ b/target/linux/cns3xxx/patches-4.19/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch
@@ -1,6 +1,6 @@
 --- a/drivers/pci/probe.c
 +++ b/drivers/pci/probe.c
-@@ -2619,7 +2619,8 @@ static void pcie_write_mrrs(struct pci_d
+@@ -2629,7 +2629,8 @@ static void pcie_write_mrrs(struct pci_d
  	 * In the "safe" case, do not configure the MRRS.  There appear to be
  	 * issues with setting MRRS to 0 on a number of devices.
  	 */
diff --git a/target/linux/gemini/patches-4.19/0019-ARM-dts-gemini-Indent-DIR-685-partition-table.patch b/target/linux/gemini/patches-4.19/0019-ARM-dts-gemini-Indent-DIR-685-partition-table.patch
index b121ca174e..c205b5f88d 100644
--- a/target/linux/gemini/patches-4.19/0019-ARM-dts-gemini-Indent-DIR-685-partition-table.patch
+++ b/target/linux/gemini/patches-4.19/0019-ARM-dts-gemini-Indent-DIR-685-partition-table.patch
@@ -12,8 +12,6 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  arch/arm/boot/dts/gemini-dlink-dir-685.dts | 82 ++++++++++++----------
  1 file changed, 44 insertions(+), 38 deletions(-)
 
-diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
-index 9b2824816ddc..50ff65d95f26 100644
 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 @@ -267,44 +267,50 @@
@@ -105,6 +103,3 @@ index 9b2824816ddc..50ff65d95f26 100644
  			};
  		};
  
--- 
-2.20.1
-
diff --git a/target/linux/gemini/patches-4.19/0020-ARM-dts-Augment-DIR-685-partition-table-for-OpenWrt.patch b/target/linux/gemini/patches-4.19/0020-ARM-dts-Augment-DIR-685-partition-table-for-OpenWrt.patch
index bf044e0c69..bb4076558d 100644
--- a/target/linux/gemini/patches-4.19/0020-ARM-dts-Augment-DIR-685-partition-table-for-OpenWrt.patch
+++ b/target/linux/gemini/patches-4.19/0020-ARM-dts-Augment-DIR-685-partition-table-for-OpenWrt.patch
@@ -12,8 +12,6 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  arch/arm/boot/dts/gemini-dlink-dir-685.dts | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
 
-diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
-index 50ff65d95f26..7db30cc9d189 100644
 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 @@ -20,7 +20,7 @@
@@ -35,6 +33,3 @@ index 50ff65d95f26..7db30cc9d189 100644
  					reg = <0x00040000 0x01f40000>;
  					read-only;
  				};
--- 
-2.20.1
-
diff --git a/target/linux/generic/backport-4.19/030-PCI-dwc-skip-MSI-init-if-MSIs-have-been-explicitly-d.patch b/target/linux/generic/backport-4.19/030-PCI-dwc-skip-MSI-init-if-MSIs-have-been-explicitly-d.patch
deleted file mode 100644
index d87dfd26ef..0000000000
--- a/target/linux/generic/backport-4.19/030-PCI-dwc-skip-MSI-init-if-MSIs-have-been-explicitly-d.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 26a3cdb73644090ff9a2fb68775ef61d361a8883 Mon Sep 17 00:00:00 2001
-From: Lucas Stach <l.stach@pengutronix.de>
-Date: Wed, 27 Feb 2019 17:52:19 +0100
-Subject: [PATCH] PCI: dwc: skip MSI init if MSIs have been explicitly disabled
-
-commit 3afc8299f39a27b60e1519a28e18878ce878e7dd upstream.
-
-Since 7c5925afbc58 (PCI: dwc: Move MSI IRQs allocation to IRQ domains
-hierarchical API) the MSI init claims one of the controller IRQs as a
-chained IRQ line for the MSI controller. On some designs, like the i.MX6,
-this line is shared with a PCIe legacy IRQ. When the line is claimed for
-the MSI domain, any device trying to use this legacy IRQs will fail to
-request this IRQ line.
-
-As MSI and legacy IRQs are already mutually exclusive on the DWC core,
-as the core won't forward any legacy IRQs once any MSI has been enabled,
-users wishing to use legacy IRQs already need to explictly disable MSI
-support (usually via the pci=nomsi kernel commandline option). To avoid
-any issues with MSI conflicting with legacy IRQs, just skip all of the
-DWC MSI initalization, including the IRQ line claim, when MSI is disabled.
-
-Fixes: 7c5925afbc58 ("PCI: dwc: Move MSI IRQs allocation to IRQ domains hierarchical API")
-Tested-by: Tim Harvey <tharvey@gateworks.com>
-Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
-Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
-Acked-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/pci/controller/dwc/pcie-designware-host.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
-index 0fa9e8fdce66..b56e22262a77 100644
---- a/drivers/pci/controller/dwc/pcie-designware-host.c
-+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
-@@ -439,7 +439,7 @@ int dw_pcie_host_init(struct pcie_port *pp)
- 	if (ret)
- 		pci->num_viewport = 2;
- 
--	if (IS_ENABLED(CONFIG_PCI_MSI)) {
-+	if (IS_ENABLED(CONFIG_PCI_MSI) && pci_msi_enabled()) {
- 		/*
- 		 * If a specific SoC driver needs to change the
- 		 * default number of vectors, it needs to implement
--- 
-2.17.1
-
diff --git a/target/linux/generic/backport-4.19/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch b/target/linux/generic/backport-4.19/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch
index cb653170ef..b1843842e4 100644
--- a/target/linux/generic/backport-4.19/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch
+++ b/target/linux/generic/backport-4.19/060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch
@@ -31,8 +31,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  drivers/tty/serial/ar933x_uart.c | 24 ++++++++----------------
  1 file changed, 8 insertions(+), 16 deletions(-)
 
-diff --git a/drivers/tty/serial/ar933x_uart.c b/drivers/tty/serial/ar933x_uart.c
-index db5df3d..3bdd56a 100644
 --- a/drivers/tty/serial/ar933x_uart.c
 +++ b/drivers/tty/serial/ar933x_uart.c
 @@ -49,11 +49,6 @@ struct ar933x_uart_port {
@@ -47,7 +45,7 @@ index db5df3d..3bdd56a 100644
  static inline unsigned int ar933x_uart_read(struct ar933x_uart_port *up,
  					    int offset)
  {
-@@ -508,6 +503,7 @@ static int ar933x_uart_verify_port(struct uart_port *port,
+@@ -508,6 +503,7 @@ static const struct uart_ops ar933x_uart
  	.verify_port	= ar933x_uart_verify_port,
  };
  
@@ -55,7 +53,7 @@ index db5df3d..3bdd56a 100644
  static struct ar933x_uart_port *
  ar933x_console_ports[CONFIG_SERIAL_AR933X_NR_UARTS];
  
-@@ -604,14 +600,7 @@ static int ar933x_uart_console_setup(struct console *co, char *options)
+@@ -604,14 +600,7 @@ static struct console ar933x_uart_consol
  	.index		= -1,
  	.data		= &ar933x_uart_driver,
  };
@@ -71,7 +69,7 @@ index db5df3d..3bdd56a 100644
  
  static struct uart_driver ar933x_uart_driver = {
  	.owner		= THIS_MODULE,
-@@ -700,7 +689,9 @@ static int ar933x_uart_probe(struct platform_device *pdev)
+@@ -700,7 +689,9 @@ static int ar933x_uart_probe(struct plat
  	baud = ar933x_uart_get_baud(port->uartclk, 0, AR933X_UART_MAX_STEP);
  	up->max_baud = min_t(unsigned int, baud, AR933X_UART_MAX_BAUD);
  
@@ -94,6 +92,3 @@ index db5df3d..3bdd56a 100644
  
  	ret = uart_register_driver(&ar933x_uart_driver);
  	if (ret)
--- 
-1.9.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 51c9e488e9..f8ccfcc95d 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
@@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/net/netfilter/nf_flow_table_core.c
 +++ b/net/netfilter/nf_flow_table_core.c
-@@ -519,5 +519,35 @@ void nf_flow_table_free(struct nf_flowta
+@@ -520,5 +520,35 @@ void nf_flow_table_free(struct nf_flowta
  }
  EXPORT_SYMBOL_GPL(nf_flow_table_free);
  
@@ -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,47 +193,14 @@ static struct nft_expr_type nft_flow_off
+@@ -196,47 +196,14 @@ static struct nft_expr_type nft_flow_off
  	.owner		= THIS_MODULE,
  };
  
diff --git a/target/linux/generic/backport-4.19/366-netfilter-nf_flow_table-clean-up-and-fix-dst-handlin.patch b/target/linux/generic/backport-4.19/366-netfilter-nf_flow_table-clean-up-and-fix-dst-handlin.patch
index 624602dabe..ac7a73b60e 100644
--- a/target/linux/generic/backport-4.19/366-netfilter-nf_flow_table-clean-up-and-fix-dst-handlin.patch
+++ b/target/linux/generic/backport-4.19/366-netfilter-nf_flow_table-clean-up-and-fix-dst-handlin.patch
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		return NF_ACCEPT;
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/net/netfilter/nft_flow_offload.c
-@@ -17,27 +17,38 @@ struct nft_flow_offload {
+@@ -18,13 +18,11 @@ struct nft_flow_offload {
  	struct nft_flowtable	*flowtable;
  };
  
@@ -56,14 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	struct flowi fl;
  
  	memset(&fl, 0, sizeof(fl));
- 	switch (nft_pf(pkt)) {
- 	case NFPROTO_IPV4:
--		fl.u.ip4.daddr = ct->tuplehash[!dir].tuple.dst.u3.ip;
-+		fl.u.ip4.daddr = ct->tuplehash[dir].tuple.src.u3.ip;
- 		break;
- 	case NFPROTO_IPV6:
--		fl.u.ip6.daddr = ct->tuplehash[!dir].tuple.dst.u3.in6;
-+		fl.u.ip6.daddr = ct->tuplehash[dir].tuple.src.u3.in6;
+@@ -39,8 +37,21 @@ static int nft_flow_route(const struct n
  		break;
  	}
  
diff --git a/target/linux/generic/backport-4.19/370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch b/target/linux/generic/backport-4.19/370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch
index 9c4b7e392e..c7436f7740 100644
--- a/target/linux/generic/backport-4.19/370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch
+++ b/target/linux/generic/backport-4.19/370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch
@@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/netfilter/nf_conntrack_core.c
 +++ b/net/netfilter/nf_conntrack_core.c
-@@ -1119,18 +1119,6 @@ static bool gc_worker_can_early_drop(con
+@@ -1143,18 +1143,6 @@ static bool gc_worker_can_early_drop(con
  	return false;
  }
  
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static void gc_worker(struct work_struct *work)
  {
  	unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
-@@ -1167,10 +1155,8 @@ static void gc_worker(struct work_struct
+@@ -1191,10 +1179,8 @@ static void gc_worker(struct work_struct
  			tmp = nf_ct_tuplehash_to_ctrack(h);
  
  			scanned++;
@@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  				nf_ct_gc_expired(tmp);
 --- a/net/netfilter/nf_flow_table_core.c
 +++ b/net/netfilter/nf_flow_table_core.c
-@@ -182,8 +182,27 @@ static const struct rhashtable_params nf
+@@ -183,8 +183,27 @@ static const struct rhashtable_params nf
  	.automatic_shrinking	= true,
  };
  
@@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	flow->timeout = (u32)jiffies;
  
  	rhashtable_insert_fast(&flow_table->rhashtable,
-@@ -304,6 +323,8 @@ static int nf_flow_offload_gc_step(struc
+@@ -305,6 +324,8 @@ static int nf_flow_offload_gc_step(struc
  	rhashtable_walk_start(&hti);
  
  	while ((tuplehash = rhashtable_walk_next(&hti))) {
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		if (IS_ERR(tuplehash)) {
  			err = PTR_ERR(tuplehash);
  			if (err != -EAGAIN)
-@@ -316,9 +337,13 @@ static int nf_flow_offload_gc_step(struc
+@@ -317,9 +338,13 @@ static int nf_flow_offload_gc_step(struc
  
  		flow = container_of(tuplehash, struct flow_offload, tuplehash[0]);
  
diff --git a/target/linux/generic/backport-4.19/371-netfilter-nf_flow_table-fix-up-ct-state-of-flows-aft.patch b/target/linux/generic/backport-4.19/371-netfilter-nf_flow_table-fix-up-ct-state-of-flows-aft.patch
index 59751ff037..5ee55b8f08 100644
--- a/target/linux/generic/backport-4.19/371-netfilter-nf_flow_table-fix-up-ct-state-of-flows-aft.patch
+++ b/target/linux/generic/backport-4.19/371-netfilter-nf_flow_table-fix-up-ct-state-of-flows-aft.patch
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/netfilter/nf_flow_table_core.c
 +++ b/net/netfilter/nf_flow_table_core.c
-@@ -230,6 +230,9 @@ static void flow_offload_del(struct nf_f
+@@ -231,6 +231,9 @@ static void flow_offload_del(struct nf_f
  	e = container_of(flow, struct flow_offload_entry, flow);
  	clear_bit(IPS_OFFLOAD_BIT, &e->ct->status);
  
diff --git a/target/linux/generic/config-4.19 b/target/linux/generic/config-4.19
index e187241567..affe93cc72 100644
--- a/target/linux/generic/config-4.19
+++ b/target/linux/generic/config-4.19
@@ -283,6 +283,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
 # CONFIG_ARCH_ZYNQMP is not set
 # CONFIG_ARCNET is not set
 # CONFIG_ARC_EMAC is not set
+# CONFIG_ARC_IRQ_NO_AUTOSAVE is not set
 # CONFIG_ARM64_ERRATUM_1024718 is not set
 # CONFIG_ARM64_ERRATUM_819472 is not set
 # CONFIG_ARM64_ERRATUM_824069 is not set
@@ -5056,6 +5057,7 @@ CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_ST_UVIS25 is not set
 # CONFIG_SUN4I_GPADC is not set
 # CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUN50I_ERRATUM_UNKNOWN1 is not set
 # CONFIG_SUNDANCE is not set
 # CONFIG_SUNGEM is not set
 # CONFIG_SUNRPC is not set
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 92c3343dd3..f47da3f24e 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
-@@ -1227,7 +1227,6 @@ all: modules
+@@ -1232,7 +1232,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
  
-@@ -1256,7 +1255,6 @@ _modinst_:
+@@ -1261,7 +1260,6 @@ _modinst_:
  		rm -f $(MODLIB)/build ; \
  		ln -s $(CURDIR) $(MODLIB)/build ; \
  	fi
diff --git a/target/linux/generic/hack-4.19/220-gc_sections.patch b/target/linux/generic/hack-4.19/220-gc_sections.patch
index 17fcc5cbd2..2d0de9d8d3 100644
--- a/target/linux/generic/hack-4.19/220-gc_sections.patch
+++ b/target/linux/generic/hack-4.19/220-gc_sections.patch
@@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  # Read KERNELRELEASE from include/config/kernel.release (if it exists)
  KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
  KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
-@@ -785,11 +790,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
+@@ -788,11 +793,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
  KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
  endif
  
diff --git a/target/linux/generic/hack-4.19/647-netfilter-flow-acct.patch b/target/linux/generic/hack-4.19/647-netfilter-flow-acct.patch
index 8b13a43fd5..2a9725f939 100644
--- a/target/linux/generic/hack-4.19/647-netfilter-flow-acct.patch
+++ b/target/linux/generic/hack-4.19/647-netfilter-flow-acct.patch
@@ -1,6 +1,6 @@
 --- a/include/net/netfilter/nf_flow_table.h
 +++ b/include/net/netfilter/nf_flow_table.h
-@@ -164,6 +164,8 @@ struct nf_flow_table_hw {
+@@ -163,6 +163,8 @@ struct nf_flow_table_hw {
  int nf_flow_table_hw_register(const struct nf_flow_table_hw *offload);
  void nf_flow_table_hw_unregister(const struct nf_flow_table_hw *offload);
  
@@ -19,7 +19,7 @@
  
  struct flow_offload_entry {
  	struct flow_offload	flow;
-@@ -148,6 +149,22 @@ void flow_offload_free(struct flow_offlo
+@@ -149,6 +150,22 @@ void flow_offload_free(struct flow_offlo
  }
  EXPORT_SYMBOL_GPL(flow_offload_free);
  
diff --git a/target/linux/generic/hack-4.19/650-netfilter-add-xt_OFFLOAD-target.patch b/target/linux/generic/hack-4.19/650-netfilter-add-xt_OFFLOAD-target.patch
index ab1bb6aa81..8ebea32a82 100644
--- a/target/linux/generic/hack-4.19/650-netfilter-add-xt_OFFLOAD-target.patch
+++ b/target/linux/generic/hack-4.19/650-netfilter-add-xt_OFFLOAD-target.patch
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o
 --- /dev/null
 +++ b/net/netfilter/xt_FLOWOFFLOAD.c
-@@ -0,0 +1,368 @@
+@@ -0,0 +1,366 @@
 +/*
 + * Copyright (C) 2018 Felix Fietkau <nbd@nbd.name>
 + *
@@ -330,9 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +		return -EINVAL;
 +
 +	route->tuple[dir].dst		= this_dst;
-+	route->tuple[dir].ifindex	= xt_in(par)->ifindex;
 +	route->tuple[!dir].dst		= other_dst;
-+	route->tuple[!dir].ifindex	= xt_out(par)->ifindex;
 +
 +	return 0;
 +}
diff --git a/target/linux/generic/hack-4.19/661-use_fq_codel_by_default.patch b/target/linux/generic/hack-4.19/661-use_fq_codel_by_default.patch
index ce9d4b14f0..817c41801f 100644
--- a/target/linux/generic/hack-4.19/661-use_fq_codel_by_default.patch
+++ b/target/linux/generic/hack-4.19/661-use_fq_codel_by_default.patch
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/net/sch_generic.h
 +++ b/include/net/sch_generic.h
-@@ -486,12 +486,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
+@@ -481,12 +481,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
  extern struct Qdisc_ops pfifo_fast_ops;
  extern struct Qdisc_ops mq_qdisc_ops;
  extern struct Qdisc_ops noqueue_qdisc_ops;
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  EXPORT_SYMBOL(default_qdisc_ops);
  
  /* Main transmission queue. */
-@@ -1005,7 +1005,7 @@ static void attach_one_default_qdisc(str
+@@ -1004,7 +1004,7 @@ static void attach_one_default_qdisc(str
  				     void *_unused)
  {
  	struct Qdisc *qdisc;
diff --git a/target/linux/generic/hack-4.19/662-remove_pfifo_fast.patch b/target/linux/generic/hack-4.19/662-remove_pfifo_fast.patch
index 8f54c516f9..0009940cd1 100644
--- a/target/linux/generic/hack-4.19/662-remove_pfifo_fast.patch
+++ b/target/linux/generic/hack-4.19/662-remove_pfifo_fast.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/sched/sch_generic.c
 +++ b/net/sched/sch_generic.c
-@@ -595,208 +595,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea
+@@ -595,207 +595,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea
  	.owner		=	THIS_MODULE,
  };
  
@@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 -	if (unlikely(err))
 -		return qdisc_drop_cpu(skb, qdisc, to_free);
 -
--	qdisc_qstats_cpu_qlen_inc(qdisc);
+-	qdisc_qstats_atomic_qlen_inc(qdisc);
 -	/* Note: skb can not be used after skb_array_produce(),
 -	 * so we better not use qdisc_qstats_cpu_backlog_inc()
 -	 */
@@ -77,7 +77,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 -	if (likely(skb)) {
 -		qdisc_qstats_cpu_backlog_dec(qdisc, skb);
 -		qdisc_bstats_cpu_update(qdisc, skb);
--		qdisc_qstats_cpu_qlen_dec(qdisc);
+-		qdisc_qstats_atomic_qlen_dec(qdisc);
 -	}
 -
 -	return skb;
@@ -121,7 +121,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 -		struct gnet_stats_queue *q = per_cpu_ptr(qdisc->cpu_qstats, i);
 -
 -		q->backlog = 0;
--		q->qlen = 0;
 -	}
 -}
 -
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 85ffa1ac1b..6fbcd43d66 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
@@ -22,6 +22,6 @@
 +	if (phydev->drv && phydev->drv->update_link)
 +		return phydev->drv->update_link(phydev);
 +
- 	/* Do a fake read */
- 	status = phy_read(phydev, MII_BMSR);
- 	if (status < 0)
+ 	/* The link state is latched low so that momentary link
+ 	 * drops can be detected. Do not double-read the status
+ 	 * in polling mode to detect such short link drops.
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 018efda8f7..bf633d5ece 100644
--- a/target/linux/generic/hack-4.19/902-debloat_proc.patch
+++ b/target/linux/generic/hack-4.19/902-debloat_proc.patch
@@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	if (!pe)
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
-@@ -2736,6 +2736,8 @@ static const struct seq_operations vmall
+@@ -2740,6 +2740,8 @@ static const struct seq_operations vmall
  
  static int __init proc_vmalloc_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 9b686be77d..a4b6e36d07 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
-@@ -2127,6 +2127,7 @@ int wake_up_state(struct task_struct *p,
+@@ -2129,6 +2129,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/940-cleanup-offload-hooks-on-netdev-unregister.patch b/target/linux/generic/hack-4.19/940-cleanup-offload-hooks-on-netdev-unregister.patch
index 6638a5e949..6db6112b79 100644
--- a/target/linux/generic/hack-4.19/940-cleanup-offload-hooks-on-netdev-unregister.patch
+++ b/target/linux/generic/hack-4.19/940-cleanup-offload-hooks-on-netdev-unregister.patch
@@ -39,7 +39,7 @@ Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
 
 --- a/net/netfilter/xt_FLOWOFFLOAD.c
 +++ b/net/netfilter/xt_FLOWOFFLOAD.c
-@@ -340,10 +340,41 @@ static void xt_flowoffload_table_cleanup
+@@ -338,10 +338,41 @@ static void xt_flowoffload_table_cleanup
  	nf_flow_table_free(table);
  }
  
@@ -81,7 +81,7 @@ Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
  	INIT_DELAYED_WORK(&hook_work, xt_flowoffload_hook_work);
  
  	ret = xt_flowoffload_table_init(&nf_flowtable);
-@@ -361,6 +392,7 @@ static void __exit xt_flowoffload_tg_exi
+@@ -359,6 +390,7 @@ static void __exit xt_flowoffload_tg_exi
  {
  	xt_unregister_target(&offload_tg_reg);
  	xt_flowoffload_table_cleanup(&nf_flowtable);
diff --git a/target/linux/generic/pending-4.19/201-extra_optimization.patch b/target/linux/generic/pending-4.19/201-extra_optimization.patch
index d86e29fc75..3a34c4744d 100644
--- a/target/linux/generic/pending-4.19/201-extra_optimization.patch
+++ b/target/linux/generic/pending-4.19/201-extra_optimization.patch
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -659,12 +659,12 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
+@@ -662,12 +662,12 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
  
  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
  KBUILD_CFLAGS	+= $(call cc-option,-Oz,-Os)
diff --git a/target/linux/generic/pending-4.19/308-mips32r2_tune.patch b/target/linux/generic/pending-4.19/308-mips32r2_tune.patch
index 17c867acc5..d9a2a92f5c 100644
--- a/target/linux/generic/pending-4.19/308-mips32r2_tune.patch
+++ b/target/linux/generic/pending-4.19/308-mips32r2_tune.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -171,7 +171,7 @@ cflags-$(CONFIG_CPU_VR41XX)	+= -march=r4
+@@ -176,7 +176,7 @@ cflags-$(CONFIG_CPU_VR41XX)	+= -march=r4
  cflags-$(CONFIG_CPU_R4X00)	+= -march=r4600 -Wa,--trap
  cflags-$(CONFIG_CPU_TX49XX)	+= -march=r4600 -Wa,--trap
  cflags-$(CONFIG_CPU_MIPS32_R1)	+= -march=mips32 -Wa,--trap
diff --git a/target/linux/generic/pending-4.19/332-arc-add-OWRTDTB-section.patch b/target/linux/generic/pending-4.19/332-arc-add-OWRTDTB-section.patch
index 426a550d58..7927ea4242 100644
--- a/target/linux/generic/pending-4.19/332-arc-add-OWRTDTB-section.patch
+++ b/target/linux/generic/pending-4.19/332-arc-add-OWRTDTB-section.patch
@@ -23,8 +23,8 @@ Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
 
 --- a/arch/arc/kernel/head.S
 +++ b/arch/arc/kernel/head.S
-@@ -49,6 +49,16 @@
- 1:
+@@ -59,6 +59,16 @@
+ #endif
  .endm
  
 +	; Here "patch-dtb" will embed external .dtb
@@ -42,24 +42,24 @@ Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
  ;----------------------------------------------------------------
 --- a/arch/arc/kernel/setup.c
 +++ b/arch/arc/kernel/setup.c
-@@ -456,6 +456,8 @@ static inline int is_kernel(unsigned lon
- 	return 0;
- }
- 
-+extern struct boot_param_header __image_dtb;
-+
- void __init setup_arch(char **cmdline_p)
- {
- #ifdef CONFIG_ARC_UBOOT_SUPPORT
-@@ -469,7 +471,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -520,7 +520,7 @@ ignore_uboot_args:
  #endif
- 	{
- 		/* No, so try the embedded one */
+ 
+ 	if (use_embedded_dtb) {
 -		machine_desc = setup_machine_fdt(__dtb_start);
 +		machine_desc = setup_machine_fdt(&__image_dtb);
  		if (!machine_desc)
  			panic("Embedded DT invalid\n");
+ 	}
+@@ -536,6 +536,8 @@ ignore_uboot_args:
+ 	}
+ }
  
++extern struct boot_param_header __image_dtb;
++
+ void __init setup_arch(char **cmdline_p)
+ {
+ 	handle_uboot_args();
 --- a/arch/arc/kernel/vmlinux.lds.S
 +++ b/arch/arc/kernel/vmlinux.lds.S
 @@ -30,6 +30,19 @@ SECTIONS
diff --git a/target/linux/generic/pending-4.19/613-netfilter_optional_tcp_window_check.patch b/target/linux/generic/pending-4.19/613-netfilter_optional_tcp_window_check.patch
index f9613a1ff6..aa53309394 100644
--- a/target/linux/generic/pending-4.19/613-netfilter_optional_tcp_window_check.patch
+++ b/target/linux/generic/pending-4.19/613-netfilter_optional_tcp_window_check.patch
@@ -28,7 +28,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	/*
  	 * Get the required data from the packet.
  	 */
-@@ -1476,6 +1482,13 @@ static struct ctl_table tcp_sysctl_table
+@@ -1506,6 +1512,13 @@ static struct ctl_table tcp_sysctl_table
  		.mode		= 0644,
  		.proc_handler	= proc_dointvec,
  	},
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 0ac545c51c..2e83ff391f 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
@@ -85,7 +85,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  
  struct flow_offload {
  	struct flow_offload_tuple_rhash		tuplehash[FLOW_OFFLOAD_DIR_MAX];
-@@ -126,6 +133,22 @@ unsigned int nf_flow_offload_ip_hook(voi
+@@ -125,6 +132,22 @@ unsigned int nf_flow_offload_ip_hook(voi
  unsigned int nf_flow_offload_ipv6_hook(void *priv, struct sk_buff *skb,
  				       const struct nf_hook_state *state);
  
@@ -156,7 +156,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o
 --- a/net/netfilter/nf_flow_table_core.c
 +++ b/net/netfilter/nf_flow_table_core.c
-@@ -215,10 +215,16 @@ int flow_offload_add(struct nf_flowtable
+@@ -216,10 +216,16 @@ int flow_offload_add(struct nf_flowtable
  }
  EXPORT_SYMBOL_GPL(flow_offload_add);
  
@@ -173,7 +173,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  
  	rhashtable_remove_fast(&flow_table->rhashtable,
  			       &flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].node,
-@@ -233,6 +239,9 @@ static void flow_offload_del(struct nf_f
+@@ -234,6 +240,9 @@ static void flow_offload_del(struct nf_f
  	if (!(flow->flags & FLOW_OFFLOAD_TEARDOWN))
  		flow_offload_fixup_ct_state(e->ct);
  
@@ -183,7 +183,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  	flow_offload_free(flow);
  }
  
-@@ -346,6 +355,9 @@ static int nf_flow_offload_gc_step(struc
+@@ -347,6 +356,9 @@ static int nf_flow_offload_gc_step(struc
  		if (!teardown)
  			nf_ct_offload_timeout(flow);
  
@@ -193,7 +193,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  		if (nf_flow_has_expired(flow) || teardown)
  			flow_offload_del(flow_table, flow);
  	}
-@@ -481,10 +493,43 @@ int nf_flow_dnat_port(const struct flow_
+@@ -482,10 +494,43 @@ int nf_flow_dnat_port(const struct flow_
  }
  EXPORT_SYMBOL_GPL(nf_flow_dnat_port);
  
@@ -237,7 +237,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  	INIT_DEFERRABLE_WORK(&flowtable->gc_work, nf_flow_offload_work_gc);
  
  	err = rhashtable_init(&flowtable->rhashtable,
-@@ -522,6 +567,8 @@ static void nf_flow_table_iterate_cleanu
+@@ -523,6 +568,8 @@ static void nf_flow_table_iterate_cleanu
  {
  	nf_flow_table_iterate(flowtable, nf_flow_table_do_cleanup, dev);
  	flush_delayed_work(&flowtable->gc_work);
@@ -246,7 +246,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  }
  
  void nf_flow_table_cleanup(struct net *net, struct net_device *dev)
-@@ -535,6 +582,26 @@ void nf_flow_table_cleanup(struct net *n
+@@ -536,6 +583,26 @@ void nf_flow_table_cleanup(struct net *n
  }
  EXPORT_SYMBOL_GPL(nf_flow_table_cleanup);
  
@@ -273,7 +273,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  void nf_flow_table_free(struct nf_flowtable *flow_table)
  {
  	mutex_lock(&flowtable_lock);
-@@ -544,9 +611,58 @@ void nf_flow_table_free(struct nf_flowta
+@@ -545,9 +612,58 @@ void nf_flow_table_free(struct nf_flowta
  	nf_flow_table_iterate(flow_table, nf_flow_table_do_cleanup, NULL);
  	WARN_ON(!nf_flow_offload_gc_step(flow_table));
  	rhashtable_destroy(&flow_table->rhashtable);
@@ -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
-@@ -5394,6 +5394,13 @@ static int nf_tables_flowtable_parse_hoo
+@@ -5399,6 +5399,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;
-@@ -5525,10 +5532,19 @@ static int nf_tables_newflowtable(struct
+@@ -5530,10 +5537,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)
-@@ -5654,7 +5670,8 @@ static int nf_tables_fill_flowtable_info
+@@ -5659,7 +5675,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),
@@ -552,7 +552,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  	nest = nla_nest_start(skb, NFTA_FLOWTABLE_HOOK);
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/net/netfilter/nft_flow_offload.c
-@@ -121,6 +121,9 @@ static void nft_flow_offload_eval(const
+@@ -124,6 +124,9 @@ static void nft_flow_offload_eval(const
  	if (ret < 0)
  		goto err_flow_add;
  
diff --git a/target/linux/generic/pending-4.19/645-netfilter-nf_flow_table-rework-hardware-offload-time.patch b/target/linux/generic/pending-4.19/645-netfilter-nf_flow_table-rework-hardware-offload-time.patch
index 2b3725f81e..292f5f8cc5 100644
--- a/target/linux/generic/pending-4.19/645-netfilter-nf_flow_table-rework-hardware-offload-time.patch
+++ b/target/linux/generic/pending-4.19/645-netfilter-nf_flow_table-rework-hardware-offload-time.patch
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	struct flow_offload_tuple_rhash		tuplehash[FLOW_OFFLOAD_DIR_MAX];
 --- a/net/netfilter/nf_flow_table_core.c
 +++ b/net/netfilter/nf_flow_table_core.c
-@@ -355,7 +355,7 @@ static int nf_flow_offload_gc_step(struc
+@@ -356,7 +356,7 @@ static int nf_flow_offload_gc_step(struc
  		if (!teardown)
  			nf_ct_offload_timeout(flow);
  
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 c664cb2b25..20cfe37120 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
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  	case RTN_THROW:
  	case RTN_UNREACHABLE:
  	default:
-@@ -3747,6 +3766,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -3765,6 +3784,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.
   */
-@@ -4194,7 +4224,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -4212,7 +4242,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)
-@@ -5033,6 +5064,8 @@ static int ip6_route_dev_notify(struct n
+@@ -5056,6 +5087,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
-@@ -5044,6 +5077,7 @@ static int ip6_route_dev_notify(struct n
+@@ -5067,6 +5100,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
  	}
-@@ -5238,6 +5272,15 @@ static int __net_init ip6_route_net_init
+@@ -5261,6 +5295,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;
-@@ -5256,6 +5299,8 @@ out:
+@@ -5279,6 +5322,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:
-@@ -5276,6 +5321,7 @@ static void __net_exit ip6_route_net_exi
+@@ -5299,6 +5344,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);
  }
-@@ -5352,6 +5398,9 @@ void __init ip6_route_init_special_entri
+@@ -5375,6 +5421,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/840-media-i2c-tda1997x-select-V4L2_FWNODE.patch b/target/linux/generic/pending-4.19/840-media-i2c-tda1997x-select-V4L2_FWNODE.patch
index 6bf82b471d..65fcfb5bfe 100644
--- a/target/linux/generic/pending-4.19/840-media-i2c-tda1997x-select-V4L2_FWNODE.patch
+++ b/target/linux/generic/pending-4.19/840-media-i2c-tda1997x-select-V4L2_FWNODE.patch
@@ -28,8 +28,6 @@ Cc: stable@vger.kernel.org # v4.17+
  drivers/media/i2c/Kconfig | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
-diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig
-index 4c936e129500..8b296ae7d68c 100644
 --- a/drivers/media/i2c/Kconfig
 +++ b/drivers/media/i2c/Kconfig
 @@ -60,8 +60,9 @@ config VIDEO_TDA1997X
@@ -43,6 +41,3 @@ index 4c936e129500..8b296ae7d68c 100644
  	---help---
  	  V4L2 subdevice driver for the NXP TDA1997x HDMI receivers.
  
--- 
-2.17.1
-
diff --git a/target/linux/octeon/patches-4.19/110-er200-ethernet_probe_order.patch b/target/linux/octeon/patches-4.19/110-er200-ethernet_probe_order.patch
index 6b1eaf92a2..93d1e93505 100644
--- a/target/linux/octeon/patches-4.19/110-er200-ethernet_probe_order.patch
+++ b/target/linux/octeon/patches-4.19/110-er200-ethernet_probe_order.patch
@@ -1,6 +1,6 @@
 --- a/drivers/staging/octeon/ethernet.c
 +++ b/drivers/staging/octeon/ethernet.c
-@@ -673,6 +673,7 @@ static int cvm_oct_probe(struct platform
+@@ -670,6 +670,7 @@ static int cvm_oct_probe(struct platform
  	int interface;
  	int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE;
  	int qos;
@@ -8,7 +8,7 @@
  	struct device_node *pip;
  	int mtu_overhead = ETH_HLEN + ETH_FCS_LEN;
  
-@@ -796,13 +797,19 @@ static int cvm_oct_probe(struct platform
+@@ -793,13 +794,19 @@ static int cvm_oct_probe(struct platform
  	}
  
  	num_interfaces = cvmx_helper_get_number_of_interfaces();
diff --git a/target/linux/octeon/patches-4.19/120-cmdline-hack.patch b/target/linux/octeon/patches-4.19/120-cmdline-hack.patch
index e902e853e8..2b5978c5ee 100644
--- a/target/linux/octeon/patches-4.19/120-cmdline-hack.patch
+++ b/target/linux/octeon/patches-4.19/120-cmdline-hack.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/cavium-octeon/setup.c
 +++ b/arch/mips/cavium-octeon/setup.c
-@@ -650,6 +650,35 @@ void octeon_user_io_init(void)
+@@ -651,6 +651,35 @@ void octeon_user_io_init(void)
  	write_c0_derraddr1(0);
  }
  
@@ -36,7 +36,7 @@
  /**
   * Early entry point for arch setup
   */
-@@ -894,6 +923,8 @@ void __init prom_init(void)
+@@ -895,6 +924,8 @@ void __init prom_init(void)
  		}
  	}
  
diff --git a/target/linux/sunxi/patches-4.19/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch b/target/linux/sunxi/patches-4.19/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch
index c25e3c4aee..5b9b9dc846 100644
--- a/target/linux/sunxi/patches-4.19/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch
+++ b/target/linux/sunxi/patches-4.19/100-clocksource-drivers-arch_timer-Workaround-for-Allwin.patch
@@ -141,39 +141,9 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
  drivers/clocksource/arm_arch_timer.c   | 55 ++++++++++++++++++++++++++
  3 files changed, 67 insertions(+)
 
---- a/Documentation/arm64/silicon-errata.txt
-+++ b/Documentation/arm64/silicon-errata.txt
-@@ -44,6 +44,8 @@ stable kernels.
- 
- | Implementor    | Component       | Erratum ID      | Kconfig                     |
- +----------------+-----------------+-----------------+-----------------------------+
-+| Allwinner      | A64/R18         | UNKNOWN1        | SUN50I_ERRATUM_UNKNOWN1     |
-+|                |                 |                 |                             |
- | ARM            | Cortex-A53      | #826319         | ARM64_ERRATUM_826319        |
- | ARM            | Cortex-A53      | #827319         | ARM64_ERRATUM_827319        |
- | ARM            | Cortex-A53      | #824069         | ARM64_ERRATUM_824069        |
---- a/drivers/clocksource/Kconfig
-+++ b/drivers/clocksource/Kconfig
-@@ -365,6 +365,16 @@ config ARM64_ERRATUM_858921
- 	  The workaround will be dynamically enabled when an affected
- 	  core is detected.
- 
-+config SUN50I_ERRATUM_UNKNOWN1
-+	bool "Workaround for Allwinner A64 erratum UNKNOWN1"
-+	default y
-+	depends on ARM_ARCH_TIMER && ARM64 && ARCH_SUNXI
-+	select ARM_ARCH_TIMER_OOL_WORKAROUND
-+	help
-+	  This option enables a workaround for instability in the timer on
-+	  the Allwinner A64 SoC. The workaround will only be active if the
-+	  allwinner,erratum-unknown1 property is found in the timer node.
-+
- config ARM_GLOBAL_TIMER
- 	bool "Support for the ARM global timer" if COMPILE_TEST
- 	select TIMER_OF if OF
 --- a/drivers/clocksource/arm_arch_timer.c
 +++ b/drivers/clocksource/arm_arch_timer.c
-@@ -319,6 +319,48 @@ static u64 notrace arm64_858921_read_cnt
+@@ -361,6 +361,48 @@ static u32 notrace sun50i_a64_read_cntv_
  }
  #endif
  
@@ -222,11 +192,10 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
  #ifdef CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND
  DEFINE_PER_CPU(const struct arch_timer_erratum_workaround *, timer_unstable_counter_workaround);
  EXPORT_SYMBOL_GPL(timer_unstable_counter_workaround);
-@@ -408,6 +450,19 @@ static const struct arch_timer_erratum_w
- 		.read_cntvct_el0 = arm64_858921_read_cntvct_el0,
+@@ -451,6 +493,19 @@ static const struct arch_timer_erratum_w
  	},
  #endif
-+#ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1
+ #ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1
 +	{
 +		.match_type = ate_match_dt,
 +		.id = "allwinner,erratum-unknown1",
@@ -239,6 +208,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
 +		.set_next_event_virt = erratum_set_next_event_tval_virt,
 +	},
 +#endif
- };
- 
- typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *,
++#ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1
+ 	{
+ 		.match_type = ate_match_dt,
+ 		.id = "allwinner,erratum-unknown1",
-- 
2.30.2