kernel: bump 4.14 to 4.14.72
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Wed, 26 Sep 2018 10:53:35 +0000 (12:53 +0200)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Wed, 26 Sep 2018 13:54:18 +0000 (15:54 +0200)
Refreshed all patches.

Removed upstreamed:
- 203-MIPS-ath79-fix-restart.patch
- 0013-MIPS-ath79-fix-system-restart.patch
- 180-earlycon-initialize-port-uartclk-based-on-clock-frequency-property.patch
- 181-earlycon-remove-hardcoded-port-uartclk-initialization-in-of_setup_earlycon. patch
- 700-1-6-e1000e-Remove-Other-from-EIAC.patch
- 700-2-6-Partial-revert-e1000e-Avoid-receiver-overrun-interrupt-bursts.patch
- 700-3-6-e1000e-Fix-queue-interrupt-re-raising-in-Other-interrupt.patch
- 700-4-6-e1000e-Avoid-missed-interrupts-following-ICR-read.patch

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

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
16 files changed:
include/kernel-version.mk
target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch
target/linux/ar71xx/patches-4.14/203-MIPS-ath79-fix-restart.patch [deleted file]
target/linux/ath79/patches-4.14/0010-MIPS-ath79-add-support-for-QCA953x-QCA956x-TP9343.patch
target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch [deleted file]
target/linux/bcm53xx/patches-4.14/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/generic/backport-4.14/180-earlycon-initialize-port-uartclk-based-on-clock-frequency-property.patch [deleted file]
target/linux/generic/backport-4.14/181-earlycon-remove-hardcoded-port-uartclk-initialization-in-of_setup_earlycon.patch [deleted file]
target/linux/generic/backport-4.14/700-1-6-e1000e-Remove-Other-from-EIAC.diff [deleted file]
target/linux/generic/backport-4.14/700-2-6-Partial-revert-e1000e-Avoid-receiver-overrun-interrupt-bursts.diff [deleted file]
target/linux/generic/backport-4.14/700-3-6-e1000e-Fix-queue-interrupt-re-raising-in-Other-interrupt.diff [deleted file]
target/linux/generic/backport-4.14/700-4-6-e1000e-Avoid-missed-interrupts-following-ICR-read.diff [deleted file]
target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/ipq40xx/patches-4.14/080-pinctrl-msm-fix-gpio-hog-related-boot-issues.patch
target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch
target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch

index ba0f12a114231507c7395cfb6a2998f8e0731d31..4a734e5688f067362130646b80a96a0aa0fbd8f4 100644 (file)
@@ -2,13 +2,13 @@
 
 LINUX_RELEASE?=1
 
-LINUX_VERSION-4.14 = .71
 LINUX_VERSION-3.18 = .123
 LINUX_VERSION-4.9 = .129
+LINUX_VERSION-4.14 = .72
 
-LINUX_KERNEL_HASH-4.14.71 = 76a4473dbcbd922c23a16130414829a36eb7e2f4e5859bd1b742fffdff907489
 LINUX_KERNEL_HASH-3.18.123 = c10de32c9b31fb619b016a00d77afc394db5a4542e258e927f06a5ead86f8c64
 LINUX_KERNEL_HASH-4.9.129 = 6f5510d3fcfec1bf1e2d9c8e2fdcd7628c1886c6bdb29092adc5ccdf75e39318
