]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: Update to version 5.15.179
authorHauke Mehrtens <hauke@hauke-m.de>
Fri, 11 Apr 2025 20:13:36 +0000 (20:13 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 13 Apr 2025 00:53:07 +0000 (02:53 +0200)
Removed the following patches because they were upstreamed:
   bcm27xx/patches-5.15/950-0020-drm-probe-helper-Create-a-HPD-IRQ-event-helper-for-a.patch [0]
   bcm47xx/patches-5.15/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch [1]
   bcm53xx/patches-5.15/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch [1]

Manually adapted the following patches:
   bcm27xx/patches-5.15/950-0151-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
   bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch

[0]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=5211d75e2cb75cb129602247e79058f26afb4104
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=3ce32a9fb1d210f1e8384ebbfc336b64d3c131bd

Link: https://github.com/openwrt/openwrt/pull/18012
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
53 files changed:
include/kernel-5.15
target/linux/ath79/patches-5.15/910-unaligned_access_hacks.patch
target/linux/bcm27xx/patches-5.15/950-0020-drm-probe-helper-Create-a-HPD-IRQ-event-helper-for-a.patch [deleted file]
target/linux/bcm27xx/patches-5.15/950-0035-cgroup-Disable-cgroup-memory-by-default.patch
target/linux/bcm27xx/patches-5.15/950-0064-Add-dwc_otg-driver.patch
target/linux/bcm27xx/patches-5.15/950-0151-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
target/linux/bcm27xx/patches-5.15/950-0152-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch
target/linux/bcm27xx/patches-5.15/950-0340-dt-binding-display-bcm2711-hdmi-Add-CEC-and-hotplug-.patch
target/linux/bcm27xx/patches-5.15/950-0468-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch
target/linux/bcm27xx/patches-5.15/950-0470-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch
target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
target/linux/bcm27xx/patches-5.15/950-0747-usb-xhci-rework-XHCI_VLI_SS_BULK_OUT_BUG-quirk.patch
target/linux/bcm47xx/patches-5.15/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch [deleted file]
target/linux/bcm47xx/patches-5.15/791-tg3-no-pci-sleep.patch
target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/bcm53xx/patches-5.15/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch [deleted file]
target/linux/generic/backport-5.15/020-v6.1-01-mm-x86-arm64-add-arch_has_hw_pte_young.patch
target/linux/generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch
target/linux/generic/backport-5.15/020-v6.1-07-mm-multi-gen-LRU-exploit-locality-in-rmap.patch
target/linux/generic/backport-5.15/020-v6.1-08-mm-multi-gen-LRU-support-page-table-walks.patch
target/linux/generic/backport-5.15/020-v6.3-19-mm-add-vma_has_recency.patch
target/linux/generic/backport-5.15/020-v6.3-20-mm-support-POSIX_FADV_NOREUSE.patch
target/linux/generic/backport-5.15/020-v6.3-26-mm-multi-gen-LRU-per-node-lru_gen_page-lists.patch
target/linux/generic/backport-5.15/423-v6.1-0002-mtd-always-initialize-stats-in-struct-mtd_oob_ops.patch
target/linux/generic/backport-5.15/730-08-v6.3-net-dsa-add-support-for-DSA-rx-offloading-via-metada.patch
target/linux/generic/backport-5.15/781-v6.1-bus-mhi-host-always-print-detected-modem-name.patch
target/linux/generic/backport-5.15/794-v6.2-net-core-Allow-live-renaming-when-an-interface-is-up.patch
target/linux/generic/backport-5.15/802-v5.16-0001-nvmem-core-rework-nvmem-cell-instance-creation.patch
target/linux/generic/backport-5.15/809-v6.3-0002-nvmem-core-add-an-index-parameter-to-the-cell.patch
target/linux/generic/backport-5.15/809-v6.3-0010-nvmem-qcom-spmi-sdam-register-at-device-init-time.patch
target/linux/generic/backport-5.15/811-v6.4-0005-nvmem-core-add-per-cell-post-processing.patch
target/linux/generic/backport-5.15/820-v6.7-0002-nvmem-add-explicit-config-option-to-read-old-syntax-.patch
target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
target/linux/generic/hack-5.15/773-bgmac-add-srab-switch.patch
target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
target/linux/generic/hack-5.15/902-debloat_proc.patch
target/linux/generic/hack-5.15/904-debloat_dma_buf.patch
target/linux/generic/pending-5.15/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
target/linux/generic/pending-5.15/811-pci_disable_usb_common_quirks.patch
target/linux/ipq40xx/patches-5.15/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch
target/linux/ipq40xx/patches-5.15/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch
target/linux/ipq40xx/patches-5.15/999-atm-mpoa-intel-dsl-phy-support.patch
target/linux/mediatek/patches-5.15/410-bt-mtk-serial-fix.patch
target/linux/octeontx/patches-5.15/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
target/linux/ramips/patches-5.15/810-uvc-add-iPassion-iP2970-support.patch

index 9631a45f33e70419875d4fc6c634988e27f5b297..463a4c22731499a4d1b70a6c370094efe73369c7 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .178
-LINUX_KERNEL_HASH-5.15.178 = efe9f7eb5ea4d26cec6290689343e1804eb3b4a88ff5a60497a696fc08157c42
+LINUX_VERSION-5.15 = .179
+LINUX_KERNEL_HASH-5.15.179 = 9319a47b1e9b5d344ff6015431856d0c9640e4faedc527c87f9129061a27136f
index 9d562ae101996a770ca9e68563b9d80172efc62d..29d53a8213a9000131e3e3cb17bd9d58c99a4a9e 100644 (file)
@@ -858,7 +858,7 @@ SVN-Revision: 35130
  
 --- a/net/ipv4/tcp_offload.c
 +++ b/net/ipv4/tcp_offload.c
-@@ -226,7 +226,7 @@ struct sk_buff *tcp_gro_receive(struct l
+@@ -229,7 +229,7 @@ struct sk_buff *tcp_gro_receive(struct l
  
                th2 = tcp_hdr(p);
  
@@ -867,7 +867,7 @@ SVN-Revision: 35130
                        NAPI_GRO_CB(p)->same_flow = 0;
                        continue;
                }
-@@ -244,8 +244,8 @@ found:
+@@ -247,8 +247,8 @@ found:
                  ~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH));
        flush |= (__force int)(th->ack_seq ^ th2->ack_seq);
        for (i = sizeof(*th); i < thlen; i += 4)
diff --git a/target/linux/bcm27xx/patches-5.15/950-0020-drm-probe-helper-Create-a-HPD-IRQ-event-helper-for-a.patch b/target/linux/bcm27xx/patches-5.15/950-0020-drm-probe-helper-Create-a-HPD-IRQ-event-helper-for-a.patch
deleted file mode 100644 (file)
index 9cacb49..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-From 22ce134cee72bd9ef4b02c8769f868309f2ab8fd Mon Sep 17 00:00:00 2001
-From: Maxime Ripard <maxime@cerno.tech>
-Date: Thu, 19 Aug 2021 14:37:04 +0200
-Subject: [PATCH] drm/probe-helper: Create a HPD IRQ event helper for a
- single connector
-
-The drm_helper_hpd_irq_event() function is iterating over all the
-connectors when an hotplug event is detected.
-
-During that iteration, it will call each connector detect function and
-figure out if its status changed.
-
-Finally, if any connector changed, it will notify the user-space and the
-clients that something changed on the DRM device.
-
-This is supposed to be used for drivers that don't have a hotplug
-interrupt for individual connectors. However, drivers that can use an
-interrupt for a single connector are left in the dust and can either
-reimplement the logic used during the iteration for each connector or
-use that helper and iterate over all connectors all the time.
-
-Since both are suboptimal, let's create a helper that will only perform
-the status detection on a single connector.
-
-Signed-off-by: Maxime Ripard <maxime@cerno.tech>
-
----
-
-Changes from v1:
-  - Rename the shared function
-  - Move the hotplug event notification out of the shared function
-  - Added missing locks
-  - Improve the documentation
-  - Switched to drm_dbg_kms
----
- drivers/gpu/drm/drm_probe_helper.c | 120 ++++++++++++++++++++---------
- include/drm/drm_probe_helper.h     |   1 +
- 2 files changed, 86 insertions(+), 35 deletions(-)
-
---- a/drivers/gpu/drm/drm_probe_helper.c
-+++ b/drivers/gpu/drm/drm_probe_helper.c
-@@ -805,6 +805,86 @@ void drm_kms_helper_poll_fini(struct drm
- }
- EXPORT_SYMBOL(drm_kms_helper_poll_fini);
-+static bool check_connector_changed(struct drm_connector *connector)
-+{
-+      struct drm_device *dev = connector->dev;
-+      enum drm_connector_status old_status;
-+      u64 old_epoch_counter;
-+      bool changed = false;
-+
-+      /* Only handle HPD capable connectors. */
-+      drm_WARN_ON(dev, !(connector->polled & DRM_CONNECTOR_POLL_HPD));
-+
-+      drm_WARN_ON(dev, !mutex_is_locked(&dev->mode_config.mutex));
-+
-+      old_status = connector->status;
-+      old_epoch_counter = connector->epoch_counter;
-+
-+      drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Old epoch counter %llu\n",
-+                  connector->base.id,
-+                  connector->name,
-+                  old_epoch_counter);
-+
-+      connector->status = drm_helper_probe_detect(connector, NULL, false);
-+      drm_dbg_kms(dev, "[CONNECTOR:%d:%s] status updated from %s to %s\n",
-+                  connector->base.id,
-+                  connector->name,
-+                  drm_get_connector_status_name(old_status),
-+                  drm_get_connector_status_name(connector->status));
-+
-+      drm_dbg_kms(dev, "[CONNECTOR:%d:%s] New epoch counter %llu\n",
-+                  connector->base.id,
-+                  connector->name,
-+                  connector->epoch_counter);
-+
-+      /*
-+       * Check if epoch counter had changed, meaning that we need
-+       * to send a uevent.
-+       */
-+      if (old_epoch_counter != connector->epoch_counter)
-+              changed = true;
-+
-+      return changed;
-+}
-+
-+/**
-+ * drm_connector_helper_hpd_irq_event - hotplug processing
-+ * @connector: drm_connector
-+ *
-+ * Drivers can use this helper function to run a detect cycle on a connector
-+ * which has the DRM_CONNECTOR_POLL_HPD flag set in its &polled member.
-+ *
-+ * This helper function is useful for drivers which can track hotplug
-+ * interrupts for a single connector. Drivers that want to send a
-+ * hotplug event for all connectors or can't track hotplug interrupts
-+ * per connector need to use drm_helper_hpd_irq_event().
-+ *
-+ * This function must be called from process context with no mode
-+ * setting locks held.
-+ *
-+ * Note that a connector can be both polled and probed from the hotplug
-+ * handler, in case the hotplug interrupt is known to be unreliable.
-+ */
-+bool drm_connector_helper_hpd_irq_event(struct drm_connector *connector)
-+{
-+      struct drm_device *dev = connector->dev;
-+      bool changed;
-+
-+      mutex_lock(&dev->mode_config.mutex);
-+      changed = check_connector_changed(connector);
-+      mutex_unlock(&dev->mode_config.mutex);
-+
-+      if (changed) {
-+              drm_kms_helper_hotplug_event(dev);
-+              drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Sent hotplug event\n",
-+                          connector->base.id,
-+                          connector->name);
-+      }
-+
-+      return changed;
-+}
-+EXPORT_SYMBOL(drm_connector_helper_hpd_irq_event);
-+
- /**
-  * drm_helper_hpd_irq_event - hotplug processing
-  * @dev: drm_device
-@@ -818,9 +898,10 @@ EXPORT_SYMBOL(drm_kms_helper_poll_fini);
-  * interrupts for each connector.
-  *
-  * Drivers which support hotplug interrupts for each connector individually and
-- * which have a more fine-grained detect logic should bypass this code and
-- * directly call drm_kms_helper_hotplug_event() in case the connector state
-- * changed.
-+ * which have a more fine-grained detect logic can use
-+ * drm_connector_helper_hpd_irq_event(). Alternatively, they should bypass this
-+ * code and directly call drm_kms_helper_hotplug_event() in case the connector
-+ * state changed.
-  *
-  * This function must be called from process context with no mode
-  * setting locks held.
-@@ -832,9 +913,7 @@ bool drm_helper_hpd_irq_event(struct drm
- {
-       struct drm_connector *connector;
-       struct drm_connector_list_iter conn_iter;
--      enum drm_connector_status old_status;
-       bool changed = false;
--      u64 old_epoch_counter;
-       if (!dev->mode_config.poll_enabled)
-               return false;
-@@ -842,37 +921,8 @@ bool drm_helper_hpd_irq_event(struct drm
-       mutex_lock(&dev->mode_config.mutex);
-       drm_connector_list_iter_begin(dev, &conn_iter);
-       drm_for_each_connector_iter(connector, &conn_iter) {
--              /* Only handle HPD capable connectors. */
--              if (!(connector->polled & DRM_CONNECTOR_POLL_HPD))
--                      continue;
--
--              old_status = connector->status;
--
--              old_epoch_counter = connector->epoch_counter;
--
--              DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Old epoch counter %llu\n", connector->base.id,
--                            connector->name,
--                            old_epoch_counter);
--
--              connector->status = drm_helper_probe_detect(connector, NULL, false);
--              DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated from %s to %s\n",
--                            connector->base.id,
--                            connector->name,
--                            drm_get_connector_status_name(old_status),
--                            drm_get_connector_status_name(connector->status));
--
--              DRM_DEBUG_KMS("[CONNECTOR:%d:%s] New epoch counter %llu\n",
--                            connector->base.id,
--                            connector->name,
--                            connector->epoch_counter);
--
--              /*
--               * Check if epoch counter had changed, meaning that we need
--               * to send a uevent.
--               */
--              if (old_epoch_counter != connector->epoch_counter)
-+              if (check_connector_changed(connector))
-                       changed = true;
--
-       }
-       drm_connector_list_iter_end(&conn_iter);
-       mutex_unlock(&dev->mode_config.mutex);
---- a/include/drm/drm_probe_helper.h
-+++ b/include/drm/drm_probe_helper.h
-@@ -18,6 +18,7 @@ int drm_helper_probe_detect(struct drm_c
- void drm_kms_helper_poll_init(struct drm_device *dev);
- void drm_kms_helper_poll_fini(struct drm_device *dev);
- bool drm_helper_hpd_irq_event(struct drm_device *dev);
-+bool drm_connector_helper_hpd_irq_event(struct drm_connector *connector);
- void drm_kms_helper_hotplug_event(struct drm_device *dev);
- void drm_kms_helper_poll_disable(struct drm_device *dev);
index 63f7a99519a2cb53fe1220cdceeafe9ce44a2b2f..48f237903b90c17b70ab3a9bc90340601ff9ed21 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/kernel/cgroup/cgroup.c
 +++ b/kernel/cgroup/cgroup.c
-@@ -5893,6 +5893,9 @@ int __init cgroup_init_early(void)
+@@ -5889,6 +5889,9 @@ int __init cgroup_init_early(void)
        return 0;
  }
  
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  /**
   * cgroup_init - cgroup initialization
   *
-@@ -5931,6 +5934,12 @@ int __init cgroup_init(void)
+@@ -5927,6 +5930,12 @@ int __init cgroup_init(void)
  
        mutex_unlock(&cgroup_mutex);
  
@@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        for_each_subsys(ss, ssid) {
                if (ss->early_init) {
                        struct cgroup_subsys_state *css =
-@@ -6523,6 +6532,10 @@ static int __init cgroup_disable(char *s
+@@ -6527,6 +6536,10 @@ static int __init cgroup_disable(char *s
                            strcmp(token, ss->legacy_name))
                                continue;
  
@@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
                        static_branch_disable(cgroup_subsys_enabled_key[i]);
                        pr_info("Disabling %s control group subsystem\n",
                                ss->name);
-@@ -6541,6 +6554,31 @@ static int __init cgroup_disable(char *s
+@@ -6545,6 +6558,31 @@ static int __init cgroup_disable(char *s
  }
  __setup("cgroup_disable=", cgroup_disable);
  
index d207f651e908260f34717a24225ce9aae6eca59e..80fb172e04f8bf03333c90246ce69733ec4e53ae 100644 (file)
@@ -1123,7 +1123,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
  }
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
-@@ -5679,7 +5679,7 @@ static void port_event(struct usb_hub *h
+@@ -5689,7 +5689,7 @@ static void port_event(struct usb_hub *h
                port_dev->over_current_count++;
                port_over_current_notify(port_dev);
  
index 0883ad7594a00b0685087b2ebab5cb718030134f..5604efbba7af2c3c651a426ce0977d791b4cecbc 100644 (file)
@@ -90,10 +90,10 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
 +               */
 +      void    (*fixup_endpoint)(struct usb_hcd *hcd, struct usb_device *udev,
 +                                struct usb_host_endpoint *ep, int interval);