+LINUX_KERNEL_HASH-4.14.72 = df925906250bbc40fcf0137d7ad0fb8edc528d926832634f1233b7540564557f
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index 1e781b5dae352dce339716d1b0decb53107369c6..c09d1547bd5623525adc0ec4c76de30a1f8d0f68 100644 (file)
@@ -24,7 +24,7 @@ produce a noisy warning.
  
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -357,10 +357,14 @@ static int xhci_try_enable_msi(struct us
+@@ -372,10 +372,14 @@ static int xhci_try_enable_msi(struct us
                free_irq(hcd->irq, hcd);
        hcd->irq = 0;
  
diff --git a/target/linux/ar71xx/patches-4.14/203-MIPS-ath79-fix-restart.patch b/target/linux/ar71xx/patches-4.14/203-MIPS-ath79-fix-restart.patch
deleted file mode 100644 (file)
index 48f4d95..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/arch/mips/ath79/setup.c
-+++ b/arch/mips/ath79/setup.c
-@@ -40,6 +40,7 @@ static char ath79_sys_type[ATH79_SYS_TYP
- static void ath79_restart(char *command)
- {
-+      local_irq_disable();
-       ath79_device_reset_set(AR71XX_RESET_FULL_CHIP);
-       for (;;)
-               if (cpu_wait)
---- a/arch/mips/include/asm/mach-ath79/ath79.h
-+++ b/arch/mips/include/asm/mach-ath79/ath79.h
-@@ -135,6 +135,7 @@ static inline u32 ath79_pll_rr(unsigned
- static inline void ath79_reset_wr(unsigned reg, u32 val)
- {
-       __raw_writel(val, ath79_reset_base + reg);
-+      (void) __raw_readl(ath79_reset_base + reg); /* flush */
- }
- static inline u32 ath79_reset_rr(unsigned reg)
index fcf4fe47fcab8e45e7168c84ddcfb415ba0a94d3..1a87f52d18724339f629530ecd84744562a29dc4 100644 (file)
@@ -280,7 +280,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
  
 --- a/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
-@@ -59,6 +59,7 @@ static void __init ath79_detect_sys_type
+@@ -60,6 +60,7 @@ static void __init ath79_detect_sys_type
        u32 major;
        u32 minor;
        u32 rev = 0;
@@ -288,7 +288,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
  
        id = ath79_reset_rr(AR71XX_RESET_REG_REV_ID);
        major = id & REV_ID_MAJOR_MASK;
-@@ -151,6 +152,17 @@ static void __init ath79_detect_sys_type
+@@ -152,6 +153,17 @@ static void __init ath79_detect_sys_type
                rev = id & AR934X_REV_ID_REVISION_MASK;
                break;
  
@@ -306,7 +306,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
        case REV_ID_MAJOR_QCA9556:
                ath79_soc = ATH79_SOC_QCA9556;
                chip = "9556";
-@@ -163,14 +175,30 @@ static void __init ath79_detect_sys_type
+@@ -164,14 +176,30 @@ static void __init ath79_detect_sys_type
                rev = id & QCA955X_REV_ID_REVISION_MASK;
                break;
  
diff --git a/target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch b/target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch
deleted file mode 100644 (file)
index a233049..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 59c7470bc5c4b29ed77d46fc4982f1d85b5cbec1 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd@nbd.name>
-Date: Mon, 5 Mar 2018 11:33:54 +0100
-Subject: [PATCH 13/33] MIPS: ath79: fix system restart
-
-This patch disables irq on reboot to fix hang issues that were observed
-due to pending interrupts.
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
-Signed-off-by: John Crispin <john@phrozen.org>
----
- arch/mips/ath79/setup.c                  | 1 +
- arch/mips/include/asm/mach-ath79/ath79.h | 1 +
- 2 files changed, 2 insertions(+)
-
---- a/arch/mips/ath79/setup.c
-+++ b/arch/mips/ath79/setup.c
-@@ -40,6 +40,7 @@ static char ath79_sys_type[ATH79_SYS_TYP
- static void ath79_restart(char *command)
- {
-+      local_irq_disable();
-       ath79_device_reset_set(AR71XX_RESET_FULL_CHIP);
-       for (;;)
-               if (cpu_wait)
---- a/arch/mips/include/asm/mach-ath79/ath79.h
-+++ b/arch/mips/include/asm/mach-ath79/ath79.h
-@@ -167,6 +167,7 @@ static inline u32 ath79_pll_rr(unsigned
- static inline void ath79_reset_wr(unsigned reg, u32 val)
- {
-       __raw_writel(val, ath79_reset_base + reg);
-+      (void) __raw_readl(ath79_reset_base + reg); /* flush */
- }
- static inline u32 ath79_reset_rr(unsigned reg)
index ac622010fffb73a95f598515b847fa0a1baad94a..7ab5ffcb1489ec07c6f45df32f6071003731ed42 100644 (file)
@@ -40,7 +40,7 @@ it on BCM4708 family.
  /* called during probe() after chip reset completes */
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -153,6 +153,49 @@ int xhci_start(struct xhci_hcd *xhci)
+@@ -168,6 +168,49 @@ int xhci_start(struct xhci_hcd *xhci)
        return ret;
  }
  
@@ -90,7 +90,7 @@ it on BCM4708 family.
  /*
   * Reset a halted HC.
   *
-@@ -536,10 +579,20 @@ static int xhci_init(struct usb_hcd *hcd
+@@ -551,10 +594,20 @@ static int xhci_init(struct usb_hcd *hcd
  
  static int xhci_run_finished(struct xhci_hcd *xhci)
  {
@@ -114,7 +114,7 @@ it on BCM4708 family.
        xhci->shared_hcd->state = HC_STATE_RUNNING;
        xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
  
-@@ -549,6 +602,10 @@ static int xhci_run_finished(struct xhci
+@@ -564,6 +617,10 @@ static int xhci_run_finished(struct xhci
        xhci_dbg_trace(xhci, trace_xhci_dbg_init,
                        "Finished xhci_run for USB3 roothub");
        return 0;
diff --git a/target/linux/generic/backport-4.14/180-earlycon-initialize-port-uartclk-based-on-clock-frequency-property.patch b/target/linux/generic/backport-4.14/180-earlycon-initialize-port-uartclk-based-on-clock-frequency-property.patch
deleted file mode 100644 (file)
index 1b98958..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From 814453adea7d081ad8917aa0f32d6a14165a3563 Mon Sep 17 00:00:00 2001
-From: Michal Simek <michal.simek@xilinx.com>
-Date: Tue, 10 Apr 2018 15:32:28 +0200
-Subject: earlycon: Initialize port->uartclk based on clock-frequency property
-
-From: Michal Simek <michal.simek@xilinx.com>
-
-commit 814453adea7d081ad8917aa0f32d6a14165a3563 upstream.
-
-On DT based platforms when current-speed property is present baudrate
-is setup. Also port->uartclk is initialized to bogus BASE_BAUD * 16
-value. Drivers like uartps/ns16550 contain logic when baudrate and
-uartclk is used for baudrate calculation.
-
-The patch is reading optional clock-frequency property to replace bogus
-BASE_BAUD * 16 calculation to have proper baudrate calculation.
-
-[-stable comment: commit 31cb9a8575ca ("earlycon: initialise baud field
- of earlycon device structure") has changed 8250_early.c behavior which
- now tries to setup UART speed. Ignoring clock-frequency results in
- wrong value of calculated divisor & malformed early console output.]
-
-Fixes: 31cb9a8575ca ("earlycon: initialise baud field of earlycon device structure")
-Signed-off-by: Michal Simek <michal.simek@xilinx.com>
-[rmilecki: add -stable comment and Fixes tag]
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/tty/serial/earlycon.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/drivers/tty/serial/earlycon.c
-+++ b/drivers/tty/serial/earlycon.c
-@@ -289,6 +289,10 @@ int __init of_setup_earlycon(const struc
-       if (val)
-               early_console_dev.baud = be32_to_cpu(*val);
-+      val = of_get_flat_dt_prop(node, "clock-frequency", NULL);
-+      if (val)
-+              port->uartclk = be32_to_cpu(*val);
-+
-       if (options) {
-               early_console_dev.baud = simple_strtoul(options, NULL, 0);
-               strlcpy(early_console_dev.options, options,
diff --git a/target/linux/generic/backport-4.14/181-earlycon-remove-hardcoded-port-uartclk-initialization-in-of_setup_earlycon.patch b/target/linux/generic/backport-4.14/181-earlycon-remove-hardcoded-port-uartclk-initialization-in-of_setup_earlycon.patch
deleted file mode 100644 (file)
index a4df913..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From 182ead3e418a20328b73152b8e81fc8b4cac3b0b Mon Sep 17 00:00:00 2001
-From: Michal Simek <michal.simek@xilinx.com>
-Date: Wed, 25 Apr 2018 15:48:42 +0200
-Subject: earlycon: Remove hardcoded port->uartclk initialization in of_setup_earlycon
-
-From: Michal Simek <michal.simek@xilinx.com>
-
-commit 182ead3e418a20328b73152b8e81fc8b4cac3b0b upstream.
-
-There is no reason to initialize uartclk to BASE_BAUD * 16 for DT based
-systems.
-
-[-stable comment: commit 31cb9a8575ca ("earlycon: initialise baud field
- of earlycon device structure") has changed 8250_early.c behavior which
- now tries to setup UART speed.
- Already-backported upstream commit 0ff3ab701963 ("serial:  8250_early:
- Only set divisor if valid clk & baud") handles properly uartclk not
- being set but it still requires backporting fix for wrong uartclk val.
- This fixes malformed early console output on arch-es with BASE_BAUD.]
-
-Fixes: 31cb9a8575ca ("earlycon: initialise baud field of earlycon device structure")
-Signed-off-by: Michal Simek <michal.simek@xilinx.com>
-Tested-by: Matt Redfearn <matt.redfearn@mips.com>
-[rmilecki: add -stable comment and Fixes tag]
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/tty/serial/earlycon.c |    1 -
- 1 file changed, 1 deletion(-)
-
---- a/drivers/tty/serial/earlycon.c
-+++ b/drivers/tty/serial/earlycon.c
-@@ -254,7 +254,6 @@ int __init of_setup_earlycon(const struc
-               return -ENXIO;
-       }
-       port->mapbase = addr;
--      port->uartclk = BASE_BAUD * 16;
-       val = of_get_flat_dt_prop(node, "reg-offset", NULL);
-       if (val)
diff --git a/target/linux/generic/backport-4.14/700-1-6-e1000e-Remove-Other-from-EIAC.diff b/target/linux/generic/backport-4.14/700-1-6-e1000e-Remove-Other-from-EIAC.diff
deleted file mode 100644 (file)
index 9ce01aa..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-From patchwork Mon Mar  5 21:40:25 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [net,v2,1/6] e1000e: Remove Other from EIAC
-X-Patchwork-Submitter: "Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>
-X-Patchwork-Id: 881773
-X-Patchwork-Delegate: davem@davemloft.net
-Message-Id: <20180305214030.25141-2-jeffrey.t.kirsher@intel.com>
-To: davem@davemloft.net
-Cc: Benjamin Poirier <bpoirier@suse.com>, netdev@vger.kernel.org,
- nhorman@redhat.com, sassmann@redhat.com, jogreene@redhat.com,
- Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-Date: Mon,  5 Mar 2018 13:40:25 -0800
-From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-List-Id: <netdev.vger.kernel.org>
-
-From: Benjamin Poirier <bpoirier@suse.com>
-
-It was reported that emulated e1000e devices in vmware esxi 6.5 Build
-7526125 do not link up after commit 4aea7a5c5e94 ("e1000e: Avoid receiver
-overrun interrupt bursts", v4.15-rc1). Some tracing shows that after
-e1000e_trigger_lsc() is called, ICR reads out as 0x0 in e1000_msix_other()
-on emulated e1000e devices. In comparison, on real e1000e 82574 hardware,
-icr=0x80000004 (_INT_ASSERTED | _LSC) in the same situation.
-
-Some experimentation showed that this flaw in vmware e1000e emulation can
-be worked around by not setting Other in EIAC. This is how it was before
-16ecba59bc33 ("e1000e: Do not read ICR in Other interrupt", v4.5-rc1).
-
-Fixes: 4aea7a5c5e94 ("e1000e: Avoid receiver overrun interrupt bursts")
-Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
-Tested-by: Aaron Brown <aaron.f.brown@intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
----
- drivers/net/ethernet/intel/e1000e/netdev.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
---- a/drivers/net/ethernet/intel/e1000e/netdev.c
-+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
-@@ -1914,6 +1914,8 @@ static irqreturn_t e1000_msix_other(int
-       bool enable = true;
-       icr = er32(ICR);
-+      ew32(ICR, E1000_ICR_OTHER);
-+
-       if (icr & E1000_ICR_RXO) {
-               ew32(ICR, E1000_ICR_RXO);
-               enable = false;
-@@ -2036,7 +2038,6 @@ static void e1000_configure_msix(struct
-                      hw->hw_addr + E1000_EITR_82574(vector));
-       else
-               writel(1, hw->hw_addr + E1000_EITR_82574(vector));
--      adapter->eiac_mask |= E1000_IMS_OTHER;
-       /* Cause Tx interrupts on every write back */
-       ivar |= BIT(31);
-@@ -2261,7 +2262,7 @@ static void e1000_irq_enable(struct e100
-       if (adapter->msix_entries) {
-               ew32(EIAC_82574, adapter->eiac_mask & E1000_EIAC_MASK_82574);
--              ew32(IMS, adapter->eiac_mask | E1000_IMS_LSC);
-+              ew32(IMS, adapter->eiac_mask | E1000_IMS_OTHER | E1000_IMS_LSC);
-       } else if (hw->mac.type >= e1000_pch_lpt) {
-               ew32(IMS, IMS_ENABLE_MASK | E1000_IMS_ECCER);
-       } else {
diff --git a/target/linux/generic/backport-4.14/700-2-6-Partial-revert-e1000e-Avoid-receiver-overrun-interrupt-bursts.diff b/target/linux/generic/backport-4.14/700-2-6-Partial-revert-e1000e-Avoid-receiver-overrun-interrupt-bursts.diff
deleted file mode 100644 (file)
index 2800e6f..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-From patchwork Mon Mar  5 21:40:26 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [net, v2,
- 2/6] Partial revert "e1000e: Avoid receiver overrun interrupt bursts"
-X-Patchwork-Submitter: "Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>
-X-Patchwork-Id: 881769
-X-Patchwork-Delegate: davem@davemloft.net
-Message-Id: <20180305214030.25141-3-jeffrey.t.kirsher@intel.com>
-To: davem@davemloft.net
-Cc: Benjamin Poirier <bpoirier@suse.com>, netdev@vger.kernel.org,
- nhorman@redhat.com, sassmann@redhat.com, jogreene@redhat.com,
- Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-Date: Mon,  5 Mar 2018 13:40:26 -0800
-From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-List-Id: <netdev.vger.kernel.org>
-
-From: Benjamin Poirier <bpoirier@suse.com>
-
-This partially reverts commit 4aea7a5c5e940c1723add439f4088844cd26196d.
-
-We keep the fix for the first part of the problem (1) described in the log
-of that commit, that is to read ICR in the other interrupt handler. We
-remove the fix for the second part of the problem (2), Other interrupt
-throttling.
-
-Bursts of "Other" interrupts may once again occur during rxo (receive
-overflow) traffic conditions. This is deemed acceptable in the interest of
-avoiding unforeseen fallout from changes that are not strictly necessary.
-As discussed, the e1000e driver should be in "maintenance mode".
-
-Link: https://www.spinics.net/lists/netdev/msg480675.html
-Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
-Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
-Tested-by: Aaron Brown <aaron.f.brown@intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
----
- drivers/net/ethernet/intel/e1000e/netdev.c | 16 ++--------------
- 1 file changed, 2 insertions(+), 14 deletions(-)
-
---- a/drivers/net/ethernet/intel/e1000e/netdev.c
-+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
-@@ -1911,21 +1911,10 @@ static irqreturn_t e1000_msix_other(int
-       struct e1000_adapter *adapter = netdev_priv(netdev);
-       struct e1000_hw *hw = &adapter->hw;
-       u32 icr;
--      bool enable = true;
-       icr = er32(ICR);
-       ew32(ICR, E1000_ICR_OTHER);
--      if (icr & E1000_ICR_RXO) {
--              ew32(ICR, E1000_ICR_RXO);
--              enable = false;
--              /* napi poll will re-enable Other, make sure it runs */
--              if (napi_schedule_prep(&adapter->napi)) {
--                      adapter->total_rx_bytes = 0;
--                      adapter->total_rx_packets = 0;
--                      __napi_schedule(&adapter->napi);
--              }
--      }
-       if (icr & E1000_ICR_LSC) {
-               ew32(ICR, E1000_ICR_LSC);
-               hw->mac.get_link_status = true;
-@@ -1934,7 +1923,7 @@ static irqreturn_t e1000_msix_other(int
-                       mod_timer(&adapter->watchdog_timer, jiffies + 1);
-       }
--      if (enable && !test_bit(__E1000_DOWN, &adapter->state))
-+      if (!test_bit(__E1000_DOWN, &adapter->state))
-               ew32(IMS, E1000_IMS_OTHER);
-       return IRQ_HANDLED;
-@@ -2704,8 +2693,7 @@ static int e1000e_poll(struct napi_struc
-               napi_complete_done(napi, work_done);
-               if (!test_bit(__E1000_DOWN, &adapter->state)) {
-                       if (adapter->msix_entries)
--                              ew32(IMS, adapter->rx_ring->ims_val |
--                                   E1000_IMS_OTHER);
-+                              ew32(IMS, adapter->rx_ring->ims_val);
-                       else
-                               e1000_irq_enable(adapter);
-               }
diff --git a/target/linux/generic/backport-4.14/700-3-6-e1000e-Fix-queue-interrupt-re-raising-in-Other-interrupt.diff b/target/linux/generic/backport-4.14/700-3-6-e1000e-Fix-queue-interrupt-re-raising-in-Other-interrupt.diff
deleted file mode 100644 (file)
index 8ad13ba..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-From patchwork Mon Mar  5 21:40:27 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [net, v2,
- 3/6] e1000e: Fix queue interrupt re-raising in Other interrupt
-X-Patchwork-Submitter: "Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>
-X-Patchwork-Id: 881775
-X-Patchwork-Delegate: davem@davemloft.net
-Message-Id: <20180305214030.25141-4-jeffrey.t.kirsher@intel.com>
-To: davem@davemloft.net
-Cc: Benjamin Poirier <bpoirier@suse.com>, netdev@vger.kernel.org,
- nhorman@redhat.com, sassmann@redhat.com, jogreene@redhat.com,
- Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-Date: Mon,  5 Mar 2018 13:40:27 -0800
-From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-List-Id: <netdev.vger.kernel.org>
-
-From: Benjamin Poirier <bpoirier@suse.com>
-
-Restores the ICS write for Rx/Tx queue interrupts which was present before
-commit 16ecba59bc33 ("e1000e: Do not read ICR in Other interrupt", v4.5-rc1)
-but was not restored in commit 4aea7a5c5e94
-("e1000e: Avoid receiver overrun interrupt bursts", v4.15-rc1).
-
-This re-raises the queue interrupts in case the txq or rxq bits were set in
-ICR and the Other interrupt handler read and cleared ICR before the queue
-interrupt was raised.
-
-Fixes: 4aea7a5c5e94 ("e1000e: Avoid receiver overrun interrupt bursts")
-Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
-Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
-Tested-by: Aaron Brown <aaron.f.brown@intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
----
- drivers/net/ethernet/intel/e1000e/netdev.c | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/drivers/net/ethernet/intel/e1000e/netdev.c
-+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
-@@ -1915,6 +1915,9 @@ static irqreturn_t e1000_msix_other(int
-       icr = er32(ICR);
-       ew32(ICR, E1000_ICR_OTHER);
-+      if (icr & adapter->eiac_mask)
-+              ew32(ICS, (icr & adapter->eiac_mask));
-+
-       if (icr & E1000_ICR_LSC) {
-               ew32(ICR, E1000_ICR_LSC);
-               hw->mac.get_link_status = true;
diff --git a/target/linux/generic/backport-4.14/700-4-6-e1000e-Avoid-missed-interrupts-following-ICR-read.diff b/target/linux/generic/backport-4.14/700-4-6-e1000e-Avoid-missed-interrupts-following-ICR-read.diff
deleted file mode 100644 (file)
index f218f34..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From patchwork Mon Mar  5 21:40:28 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [net,v2,4/6] e1000e: Avoid missed interrupts following ICR read
-X-Patchwork-Submitter: "Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>
-X-Patchwork-Id: 881771
-X-Patchwork-Delegate: davem@davemloft.net
-Message-Id: <20180305214030.25141-5-jeffrey.t.kirsher@intel.com>
-To: davem@davemloft.net
-Cc: Benjamin Poirier <bpoirier@suse.com>, netdev@vger.kernel.org,
- nhorman@redhat.com, sassmann@redhat.com, jogreene@redhat.com,
- Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-Date: Mon,  5 Mar 2018 13:40:28 -0800
-From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-List-Id: <netdev.vger.kernel.org>
-
-From: Benjamin Poirier <bpoirier@suse.com>
-
-The 82574 specification update errata 12 states that interrupts may be
-missed if ICR is read while INT_ASSERTED is not set. Avoid that problem by
-setting all bits related to events that can trigger the Other interrupt in
-IMS.
-
-The Other interrupt is raised for such events regardless of whether or not
-they are set in IMS. However, only when they are set is the INT_ASSERTED
-bit also set in ICR.
-
-By doing this, we ensure that INT_ASSERTED is always set when we read ICR
-in e1000_msix_other() and steer clear of the errata. This also ensures that
-ICR will automatically be cleared on read, therefore we no longer need to
-clear bits explicitly.
-
-Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
-Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
-Tested-by: Aaron Brown <aaron.f.brown@intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
----
- drivers/net/ethernet/intel/e1000e/defines.h | 21 ++++++++++++++++++++-
- drivers/net/ethernet/intel/e1000e/netdev.c  | 11 ++++-------
- 2 files changed, 24 insertions(+), 8 deletions(-)
-
---- a/drivers/net/ethernet/intel/e1000e/defines.h
-+++ b/drivers/net/ethernet/intel/e1000e/defines.h
-@@ -400,6 +400,10 @@
- #define E1000_ICR_RXDMT0        0x00000010 /* Rx desc min. threshold (0) */
- #define E1000_ICR_RXO           0x00000040 /* Receiver Overrun */
- #define E1000_ICR_RXT0          0x00000080 /* Rx timer intr (ring 0) */
-+#define E1000_ICR_MDAC          0x00000200 /* MDIO Access Complete */
-+#define E1000_ICR_SRPD          0x00010000 /* Small Receive Packet Detected */
-+#define E1000_ICR_ACK           0x00020000 /* Receive ACK Frame Detected */
-+#define E1000_ICR_MNG           0x00040000 /* Manageability Event Detected */
- #define E1000_ICR_ECCER         0x00400000 /* Uncorrectable ECC Error */
- /* If this bit asserted, the driver should claim the interrupt */
- #define E1000_ICR_INT_ASSERTED        0x80000000
-@@ -407,7 +411,7 @@
- #define E1000_ICR_RXQ1          0x00200000 /* Rx Queue 1 Interrupt */
- #define E1000_ICR_TXQ0          0x00400000 /* Tx Queue 0 Interrupt */
- #define E1000_ICR_TXQ1          0x00800000 /* Tx Queue 1 Interrupt */
--#define E1000_ICR_OTHER         0x01000000 /* Other Interrupts */
-+#define E1000_ICR_OTHER         0x01000000 /* Other Interrupt */
- /* PBA ECC Register */
- #define E1000_PBA_ECC_COUNTER_MASK  0xFFF00000 /* ECC counter mask */
-@@ -431,12 +435,27 @@
-       E1000_IMS_RXSEQ  |    \
-       E1000_IMS_LSC)
-+/* These are all of the events related to the OTHER interrupt.
-+ */
-+#define IMS_OTHER_MASK ( \
-+      E1000_IMS_LSC  | \
-+      E1000_IMS_RXO  | \
-+      E1000_IMS_MDAC | \
-+      E1000_IMS_SRPD | \
-+      E1000_IMS_ACK  | \
-+      E1000_IMS_MNG)
-+
- /* Interrupt Mask Set */
- #define E1000_IMS_TXDW      E1000_ICR_TXDW      /* Transmit desc written back */
- #define E1000_IMS_LSC       E1000_ICR_LSC       /* Link Status Change */
- #define E1000_IMS_RXSEQ     E1000_ICR_RXSEQ     /* Rx sequence error */
- #define E1000_IMS_RXDMT0    E1000_ICR_RXDMT0    /* Rx desc min. threshold */
-+#define E1000_IMS_RXO       E1000_ICR_RXO       /* Receiver Overrun */
- #define E1000_IMS_RXT0      E1000_ICR_RXT0      /* Rx timer intr */
-+#define E1000_IMS_MDAC      E1000_ICR_MDAC      /* MDIO Access Complete */
-+#define E1000_IMS_SRPD      E1000_ICR_SRPD      /* Small Receive Packet */
-+#define E1000_IMS_ACK       E1000_ICR_ACK       /* Receive ACK Frame Detected */
-+#define E1000_IMS_MNG       E1000_ICR_MNG       /* Manageability Event */
- #define E1000_IMS_ECCER     E1000_ICR_ECCER     /* Uncorrectable ECC Error */
- #define E1000_IMS_RXQ0      E1000_ICR_RXQ0      /* Rx Queue 0 Interrupt */
- #define E1000_IMS_RXQ1      E1000_ICR_RXQ1      /* Rx Queue 1 Interrupt */
---- a/drivers/net/ethernet/intel/e1000e/netdev.c
-+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
-@@ -1910,16 +1910,12 @@ static irqreturn_t e1000_msix_other(int
-       struct net_device *netdev = data;
-       struct e1000_adapter *adapter = netdev_priv(netdev);
-       struct e1000_hw *hw = &adapter->hw;
--      u32 icr;
--
--      icr = er32(ICR);
--      ew32(ICR, E1000_ICR_OTHER);
-+      u32 icr = er32(ICR);
-       if (icr & adapter->eiac_mask)
-               ew32(ICS, (icr & adapter->eiac_mask));
-       if (icr & E1000_ICR_LSC) {
--              ew32(ICR, E1000_ICR_LSC);
-               hw->mac.get_link_status = true;
-               /* guard against interrupt when we're going down */
-               if (!test_bit(__E1000_DOWN, &adapter->state))
-@@ -1927,7 +1923,7 @@ static irqreturn_t e1000_msix_other(int
-       }
-       if (!test_bit(__E1000_DOWN, &adapter->state))
--              ew32(IMS, E1000_IMS_OTHER);
-+              ew32(IMS, E1000_IMS_OTHER | IMS_OTHER_MASK);
-       return IRQ_HANDLED;
- }
-@@ -2254,7 +2250,8 @@ static void e1000_irq_enable(struct e100
-       if (adapter->msix_entries) {
-               ew32(EIAC_82574, adapter->eiac_mask & E1000_EIAC_MASK_82574);
--              ew32(IMS, adapter->eiac_mask | E1000_IMS_OTHER | E1000_IMS_LSC);
-+              ew32(IMS, adapter->eiac_mask | E1000_IMS_OTHER |
-+                   IMS_OTHER_MASK);
-       } else if (hw->mac.type >= e1000_pch_lpt) {
-               ew32(IMS, IMS_ENABLE_MASK | E1000_IMS_ECCER);
-       } else {
index 74baa80cdd3fdf7879ea224b46ce2f3305cad6a6..a5cb9579f77281ead549e0d7686d6d83ec40171d 100644 (file)
@@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -3494,6 +3528,9 @@ static int rt6_fill_node(struct net *net
+@@ -3499,6 +3533,9 @@ static int rt6_fill_node(struct net *net
                case -EACCES:
                        rtm->rtm_type = RTN_PROHIBIT;
                        break;
@@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                case -EAGAIN:
                        rtm->rtm_type = RTN_THROW;
                        break;
-@@ -3812,6 +3849,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3817,6 +3854,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);
@@ -200,7 +200,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
-@@ -3823,6 +3862,7 @@ static int ip6_route_dev_notify(struct n
+@@ -3828,6 +3867,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);
@@ -208,7 +208,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
        }
-@@ -4039,6 +4079,17 @@ static int __net_init ip6_route_net_init
+@@ -4044,6 +4084,17 @@ 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);
@@ -226,7 +226,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
-@@ -4057,6 +4108,8 @@ out:
+@@ -4062,6 +4113,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -4074,6 +4127,7 @@ static void __net_exit ip6_route_net_exi
+@@ -4079,6 +4132,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);
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
-@@ -4147,6 +4201,9 @@ void __init ip6_route_init_special_entri
+@@ -4152,6 +4206,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);
index f76dd18187afe040d62ea04abbb3c670f8d814e0..cffcd6c76cc07f9a86ea6c2bfb08c6a52868e1da 100644 (file)
@@ -71,7 +71,7 @@ Origin: other, https://patchwork.kernel.org/patch/10339127/
                        #interrupt-cells = <2>;
 --- a/drivers/pinctrl/qcom/pinctrl-msm.c
 +++ b/drivers/pinctrl/qcom/pinctrl-msm.c
-@@ -831,11 +831,24 @@ static int msm_gpio_init(struct msm_pinc
+@@ -839,11 +839,24 @@ static int msm_gpio_init(struct msm_pinc
                return ret;
        }
  
index c92393495b04e5c4a553abd82114754074fb9891..4ecdf094e68128068eab711f26ed25a8af227bb9 100644 (file)
@@ -112,7 +112,7 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org>
  #include "../core.h"
  #include "../pinconf.h"
  #include "pinctrl-msm.h"
-@@ -638,6 +639,9 @@ static void msm_gpio_irq_ack(struct irq_
+@@ -646,6 +647,9 @@ static void msm_gpio_irq_ack(struct irq_
        const struct msm_pingroup *g;
        unsigned long flags;
        u32 val;
@@ -122,7 +122,7 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org>
  
        g = &pctrl->soc->groups[d->hwirq];
  
-@@ -676,11 +680,30 @@ static int msm_gpio_irq_set_type(struct
+@@ -684,11 +688,30 @@ static int msm_gpio_irq_set_type(struct
        else
                clear_bit(d->hwirq, pctrl->dual_edge_irqs);
  
@@ -157,7 +157,7 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org>
  
        /* Update configuration for gpio.
         * RAW_STATUS_EN is left on for all gpio irqs. Due to the
-@@ -954,4 +977,3 @@ int msm_pinctrl_remove(struct platform_d
+@@ -962,4 +985,3 @@ int msm_pinctrl_remove(struct platform_d
        return 0;
  }
  EXPORT_SYMBOL(msm_pinctrl_remove);
index ee260d2aabc48400e4a768873fcd24dec4b4ec0b..52304877392fa1f8999c6f049746c37b373be362 100644 (file)
@@ -112,7 +112,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
                ret = PTR_ERR(hcd->usb_phy);
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -597,11 +597,7 @@ int xhci_run(struct usb_hcd *hcd)
+@@ -612,11 +612,7 @@ int xhci_run(struct usb_hcd *hcd)
                        "// Set the interrupt modulation register");
        temp = readl(&xhci->ir_set->irq_control);
        temp &= ~ER_IRQ_INTERVAL_MASK;