-               /* Returns the hardware-chosen device address */
-       int     (*address_device)(struct usb_hcd *, struct usb_device *udev);
-               /* prepares the hardware to send commands to the device */
-@@ -449,6 +454,8 @@ extern void usb_hcd_unmap_urb_setup_for_
+               /* Set the hardware-chosen device address */
+       int     (*address_device)(struct usb_hcd *, struct usb_device *udev,
+                                 unsigned int timeout_ms);
+@@ -450,6 +455,8 @@ extern void usb_hcd_unmap_urb_setup_for_
  extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
  extern void usb_hcd_flush_endpoint(struct usb_device *udev,
                struct usb_host_endpoint *ep);
index e56a41f472cf41bedb0c6f9f2e4b4a4aebcebcec..98fb4e535c0d110d6d5dd28964270691514cb764 100644 (file)
@@ -125,7 +125,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
   * non-error returns are a promise to giveback() the urb later
   * we drop ownership so next owner (or urb unlink) can get it
   */
-@@ -5501,6 +5604,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5510,6 +5613,7 @@ static const struct hc_driver xhci_hc_dr
        .endpoint_reset =       xhci_endpoint_reset,
        .check_bandwidth =      xhci_check_bandwidth,
        .reset_bandwidth =      xhci_reset_bandwidth,
index eab631e1494579ff5e199ad79c8dcae05d08651e..8ca9a0ddc9d1d2549527f14e02a27f6090dfb596 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-mem.c
 +++ b/drivers/usb/host/xhci-mem.c
-@@ -2276,6 +2276,7 @@ xhci_alloc_interrupter(struct xhci_hcd *
+@@ -2278,6 +2278,7 @@ xhci_alloc_interrupter(struct xhci_hcd *
  {
        struct device *dev = xhci_to_hcd(xhci)->self.sysdev;
        struct xhci_interrupter *ir;
@@ -30,7 +30,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        u64 erst_base;
        u32 erst_size;
        int ret;
-@@ -2296,7 +2297,11 @@ xhci_alloc_interrupter(struct xhci_hcd *
+@@ -2298,7 +2299,11 @@ xhci_alloc_interrupter(struct xhci_hcd *
                return NULL;
  
        ir->ir_set = &xhci->run_regs->ir_set[intr_num];
@@ -43,7 +43,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                                        0, flags);
        if (!ir->event_ring) {
                xhci_warn(xhci, "Failed to allocate interrupter %d event ring\n", intr_num);
-@@ -2312,7 +2317,7 @@ xhci_alloc_interrupter(struct xhci_hcd *
+@@ -2314,7 +2319,7 @@ xhci_alloc_interrupter(struct xhci_hcd *
        /* set ERST count with the number of entries in the segment table */
        erst_size = readl(&ir->ir_set->erst_size);
        erst_size &= ERST_SIZE_MASK;
@@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        erst_base = xhci_read_64(xhci, &ir->ir_set->erst_base);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1424,8 +1424,9 @@ struct urb_priv {
+@@ -1429,8 +1429,9 @@ struct urb_priv {
   * Each segment table entry is 4*32bits long.  1K seems like an ok size:
   * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
   * meaning 64 ring segments.
index 36c739c758c9d44abb391736d19a254cce249e6e..6205d50f58d645fc6055b27c67273a976b562987 100644 (file)
@@ -15,7 +15,7 @@ Acked-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/Documentation/devicetree/bindings/display/brcm,bcm2711-hdmi.yaml
 +++ b/Documentation/devicetree/bindings/display/brcm,bcm2711-hdmi.yaml
-@@ -109,7 +109,7 @@ required:
+@@ -108,7 +108,7 @@ required:
    - resets
    - ddc
  
index 3c3f8c235f55ccbbdca479380fd0448ae998c959..f9e24ab3ea32b5f2faa57c688ed037e6a1bf1882 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -675,9 +675,9 @@ deq_found:
+@@ -677,9 +677,9 @@ deq_found:
        }
  
        if ((ep->ep_state & SET_DEQ_PENDING)) {
index 7d3f0664f184f0cc1b59c83d20564666442786c6..8d3bde946f5e5fe5e970ec93ac0c8ffa7475b06d 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/sound/usb/quirks.c
 +++ b/sound/usb/quirks.c
-@@ -1832,6 +1832,8 @@ static const struct usb_audio_quirk_flag
+@@ -1833,6 +1833,8 @@ static const struct usb_audio_quirk_flag
                   QUIRK_FLAG_IGNORE_CTL_ERROR),
        DEVICE_FLG(0x0951, 0x16ad, /* Kingston HyperX */
                   QUIRK_FLAG_CTL_MSG_DELAY_1M),
index 8a3230be36207fb95d88979bbebf1067755d5b6d..9fe7416d8e1f5e0882c86a721c1c679efb4a7e6b 100644 (file)
@@ -22,21 +22,17 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -305,8 +305,10 @@ static void xhci_pci_quirks(struct devic
-                       pdev->device == 0x3432)
-               xhci->quirks |= XHCI_BROKEN_STREAMS;
--      if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483)
-+      if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
+@@ -310,6 +310,7 @@ static void xhci_pci_quirks(struct devic
+       if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == PCI_DEVICE_ID_VIA_VL805) {
                xhci->quirks |= XHCI_LPM_SUPPORT;
+               xhci->quirks |= XHCI_TRB_OVERFETCH;
 +              xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
-+      }
+       }
  
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
-               pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) {
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -665,6 +665,15 @@ static int xhci_move_dequeue_past_td(str
+@@ -667,6 +667,15 @@ static int xhci_move_dequeue_past_td(str
        } while (!cycle_found || !td_last_trb_found);
  
  deq_found:
@@ -54,7 +50,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        addr = xhci_trb_virt_to_dma(new_seg, new_deq);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1665,6 +1665,7 @@ struct xhci_hcd {
+@@ -1670,6 +1670,7 @@ struct xhci_hcd {
  #define XHCI_ZHAOXIN_HOST     BIT_ULL(46)
  #define XHCI_WRITE_64_HI_LO   BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
index 336102fa2db67017a8a4d7478c504d5b778091b7..dc9932ba0290efb866dce3f905ef38945e194afa 100644 (file)
@@ -145,7 +145,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (ret)
                return -ENOMEM;
  
-@@ -1820,7 +1824,7 @@ int xhci_alloc_erst(struct xhci_hcd *xhc
+@@ -1822,7 +1826,7 @@ int xhci_alloc_erst(struct xhci_hcd *xhc
        for (val = 0; val < evt_ring->num_segs; val++) {
                entry = &erst->entries[val];
                entry->seg_addr = cpu_to_le64(seg->dma);
@@ -205,7 +205,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                xhci_err(xhci, "Tried to move enqueue past ring segment\n");
                return;
        }
-@@ -3314,7 +3317,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
+@@ -3316,7 +3319,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
         * that clears the EHB.
         */
        while (xhci_handle_event(xhci, ir) > 0) {
@@ -214,7 +214,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                        continue;
                xhci_update_erst_dequeue(xhci, ir, event_ring_deq);
                event_ring_deq = ir->event_ring->dequeue;
-@@ -3456,7 +3459,8 @@ static int prepare_ring(struct xhci_hcd
+@@ -3458,7 +3461,8 @@ static int prepare_ring(struct xhci_hcd
                }
        }
  
@@ -248,7 +248,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
         * when the cycle bit is set to 1.
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1386,6 +1386,7 @@ struct xhci_ring {
+@@ -1391,6 +1391,7 @@ struct xhci_ring {
        unsigned int            num_trbs_free;
        unsigned int            num_trbs_free_temp;
        unsigned int            bounce_buf_len;
index 97e09df1cfb5b1a5dfbcf82b655425b523ad5378..ba51f3f1fbf8e113ce6b39e915a8f712028bc034 100644 (file)
@@ -53,9 +53,9 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                        cycle_state, type, max_packet, flags);
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -308,6 +308,7 @@ static void xhci_pci_quirks(struct devic
-       if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
+@@ -311,6 +311,7 @@ static void xhci_pci_quirks(struct devic
                xhci->quirks |= XHCI_LPM_SUPPORT;
+               xhci->quirks |= XHCI_TRB_OVERFETCH;
                xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
 +              xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
        }
@@ -63,7 +63,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1667,6 +1667,7 @@ struct xhci_hcd {
+@@ -1672,6 +1672,7 @@ struct xhci_hcd {
  #define XHCI_WRITE_64_HI_LO   BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
  #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(49)
index e8ec7de6fb2d0bfc02d7dca96802398a5bae2c87..812c1c67daaf9d2f1b4a75a481208378a1bdd00c 100644 (file)
@@ -26,8 +26,8 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -309,6 +309,7 @@ static void xhci_pci_quirks(struct devic
-               xhci->quirks |= XHCI_LPM_SUPPORT;
+@@ -312,6 +312,7 @@ static void xhci_pci_quirks(struct devic
+               xhci->quirks |= XHCI_TRB_OVERFETCH;
                xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
                xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
 +              xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG;
@@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3769,14 +3769,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3771,14 +3771,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
        unsigned int num_trbs;
        unsigned int start_cycle, num_sgs = 0;
        unsigned int enqd_len, block_len, trb_buff_len, full_len;
@@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        full_len = urb->transfer_buffer_length;
        /* If we have scatter/gather list, we use it. */
        if (urb->num_sgs && !(urb->transfer_flags & URB_DMA_MAP_SINGLE)) {
-@@ -3813,6 +3814,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3815,6 +3816,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
        start_cycle = ring->cycle_state;
        send_addr = addr;
  
@@ -72,7 +72,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        /* Queue the TRBs, even if they are zero-length */
        for (enqd_len = 0; first_trb || enqd_len < full_len;
                        enqd_len += trb_buff_len) {
-@@ -3825,6 +3837,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3827,6 +3839,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
                if (enqd_len + trb_buff_len > full_len)
                        trb_buff_len = full_len - enqd_len;
  
@@ -86,7 +86,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                        first_trb = false;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1668,6 +1668,7 @@ struct xhci_hcd {
+@@ -1673,6 +1673,7 @@ struct xhci_hcd {
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
  #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(49)
  #define XHCI_VLI_TRB_CACHE_BUG        BIT_ULL(50)
index dfabd7f28a2bc2547e518ac075f891973960f56c..b05206fde7d7e5f0d51f6d50e2922aed456b65d3 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3769,7 +3769,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3771,7 +3771,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
        unsigned int num_trbs;
        unsigned int start_cycle, num_sgs = 0;
        unsigned int enqd_len, block_len, trb_buff_len, full_len;
@@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        u32 field, length_field, remainder, maxpacket;
        u64 addr, send_addr;
  
-@@ -3815,14 +3815,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3817,14 +3817,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
        send_addr = addr;
  
        if (xhci->quirks & XHCI_VLI_SS_BULK_OUT_BUG &&
@@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        }
  
        /* Queue the TRBs, even if they are zero-length */
-@@ -3837,7 +3832,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3839,7 +3834,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
                if (enqd_len + trb_buff_len > full_len)
                        trb_buff_len = full_len - enqd_len;
  
diff --git a/target/linux/bcm47xx/patches-5.15/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch b/target/linux/bcm47xx/patches-5.15/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch
deleted file mode 100644 (file)
index 3a2f4b0..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Fri, 10 Jun 2022 13:10:47 +0200
-Subject: [PATCH] bgmac: reduce max frame size to support just MTU 1500
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-bgmac allocates new replacement buffer before handling each received
-frame. Allocating & DMA-preparing 9724 B each time consumes a lot of CPU
-time. Ideally bgmac should just respect currently set MTU but it isn't
-the case right now. For now just revert back to the old limited frame
-size.
-
-This change bumps NAT masquarade speed by ~95%.
-
-Ref: 8c7da63978f1 ("bgmac: configure MTU and add support for frames beyond 8192 byte size")
-Signed-off-by: RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
----
- drivers/net/ethernet/broadcom/bgmac.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/drivers/net/ethernet/broadcom/bgmac.h
-+++ b/drivers/net/ethernet/broadcom/bgmac.h
-@@ -328,8 +328,7 @@
- #define BGMAC_RX_FRAME_OFFSET                 30              /* There are 2 unused bytes between header and real data */
- #define BGMAC_RX_BUF_OFFSET                   (NET_SKB_PAD + NET_IP_ALIGN - \
-                                                BGMAC_RX_FRAME_OFFSET)
--/* Jumbo frame size with FCS */
--#define BGMAC_RX_MAX_FRAME_SIZE                       9724
-+#define BGMAC_RX_MAX_FRAME_SIZE                       1536
- #define BGMAC_RX_BUF_SIZE                     (BGMAC_RX_FRAME_OFFSET + BGMAC_RX_MAX_FRAME_SIZE)
- #define BGMAC_RX_ALLOC_SIZE                   (SKB_DATA_ALIGN(BGMAC_RX_BUF_SIZE + BGMAC_RX_BUF_OFFSET) + \
-                                                SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
index fb78dca758852818bc9abc1b7d57443fe973ebb2..76e979ad58286ed20df831442c54f23990c7ad70 100644 (file)
@@ -5,7 +5,7 @@ when a switch driver is in use.
 
 --- a/drivers/net/ethernet/broadcom/tg3.c
 +++ b/drivers/net/ethernet/broadcom/tg3.c
-@@ -4268,7 +4268,8 @@ static int tg3_power_down_prepare(struct
+@@ -4269,7 +4269,8 @@ static int tg3_power_down_prepare(struct
  static void tg3_power_down(struct tg3 *tp)
  {
        pci_wake_from_d3(tp->pdev, tg3_flag(tp, WOL_ENABLE));
index 862144537299fcb9657e34a8e59229d1525dcaf9..569a3649757ad010c2bb77a2c7da101cc50e9472 100644 (file)
@@ -109,7 +109,7 @@ it on BCM4708 family.
  
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1664,6 +1664,7 @@ struct xhci_hcd {
+@@ -1669,6 +1669,7 @@ struct xhci_hcd {
  #define XHCI_ZHAOXIN_HOST     BIT_ULL(46)
  #define XHCI_WRITE_64_HI_LO   BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
diff --git a/target/linux/bcm53xx/patches-5.15/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch b/target/linux/bcm53xx/patches-5.15/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch
deleted file mode 100644 (file)
index 3a2f4b0..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Fri, 10 Jun 2022 13:10:47 +0200
-Subject: [PATCH] bgmac: reduce max frame size to support just MTU 1500
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-bgmac allocates new replacement buffer before handling each received
-frame. Allocating & DMA-preparing 9724 B each time consumes a lot of CPU
-time. Ideally bgmac should just respect currently set MTU but it isn't
-the case right now. For now just revert back to the old limited frame
-size.
-
-This change bumps NAT masquarade speed by ~95%.
-
-Ref: 8c7da63978f1 ("bgmac: configure MTU and add support for frames beyond 8192 byte size")
-Signed-off-by: RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
----
- drivers/net/ethernet/broadcom/bgmac.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/drivers/net/ethernet/broadcom/bgmac.h
-+++ b/drivers/net/ethernet/broadcom/bgmac.h
-@@ -328,8 +328,7 @@
- #define BGMAC_RX_FRAME_OFFSET                 30              /* There are 2 unused bytes between header and real data */
- #define BGMAC_RX_BUF_OFFSET                   (NET_SKB_PAD + NET_IP_ALIGN - \
-                                                BGMAC_RX_FRAME_OFFSET)
--/* Jumbo frame size with FCS */
--#define BGMAC_RX_MAX_FRAME_SIZE                       9724
-+#define BGMAC_RX_MAX_FRAME_SIZE                       1536
- #define BGMAC_RX_BUF_SIZE                     (BGMAC_RX_FRAME_OFFSET + BGMAC_RX_MAX_FRAME_SIZE)
- #define BGMAC_RX_ALLOC_SIZE                   (SKB_DATA_ALIGN(BGMAC_RX_BUF_SIZE + BGMAC_RX_BUF_OFFSET) + \
-                                                SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
index 62deee0410315a625a18d50ee830b53ab9d69b7f..bd0703ee9a6d836e138b7719e0cae024dbe71c2d 100644 (file)
@@ -414,7 +414,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  #ifndef arch_wants_old_prefaulted_pte
  static inline bool arch_wants_old_prefaulted_pte(void)
  {
-@@ -2819,7 +2807,7 @@ static inline int cow_user_page(struct p
+@@ -2821,7 +2809,7 @@ static inline int cow_user_page(struct p
         * On architectures with software "accessed" bits, we would
         * take a double page fault, so mark it accessed here.
         */
index 3a53b1c0dcf6cbd59c5a1aed7789b7bca0893fa2..e1951b0360594daf06c7a0edda9eccb52789533f 100644 (file)
@@ -538,7 +538,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
        (1UL << PG_private | 1UL << PG_private_2)
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -907,6 +907,10 @@ struct task_struct {
+@@ -905,6 +905,10 @@ struct task_struct {
  #ifdef CONFIG_MEMCG
        unsigned                        in_user_fault:1;
  #endif
@@ -594,7 +594,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
        VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
 --- a/mm/memcontrol.c
 +++ b/mm/memcontrol.c
-@@ -5199,6 +5199,7 @@ static void __mem_cgroup_free(struct mem
+@@ -5204,6 +5204,7 @@ static void __mem_cgroup_free(struct mem
  
  static void mem_cgroup_free(struct mem_cgroup *memcg)
  {
@@ -602,7 +602,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
        memcg_wb_domain_exit(memcg);
        __mem_cgroup_free(memcg);
  }
-@@ -5262,6 +5263,7 @@ static struct mem_cgroup *mem_cgroup_all
+@@ -5267,6 +5268,7 @@ static struct mem_cgroup *mem_cgroup_all
        spin_lock(&memcg_idr_lock);
        idr_replace(&mem_cgroup_idr, memcg, memcg->id.id);
        spin_unlock(&memcg_idr_lock);
@@ -612,7 +612,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
        mem_cgroup_id_remove(memcg);
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -4832,6 +4832,27 @@ static inline void mm_account_fault(stru
+@@ -4834,6 +4834,27 @@ static inline void mm_account_fault(stru
                perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address);
  }
  
@@ -640,7 +640,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  /*
   * By the time we get here, we already hold the mm semaphore
   *
-@@ -4863,11 +4884,15 @@ vm_fault_t handle_mm_fault(struct vm_are
+@@ -4865,11 +4886,15 @@ vm_fault_t handle_mm_fault(struct vm_are
        if (flags & FAULT_FLAG_USER)
                mem_cgroup_enter_user_fault();
  
index 14e56f4284ccf319d7374419cfa82962d463cc63..fae3cdd4c493477d07cc2a517a1d16b7a5d3fe27 100644 (file)
@@ -210,7 +210,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
                unsigned long floor, unsigned long ceiling);
 --- a/mm/memcontrol.c
 +++ b/mm/memcontrol.c
-@@ -2798,6 +2798,7 @@ static void commit_charge(struct page *p
+@@ -2803,6 +2803,7 @@ static void commit_charge(struct page *p
         * - LRU isolation
         * - lock_page_memcg()
         * - exclusive reference
index 0906ec8484c8ab84e85a80b326c1b2a18fe19adb..d9bf81b5ac0d1faf4779613923aa0e7d01c4471c 100644 (file)
@@ -414,7 +414,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
        /* forking complete and child started to run, tell ptracer */
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -5011,6 +5011,7 @@ context_switch(struct rq *rq, struct tas
+@@ -5013,6 +5013,7 @@ context_switch(struct rq *rq, struct tas
                 * finish_task_switch()'s mmdrop().
                 */
                switch_mm_irqs_off(prev->active_mm, next->mm, next);
@@ -424,7 +424,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
                        /* will mmdrop() in finish_task_switch(). */
 --- a/mm/memcontrol.c
 +++ b/mm/memcontrol.c
-@@ -6233,6 +6233,30 @@ static void mem_cgroup_move_task(void)
+@@ -6238,6 +6238,30 @@ static void mem_cgroup_move_task(void)
  }
  #endif
  
@@ -455,7 +455,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  static int seq_puts_memcg_tunable(struct seq_file *m, unsigned long value)
  {
        if (value == PAGE_COUNTER_MAX)
-@@ -6576,6 +6600,7 @@ struct cgroup_subsys memory_cgrp_subsys
+@@ -6581,6 +6605,7 @@ struct cgroup_subsys memory_cgrp_subsys
        .css_reset = mem_cgroup_css_reset,
        .css_rstat_flush = mem_cgroup_css_rstat_flush,
        .can_attach = mem_cgroup_can_attach,
index fb536f8a6d86e42e825f89953f2fd09bc0e3c4f5..ab4785b65ef99e94b1ceda0cc29b3def30cacdd9 100644 (file)
@@ -92,7 +92,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
                                        mark_page_accessed(page);
                        }
                        rss[mm_counter(page)]--;
-@@ -4835,8 +4835,8 @@ static inline void mm_account_fault(stru
+@@ -4837,8 +4837,8 @@ static inline void mm_account_fault(stru
  #ifdef CONFIG_LRU_GEN
  static void lru_gen_enter_fault(struct vm_area_struct *vma)
  {
index 3bb075bf367a916dd0784f2a2e057da8d620cf10..c38bb4040cacc6cfef028910f7684da8f647546d 100644 (file)
@@ -81,7 +81,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
 
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -167,6 +167,8 @@ typedef int (dio_iodone_t)(struct kiocb
+@@ -165,6 +165,8 @@ typedef int (dio_iodone_t)(struct kiocb
  /* File is stream-like */
  #define FMODE_STREAM          ((__force fmode_t)0x200000)
  
index 05b8ec8345ae88bd888143ce444e316587eb274c..a6981a7d0f4d9e3723f180fb639223456683d1c8 100644 (file)
@@ -318,7 +318,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
        mctz = soft_limit_tree_from_page(page);
        if (!mctz)
                return;
-@@ -3434,6 +3444,9 @@ unsigned long mem_cgroup_soft_limit_recl
+@@ -3439,6 +3449,9 @@ unsigned long mem_cgroup_soft_limit_recl
        unsigned long excess;
        unsigned long nr_scanned;
  
@@ -328,7 +328,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
        if (order > 0)
                return 0;
  
-@@ -5342,6 +5355,7 @@ static int mem_cgroup_css_online(struct
+@@ -5347,6 +5360,7 @@ static int mem_cgroup_css_online(struct
        if (unlikely(mem_cgroup_is_root(memcg)))
                queue_delayed_work(system_unbound_wq, &stats_flush_dwork,
                                   2UL*HZ);
@@ -336,7 +336,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
        return 0;
  }
  
-@@ -5368,6 +5382,7 @@ static void mem_cgroup_css_offline(struc
+@@ -5373,6 +5387,7 @@ static void mem_cgroup_css_offline(struc
        memcg_offline_kmem(memcg);
        reparent_shrinker_deferred(memcg);
        wb_memcg_offline(memcg);
@@ -344,7 +344,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  
        drain_all_stock(memcg);
  
-@@ -5379,6 +5394,7 @@ static void mem_cgroup_css_released(stru
+@@ -5384,6 +5399,7 @@ static void mem_cgroup_css_released(stru
        struct mem_cgroup *memcg = mem_cgroup_from_css(css);
  
        invalidate_reclaim_iterators(memcg);
@@ -354,7 +354,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -7705,6 +7705,7 @@ static void __init free_area_init_node(i
+@@ -7706,6 +7706,7 @@ static void __init free_area_init_node(i
        pgdat_set_deferred_range(pgdat);
  
        free_area_init_core(pgdat);
index 1484624e4e51940acb08e749bf88cfda686a6128..9b6043fa3ba81cd814be4e72ed5085112187741b 100644 (file)
@@ -96,7 +96,7 @@ Link: https://lore.kernel.org/linux-mtd/20220629125737.14418-3-kernel@kempniu.pl
        ops.mode = MTD_OPS_AUTO_OOB;
 --- a/drivers/mtd/nand/onenand/onenand_base.c
 +++ b/drivers/mtd/nand/onenand/onenand_base.c
-@@ -2935,7 +2935,7 @@ static int do_otp_write(struct mtd_info
+@@ -2936,7 +2936,7 @@ static int do_otp_write(struct mtd_info
        struct onenand_chip *this = mtd->priv;
        unsigned char *pbuf = buf;
        int ret;
@@ -105,7 +105,7 @@ Link: https://lore.kernel.org/linux-mtd/20220629125737.14418-3-kernel@kempniu.pl
  
        /* Force buffer page aligned */
        if (len < mtd->writesize) {
-@@ -2977,7 +2977,7 @@ static int do_otp_lock(struct mtd_info *
+@@ -2978,7 +2978,7 @@ static int do_otp_lock(struct mtd_info *
                size_t *retlen, u_char *buf)
  {
        struct onenand_chip *this = mtd->priv;
index 0478cb528e2d1cb44506467ce1ae0ea7e2c49416..18de042415c52968c8b36e14ba3080b50d41e6c2 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/core/flow_dissector.c
 +++ b/net/core/flow_dissector.c
-@@ -940,12 +940,14 @@ bool __skb_flow_dissect(const struct net
+@@ -949,12 +949,14 @@ bool __skb_flow_dissect(const struct net
  #if IS_ENABLED(CONFIG_NET_DSA)
                if (unlikely(skb->dev && netdev_uses_dsa(skb->dev) &&
                             proto == htons(ETH_P_XDSA))) {
index 3c71a27b79871b1f3ec056a5972c136403eebeba..3f8ec3766366975aa5eda7bfc244ae7df874f0f6 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
 
 --- a/drivers/bus/mhi/host/pci_generic.c
 +++ b/drivers/bus/mhi/host/pci_generic.c
-@@ -806,7 +806,7 @@ static int mhi_pci_probe(struct pci_dev
+@@ -807,7 +807,7 @@ static int mhi_pci_probe(struct pci_dev
        struct mhi_controller *mhi_cntrl;
        int err;
  
index b0860db2669bf3f8c54c98703c41e21de2844e70..197f211407a91a8a9fd225ba0672be83a6e15121 100644 (file)
@@ -73,7 +73,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  /* Specifies the type of the struct net_device::ml_priv pointer */
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -1242,22 +1242,6 @@ int dev_change_name(struct net_device *d
+@@ -1273,22 +1273,6 @@ int dev_change_name(struct net_device *d
  
        net = dev_net(dev);
  
@@ -96,7 +96,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        down_write(&devnet_rename_sem);
  
        if (strncmp(newname, dev->name, IFNAMSIZ) == 0) {
-@@ -1274,7 +1258,8 @@ int dev_change_name(struct net_device *d
+@@ -1305,7 +1289,8 @@ int dev_change_name(struct net_device *d
        }
  
        if (oldname[0] && !strchr(oldname, '%'))
index 05b6720598d25a8df35502cc67f0a4486329b93c..318dbb776e69f97dae9ef09face8e557149c8e5b 100644 (file)
@@ -380,7 +380,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  {
        struct nvmem_device *nvmem = cell->nvmem;
        int rc;
-@@ -1528,6 +1558,21 @@ int nvmem_cell_write(struct nvmem_cell *
+@@ -1530,6 +1560,21 @@ int nvmem_cell_write(struct nvmem_cell *
  
        return len;
  }
@@ -402,7 +402,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  EXPORT_SYMBOL_GPL(nvmem_cell_write);
  
  static int nvmem_cell_read_common(struct device *dev, const char *cell_id,
-@@ -1630,7 +1675,7 @@ static const void *nvmem_cell_read_varia
+@@ -1632,7 +1677,7 @@ static const void *nvmem_cell_read_varia
        if (IS_ERR(cell))
                return cell;
  
@@ -411,7 +411,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        buf = nvmem_cell_read(cell, len);
        nvmem_cell_put(cell);
        if (IS_ERR(buf))
-@@ -1726,18 +1771,18 @@ EXPORT_SYMBOL_GPL(nvmem_cell_read_variab
+@@ -1728,18 +1773,18 @@ EXPORT_SYMBOL_GPL(nvmem_cell_read_variab
  ssize_t nvmem_device_cell_read(struct nvmem_device *nvmem,
                           struct nvmem_cell_info *info, void *buf)
  {
@@ -433,7 +433,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        if (rc)
                return rc;
  
-@@ -1757,17 +1802,17 @@ EXPORT_SYMBOL_GPL(nvmem_device_cell_read
+@@ -1759,17 +1804,17 @@ EXPORT_SYMBOL_GPL(nvmem_device_cell_read
  int nvmem_device_cell_write(struct nvmem_device *nvmem,
                            struct nvmem_cell_info *info, void *buf)
  {
index 84ee69b8151a39719ac31c432ca9584d0bad80e7..d861dd69d35cf5dafa5e7648038852dfbdd6acc1 100644 (file)
@@ -143,7 +143,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        if (rc) {
                kfree(buf);
                return ERR_PTR(rc);
-@@ -1772,7 +1787,7 @@ ssize_t nvmem_device_cell_read(struct nv
+@@ -1774,7 +1789,7 @@ ssize_t nvmem_device_cell_read(struct nv
        if (rc)
                return rc;
  
index 1ab9e609d33c9113864715d236720a3474f2b073..8182322ca49376a2cc64071151bb6029a1f66418 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/drivers/nvmem/qcom-spmi-sdam.c
 +++ b/drivers/nvmem/qcom-spmi-sdam.c
-@@ -175,18 +175,7 @@ static struct platform_driver sdam_drive
+@@ -176,18 +176,7 @@ static struct platform_driver sdam_drive
        },
        .probe          = sdam_probe,
  };
index 50f3504132b61260eb8d39311bc2f6f2702111cf..21a1b3fcf317eed4aa2d6be5434874a91f463d96 100644 (file)
@@ -63,8 +63,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 +              return -EINVAL;
 +
        if (cell->bit_offset || cell->nbits) {
-               buf = nvmem_cell_prepare_write_buffer(cell, buf, len);
-               if (IS_ERR(buf))
+               if (len != BITS_TO_BYTES(cell->nbits) && len != cell->bytes)
+                       return -EINVAL;
 --- a/include/linux/nvmem-provider.h
 +++ b/include/linux/nvmem-provider.h
 @@ -54,6 +54,8 @@ struct nvmem_keepout {
index 5e5f99e21057b667242949e2905eab0e8d04b4f3..7cbb5285e6b53f1a94439c107e710b89dda9474a 100644 (file)
@@ -178,8 +178,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        sdam->sdam_config.owner = THIS_MODULE;
 +      sdam->sdam_config.add_legacy_fixed_of_cells = true;
        sdam->sdam_config.stride = 1;
+       sdam->sdam_config.size = sdam->size;
        sdam->sdam_config.word_size = 1;
-       sdam->sdam_config.reg_read = sdam_read;
 --- a/drivers/nvmem/qfprom.c
 +++ b/drivers/nvmem/qfprom.c
 @@ -357,6 +357,7 @@ static int qfprom_probe(struct platform_
index 67586d3bcde14a473d0a0432a7318188db31afee..79c1a92a091c8ce203e878c29b6d185b50e4dcdb 100644 (file)
@@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -3600,6 +3600,11 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3631,6 +3631,11 @@ static int xmit_one(struct sk_buff *skb,
        if (dev_nit_active(dev))
                dev_queue_xmit_nit(skb, dev);
  
index 7127aa136c6a53be0fb8368a92c2c028dbb4e0a0..3bdd34d774674bcc2dbd813e825f050a83dedb06 100644 (file)
@@ -78,7 +78,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
        netif_napi_del(&bgmac->napi);
 --- a/drivers/net/ethernet/broadcom/bgmac.h
 +++ b/drivers/net/ethernet/broadcom/bgmac.h
-@@ -390,6 +390,7 @@
+@@ -389,6 +389,7 @@
  #define BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII       BIT(18)
  #define BGMAC_FEAT_CC7_IF_TYPE_RGMII  BIT(19)
  #define BGMAC_FEAT_IDM_MASK           BIT(20)
@@ -86,7 +86,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  
  struct bgmac_slot_info {
        union {
-@@ -497,6 +498,9 @@ struct bgmac {
+@@ -496,6 +497,9 @@ struct bgmac {
        void (*cmn_maskset32)(struct bgmac *bgmac, u16 offset, u32 mask,
                              u32 set);
        int (*phy_connect)(struct bgmac *bgmac);
index 0f2aa2c791b997275d91797163611f8059b55b65..c5fbf339d270c4b7d56b98b29ea081e66b968dbb 100644 (file)
@@ -44,7 +44,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  
  #define QUECTEL_VENDOR_ID                     0x2c7c
  /* These Quectel products use Quectel's vendor ID */
-@@ -1162,6 +1167,11 @@ static const struct usb_device_id option
+@@ -1153,6 +1158,11 @@ static const struct usb_device_id option
        { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
        { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
          .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
@@ -56,7 +56,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
        /* Quectel products using Qualcomm vendor ID */
        { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
        { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
-@@ -1203,6 +1213,11 @@ static const struct usb_device_id option
+@@ -1194,6 +1204,11 @@ static const struct usb_device_id option
          .driver_info = ZLP },
        { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
          .driver_info = RSVD(4) },
index f28cdb58ad56b660e8c6e2ecc829e1a25cd121c5..c2ae61aefd380573ad9543ab832e7a54eec7fa19 100644 (file)
@@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -388,6 +388,9 @@ static struct pernet_operations ip_rt_pr
+@@ -389,6 +389,9 @@ static struct pernet_operations ip_rt_pr
  
  static int __init ip_rt_proc_init(void)
  {
index f275ffd786e715f3502b1b6c609e299b9b13b55f..3fec861d53e6a227c74fef7ee6b1f5c94e514b46 100644 (file)
@@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +MODULE_LICENSE("GPL");
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -4217,6 +4217,7 @@ int wake_up_state(struct task_struct *p,
+@@ -4219,6 +4219,7 @@ int wake_up_state(struct task_struct *p,
  {
        return try_to_wake_up(p, state, 0);
  }
index aff86bfb39e2a95185730eb249d9cd05db783e0c..bab476e1b685b3da82beca4052530ae1ee2bf587 100644 (file)
@@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -7664,7 +7664,7 @@ static void __init alloc_node_mem_map(st
+@@ -7665,7 +7665,7 @@ static void __init alloc_node_mem_map(st
        if (pgdat == NODE_DATA(0)) {
                mem_map = NODE_DATA(0)->node_mem_map;
                if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
index af3dcb2b2dced2e6a57a5d7568b3ef0fb8c938cf..945492916963fd5bc43d6fd1aa358d0b84ff8581 100644 (file)
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        case RTN_THROW:
        case RTN_UNREACHABLE:
        default:
-@@ -4552,6 +4571,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4557,6 +4576,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.
   */
-@@ -5039,7 +5069,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -5044,7 +5074,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)
-@@ -6286,6 +6317,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6291,6 +6322,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
-@@ -6297,6 +6330,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6302,6 +6335,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
        }
-@@ -6488,6 +6522,8 @@ static int __net_init ip6_route_net_init
+@@ -6493,6 +6527,8 @@ static int __net_init ip6_route_net_init
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        net->ipv6.fib6_has_custom_rules = false;
@@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
                                               sizeof(*net->ipv6.ip6_prohibit_entry),
                                               GFP_KERNEL);
-@@ -6498,11 +6534,21 @@ static int __net_init ip6_route_net_init
+@@ -6503,11 +6539,21 @@ static int __net_init ip6_route_net_init
                         ip6_template_metrics, true);
        INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
  
@@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        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);
-@@ -6529,6 +6575,8 @@ out:
+@@ -6534,6 +6580,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -6548,6 +6596,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6553,6 +6601,7 @@ static void __net_exit ip6_route_net_exi
        kfree(net->ipv6.ip6_null_entry);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6631,6 +6680,9 @@ void __init ip6_route_init_special_entri
+@@ -6636,6 +6685,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 d770c1fb6c6a9d29970ab70ea18e665935bada56..8f1abf527dd2bba2e114c7a8e2254b947ee255da 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        __u8                    inner_protocol_type:1;
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6085,6 +6085,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6116,6 +6116,9 @@ static enum gro_result dev_gro_receive(s
        int same_flow;
        int grow;
  
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (netif_elide_gro(skb->dev))
                goto normal;
  
-@@ -8102,6 +8105,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8133,6 +8136,48 @@ static void __netdev_adjacent_dev_unlink
                                           &upper_dev->adj_list.lower);
  }
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *upper_priv, void *upper_info,
-@@ -8153,6 +8198,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8184,6 +8229,7 @@ static int __netdev_upper_dev_link(struc
        if (ret)
                return ret;
  
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
                                            &changeupper_info.info);
        ret = notifier_to_errno(ret);
-@@ -8249,6 +8295,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8280,6 +8326,7 @@ static void __netdev_upper_dev_unlink(st
  
        __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
  
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
                                      &changeupper_info.info);
  
-@@ -9068,6 +9115,7 @@ int dev_set_mac_address(struct net_devic
+@@ -9099,6 +9146,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
index ba75e4a0f1043361878fb621c2b886ea409760d0..dbcaa305a1f3eadc097efa4856190c8ca09daea0 100644 (file)
@@ -59,7 +59,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  }
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/net/netfilter/nft_flow_offload.c
-@@ -455,47 +455,14 @@ static struct nft_expr_type nft_flow_off
+@@ -461,47 +461,14 @@ static struct nft_expr_type nft_flow_off
        .owner          = THIS_MODULE,
  };
  
index dbd04c7fb45906d0e99098af33b91838ef0251a5..5da709a5eca7e2d520b7ada867b361625001e6e2 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  /**
   *    napi_disable - prevent NAPI from scheduling
-@@ -3364,6 +3365,7 @@ struct softnet_data {
+@@ -3372,6 +3373,7 @@ struct softnet_data {
        unsigned int            processed;
        unsigned int            time_squeeze;
        unsigned int            received_rps;
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4594,7 +4594,7 @@ static int rps_ipi_queued(struct softnet
+@@ -4625,7 +4625,7 @@ static int rps_ipi_queued(struct softnet
  #ifdef CONFIG_RPS
        struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
  
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                sd->rps_ipi_next = mysd->rps_ipi_list;
                mysd->rps_ipi_list = sd;
  
-@@ -5775,6 +5775,8 @@ static DEFINE_PER_CPU(struct work_struct
+@@ -5806,6 +5806,8 @@ static DEFINE_PER_CPU(struct work_struct
  /* Network device is going away, flush any packets still pending */
  static void flush_backlog(struct work_struct *work)
  {
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        struct sk_buff *skb, *tmp;
        struct softnet_data *sd;
  
-@@ -5790,9 +5792,18 @@ static void flush_backlog(struct work_st
+@@ -5821,9 +5823,18 @@ static void flush_backlog(struct work_st
                        input_queue_head_incr(sd);
                }
        }
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
                if (skb->dev->reg_state == NETREG_UNREGISTERING) {
                        __skb_unlink(skb, &sd->process_queue);
-@@ -5800,7 +5811,18 @@ static void flush_backlog(struct work_st
+@@ -5831,7 +5842,18 @@ static void flush_backlog(struct work_st
                        input_queue_head_incr(sd);
                }
        }
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  static bool flush_required(int cpu)
-@@ -6483,6 +6505,7 @@ static int process_backlog(struct napi_s
+@@ -6514,6 +6536,7 @@ static int process_backlog(struct napi_s
  
                local_irq_disable();
                rps_lock(sd);
@@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                if (skb_queue_empty(&sd->input_pkt_queue)) {
                        /*
                         * Inline a custom version of __napi_complete().
-@@ -6492,7 +6515,8 @@ static int process_backlog(struct napi_s
+@@ -6523,7 +6546,8 @@ static int process_backlog(struct napi_s
                         * We can use a plain write instead of clear_bit(),
                         * and we dont need an smp_mb() memory barrier.
                         */
@@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        again = false;
                } else {
                        skb_queue_splice_tail_init(&sd->input_pkt_queue,
-@@ -6909,6 +6933,57 @@ int dev_set_threaded(struct net_device *
+@@ -6940,6 +6964,57 @@ int dev_set_threaded(struct net_device *
  }
  EXPORT_SYMBOL(dev_set_threaded);
  
@@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
                    int (*poll)(struct napi_struct *, int), int weight)
  {
-@@ -11393,6 +11468,9 @@ static int dev_cpu_dead(unsigned int old
+@@ -11424,6 +11499,9 @@ static int dev_cpu_dead(unsigned int old
        raise_softirq_irqoff(NET_TX_SOFTIRQ);
        local_irq_enable();
  
@@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #ifdef CONFIG_RPS
        remsd = oldsd->rps_ipi_list;
        oldsd->rps_ipi_list = NULL;
-@@ -11732,6 +11810,7 @@ static int __init net_dev_init(void)
+@@ -11763,6 +11841,7 @@ static int __init net_dev_init(void)
                sd->cpu = i;
  #endif
  
@@ -214,7 +214,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #ifdef CONFIG_NET_FLOW_LIMIT
  static DEFINE_MUTEX(flow_limit_update_mutex);
  
-@@ -470,6 +488,15 @@ static struct ctl_table net_core_table[]
+@@ -473,6 +491,15 @@ static struct ctl_table net_core_table[]
                .proc_handler   = rps_sock_flow_sysctl
        },
  #endif
index 215f4a732f84009e9fe49abfef13e30456e9b65e..e71d9c4d9e45bfc5281605cba4b910cdee0b3daf 100644 (file)
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
  {
        u16 cmd;
-@@ -1285,3 +1300,4 @@ static void quirk_usb_early_handoff(stru
+@@ -1294,3 +1309,4 @@ static void quirk_usb_early_handoff(stru
  }
  DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
                        PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
-@@ -498,7 +498,14 @@ extern int usb_hcd_pci_probe(struct pci_
+@@ -499,7 +499,14 @@ extern int usb_hcd_pci_probe(struct pci_
  extern void usb_hcd_pci_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  
index 3a3be91709eb97a7d8147749432543106bffc857..fd7d2d531d7e2e7d71eda7302d4c806e5286ab08 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Robert Marko <robert.marko@sartura.hr>
 
 --- a/drivers/mmc/host/sdhci-msm.c
 +++ b/drivers/mmc/host/sdhci-msm.c
-@@ -2447,7 +2447,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat
+@@ -2496,7 +2496,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat
  
  static const struct sdhci_ops sdhci_msm_ops = {
        .reset = sdhci_msm_reset,
index b297600171a8c65576d09be35ee05eb0bf54495e..4290f8a3d536c413bd0d9b82e137e254c7382719 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/drivers/mmc/host/sdhci-msm.c
 +++ b/drivers/mmc/host/sdhci-msm.c
-@@ -1751,49 +1751,49 @@ static unsigned int sdhci_msm_get_min_cl
+@@ -1800,49 +1800,49 @@ static unsigned int sdhci_msm_get_min_cl
        return SDHCI_MSM_MIN_CLOCK;
  }
  
index ee207ad3df788347e0240773b03f8d8414913867..a8c2442e44486d9768cab13847ef591903b4e2cb 100644 (file)
@@ -4,7 +4,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support
 
 --- a/drivers/net/ppp/ppp_generic.c
 +++ b/drivers/net/ppp/ppp_generic.c
-@@ -2967,6 +2967,22 @@ char *ppp_dev_name(struct ppp_channel *c
+@@ -2977,6 +2977,22 @@ char *ppp_dev_name(struct ppp_channel *c
        return name;
  }
  
@@ -27,7 +27,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support
  
  /*
   * Disconnect a channel from the generic layer.
-@@ -3613,6 +3629,7 @@ EXPORT_SYMBOL(ppp_unregister_channel);
+@@ -3623,6 +3639,7 @@ EXPORT_SYMBOL(ppp_unregister_channel);
  EXPORT_SYMBOL(ppp_channel_index);
  EXPORT_SYMBOL(ppp_unit_number);
  EXPORT_SYMBOL(ppp_dev_name);
index 4f703dbc0050bc85d8a376056bcf1e20a2bc993c..1fea3720eb7ff33d5ccb03a92c9a0588afa0de32 100644 (file)
@@ -19,7 +19,7 @@
        },
        [PORT_NPCM] = {
                .name           = "Nuvoton 16550",
-@@ -2746,6 +2746,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2754,6 +2754,11 @@ serial8250_do_set_termios(struct uart_po
        unsigned long flags;
        unsigned int baud, quot, frac = 0;
  
index daf448ced61e267e18d8b923b81a4957ec7990ea..0dffcd66cf287a78593bb96857810d5a98f51441 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
  #include <linux/platform_data/x86/apple.h>
  #include <linux/pm_runtime.h>
  #include <linux/suspend.h>
-@@ -6015,3 +6016,34 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -6016,3 +6017,34 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa73f, dpc_log_size);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa76e, dpc_log_size);
  #endif
index d425a28067419e4d7af82514933a658b15968b71..0e960f8083327f32d1595f974dffce3d1c5cb36a 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/media/usb/uvc/uvc_driver.c
 +++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -3225,6 +3225,18 @@ static const struct usb_device_id uvc_id
+@@ -3220,6 +3220,18 @@ static const struct usb_device_id uvc_id
          .bInterfaceSubClass   = 1,
          .bInterfaceProtocol   = 0,
          .driver_info          = UVC_INFO_META(V4L2_META_FMT_D4XX) },
@@ -42,7 +42,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                        break;
                }
  
-@@ -272,6 +273,7 @@ int uvc_status_init(struct uvc_device *d
+@@ -273,6 +274,7 @@ int uvc_status_init(struct uvc_device *d
        }
  
        pipe = usb_rcvintpipe(dev->udev, ep->desc.bEndpointAddress);
@@ -234,7 +234,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  /* Format flags */
  #define UVC_FMT_FLAG_COMPRESSED               0x00000001
-@@ -701,6 +703,7 @@ struct uvc_device {
+@@ -706,6 +708,7 @@ struct uvc_device {
        u8 *status;
        struct input_dev *input;
        char input_phys[64];