kernel: bump 6.1 to 6.1.54
authorJohn Audia <therealgraysky@proton.me>
Tue, 19 Sep 2023 18:00:07 +0000 (14:00 -0400)
committerChristian Marangi <ansuelsmth@gmail.com>
Sat, 23 Sep 2023 11:10:28 +0000 (13:10 +0200)
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.54

Removed upstreamed:
generic/backport-6.1/020-v6.3-02-UPSTREAM-mm-multi-gen-LRU-rename-lrugen-lists-to-lru.patch[1]
ipq806x/patches-6.1/140-v6.5-hwspinlock-qcom-add-missing-regmap-config-for-SFPB-M.patch[2]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.54&id=a73d04c460521e45f257d28d73df096e41ece324
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.54&id=e93bc372dbc0bde133c854c03502a95617041972

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
64 files changed:
include/kernel-6.1
target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch
target/linux/bcm53xx/patches-6.1/905-BCM53573-minor-hacks.patch
target/linux/generic/backport-6.1/020-v6.3-01-UPSTREAM-mm-multi-gen-LRU-rename-lru_gen_struct-to-l.patch
target/linux/generic/backport-6.1/020-v6.3-02-UPSTREAM-mm-multi-gen-LRU-rename-lrugen-lists-to-lru.patch [deleted file]
target/linux/generic/backport-6.1/020-v6.3-03-UPSTREAM-mm-multi-gen-LRU-remove-eviction-fairness-s.patch
target/linux/generic/backport-6.1/020-v6.3-04-BACKPORT-mm-multi-gen-LRU-remove-aging-fairness-safe.patch
target/linux/generic/backport-6.1/020-v6.3-05-UPSTREAM-mm-multi-gen-LRU-shuffle-should_run_aging.patch
target/linux/generic/backport-6.1/020-v6.3-06-BACKPORT-mm-multi-gen-LRU-per-node-lru_gen_folio-lis.patch
target/linux/generic/backport-6.1/020-v6.3-07-BACKPORT-mm-multi-gen-LRU-clarify-scan_control-flags.patch
target/linux/generic/backport-6.1/020-v6.3-08-UPSTREAM-mm-multi-gen-LRU-simplify-arch_has_hw_pte_y.patch
target/linux/generic/backport-6.1/020-v6.3-09-UPSTREAM-mm-multi-gen-LRU-avoid-futile-retries.patch
target/linux/generic/backport-6.1/020-v6.3-12-UPSTREAM-mm-multi-gen-LRU-section-for-working-set-pr.patch
target/linux/generic/backport-6.1/020-v6.3-13-UPSTREAM-mm-multi-gen-LRU-section-for-rmap-PT-walk-f.patch
target/linux/generic/backport-6.1/020-v6.3-15-UPSTREAM-mm-multi-gen-LRU-section-for-memcg-LRU.patch
target/linux/generic/backport-6.1/020-v6.3-16-UPSTREAM-mm-multi-gen-LRU-improve-lru_gen_exit_memcg.patch
target/linux/generic/backport-6.1/020-v6.3-18-UPSTREAM-mm-multi-gen-LRU-simplify-lru_gen_look_arou.patch
target/linux/generic/backport-6.1/020-v6.4-19-mm-Multi-gen-LRU-remove-wait_event_killable.patch
target/linux/generic/backport-6.1/724-v6.2-net-ethernet-mtk_eth_soc-enable-flow-offloading-supp.patch
target/linux/generic/backport-6.1/729-07-v6.1-net-ethernet-mtk_eth_soc-remove-cpu_relax-in-mtk_pen.patch
target/linux/generic/backport-6.1/729-18-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_reset-util.patch
target/linux/generic/backport-6.1/729-19-v6.3-net-ethernet-mtk_eth_soc-introduce-mtk_hw_warm_reset.patch
target/linux/generic/backport-6.1/729-20-v6.3-net-ethernet-mtk_eth_soc-align-reset-procedure-to-ve.patch
target/linux/generic/backport-6.1/729-21-v6.3-net-ethernet-mtk_eth_soc-add-dma-checks-to-mtk_hw_re.patch
target/linux/generic/backport-6.1/729-22-v6.3-net-ethernet-mtk_wed-add-reset-reset_complete-callba.patch
target/linux/generic/backport-6.1/730-02-v6.3-net-ethernet-mtk_eth_soc-increase-tx-ring-side-for-Q.patch
target/linux/generic/backport-6.1/730-03-v6.3-net-ethernet-mtk_eth_soc-avoid-port_mg-assignment-on.patch
target/linux/generic/backport-6.1/730-04-v6.3-net-ethernet-mtk_eth_soc-implement-multi-queue-suppo.patch
target/linux/generic/backport-6.1/730-09-v6.3-net-ethernet-mtk_eth_soc-fix-VLAN-rx-hardware-accele.patch
target/linux/generic/backport-6.1/730-12-v6.3-net-ethernet-mtk_eth_soc-disable-hardware-DSA-untagg.patch
target/linux/generic/backport-6.1/730-13-v6.3-net-ethernet-mtk_eth_soc-enable-special-tag-when-any.patch
target/linux/generic/backport-6.1/733-v6.3-18-net-ethernet-mtk_eth_soc-add-support-for-MT7981.patch
target/linux/generic/backport-6.1/733-v6.3-20-net-ethernet-mtk_eth_soc-switch-to-external-PCS-driv.patch
target/linux/generic/backport-6.1/733-v6.4-23-net-ethernet-mtk_eth_soc-ppe-add-support-for-flow-ac.patch
target/linux/generic/backport-6.1/733-v6.4-25-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch
target/linux/generic/backport-6.1/750-v6.5-01-net-ethernet-mtk_ppe-add-MTK_FOE_ENTRY_V-1-2-_SIZE-m.patch
target/linux/generic/backport-6.1/750-v6.5-02-net-ethernet-mtk_eth_soc-remove-incorrect-PLL-config.patch
target/linux/generic/backport-6.1/750-v6.5-03-net-ethernet-mtk_eth_soc-remove-mac_pcs_get_state-an.patch
target/linux/generic/backport-6.1/750-v6.5-05-net-ethernet-mtk_eth_soc-add-version-in-mtk_soc_data.patch
target/linux/generic/backport-6.1/750-v6.5-07-net-ethernet-mtk_eth_soc-rely-on-MTK_MAX_DEVS-and-re.patch
target/linux/generic/backport-6.1/750-v6.5-08-net-ethernet-mtk_eth_soc-add-NETSYS_V3-version-suppo.patch
target/linux/generic/backport-6.1/750-v6.5-11-net-ethernet-mtk_eth_soc-add-basic-support-for-MT798.patch
target/linux/generic/backport-6.1/750-v6.5-13-net-ethernet-mtk_eth_soc-enable-nft-hw-flowtable_off.patch
target/linux/generic/backport-6.1/750-v6.5-14-net-ethernet-mtk_eth_soc-support-per-flow-accounting.patch
target/linux/generic/backport-6.1/750-v6.5-17-net-ethernet-mtk_eth_soc-add-reset-bits-for-MT7988.patch
target/linux/generic/backport-6.1/750-v6.5-18-net-ethernet-mtk_eth_soc-add-support-for-in-SoC-SRAM.patch
target/linux/generic/backport-6.1/750-v6.5-19-net-ethernet-mtk_eth_soc-support-36-bit-DMA-addressi.patch
target/linux/generic/hack-6.1/721-net-add-packet-mangeling.patch
target/linux/generic/hack-6.1/760-net-usb-r8152-add-LED-configuration-from-OF.patch
target/linux/generic/hack-6.1/901-debloat_sock_diag.patch
target/linux/generic/hack-6.1/902-debloat_proc.patch
target/linux/generic/pending-6.1/655-increase_skb_pad.patch
target/linux/generic/pending-6.1/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-6.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/pending-6.1/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
target/linux/generic/pending-6.1/732-03-net-ethernet-mtk_eth_soc-fix-remaining-throughput-re.patch
target/linux/generic/pending-6.1/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
target/linux/ipq40xx/patches-6.1/003-v6.6-net-phy-Introduce-PSGMII-PHY-interface-mode.patch
target/linux/ipq40xx/patches-6.1/701-net-dsa-add-out-of-band-tagging-protocol.patch
target/linux/ipq40xx/patches-6.1/705-ARM-dts-qcom-ipq4019-Add-description-for-the-IPQESS-.patch
target/linux/ipq40xx/patches-6.1/707-arm-dts-ipq4019-add-switch-node.patch
target/linux/ipq40xx/patches-6.1/710-arm-dts-ipq4019-QCA807x-properties.patch
target/linux/ipq806x/patches-6.1/140-v6.5-hwspinlock-qcom-add-missing-regmap-config-for-SFPB-M.patch [deleted file]
target/linux/sunxi/patches-6.1/410-sunxi-add-bananapi-p2-zero.patch

index 561612fd177aa0eabf02774cad32700cdd6c4c2a..c1ea2089ca2f30a75520c20709afeee767ee3105 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.1 = .53
-LINUX_KERNEL_HASH-6.1.53 = 5f57e0a04810d24f2b1a8fc95451241f80530e678717eda0f45104c6dc78ed7e
+LINUX_VERSION-6.1 = .54
+LINUX_KERNEL_HASH-6.1.54 = a3181e46d407cd6ab15f412402e8220684ff9659b0262b7a3de7384405ce4e27
index 1e67d03ce85f20ec65a1caea7b6dc40b47bfc0e0..943aa1a132f75b8dfe23e73e6d77fd4d4196f4e1 100644 (file)
@@ -654,7 +654,7 @@ SVN-Revision: 35130
                return false;
  
        return true;
-@@ -800,13 +804,13 @@ static inline void ipv6_addr_set_v4mappe
+@@ -805,13 +809,13 @@ static inline void ipv6_addr_set_v4mappe
   */
  static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
  {
@@ -670,7 +670,7 @@ SVN-Revision: 35130
                if (xb)
                        return i * 32 + 31 - __fls(ntohl(xb));
        }
-@@ -1000,17 +1004,18 @@ static inline u32 ip6_multipath_hash_fie
+@@ -1005,17 +1009,18 @@ static inline u32 ip6_multipath_hash_fie
  static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
                                __be32 flowlabel)
  {
index 721cc3c154893b7c3fa7a20e1dcc7d9e951305b9..0d4962462b4c3fa740288126d660f1791f36714c 100644 (file)
@@ -61,7 +61,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
  #include <linux/clockchips.h>
  #include <linux/clocksource.h>
  #include <linux/clocksource_ids.h>
-@@ -1021,6 +1022,16 @@ static void __init arch_timer_of_configu
+@@ -1028,6 +1029,16 @@ static void __init arch_timer_of_configu
        if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
                arch_timer_rate = rate;
  
index 9d21f8de22fd687d3ec4989c843d856e6b42ac49..fe32acc9851223e553576ecf6e284812df3625fa 100644 (file)
@@ -256,9 +256,9 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
 -      struct lru_gen_struct *lrugen = &lruvec->lrugen;
 +      struct lru_gen_folio *lrugen = &lruvec->lrugen;
  
+ restart:
        spin_lock_irq(&lruvec->lru_lock);
-@@ -4387,7 +4387,7 @@ static bool try_to_inc_max_seq(struct lr
+@@ -4389,7 +4389,7 @@ static bool try_to_inc_max_seq(struct lr
        bool success;
        struct lru_gen_mm_walk *walk;
        struct mm_struct *mm = NULL;
@@ -267,7 +267,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        VM_WARN_ON_ONCE(max_seq > READ_ONCE(lrugen->max_seq));
  
-@@ -4452,7 +4452,7 @@ static bool should_run_aging(struct lruv
+@@ -4454,7 +4454,7 @@ static bool should_run_aging(struct lruv
        unsigned long old = 0;
        unsigned long young = 0;
        unsigned long total = 0;
@@ -276,7 +276,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
  
        for (type = !can_swap; type < ANON_AND_FILE; type++) {
-@@ -4737,7 +4737,7 @@ static bool sort_folio(struct lruvec *lr
+@@ -4740,7 +4740,7 @@ static bool sort_folio(struct lruvec *lr
        int delta = folio_nr_pages(folio);
        int refs = folio_lru_refs(folio);
        int tier = lru_tier_from_refs(refs);
@@ -285,7 +285,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        VM_WARN_ON_ONCE_FOLIO(gen >= MAX_NR_GENS, folio);
  
-@@ -4837,7 +4837,7 @@ static int scan_folios(struct lruvec *lr
+@@ -4848,7 +4848,7 @@ static int scan_folios(struct lruvec *lr
        int scanned = 0;
        int isolated = 0;
        int remaining = MAX_LRU_BATCH;
@@ -294,7 +294,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
  
        VM_WARN_ON_ONCE(!list_empty(list));
-@@ -5237,7 +5237,7 @@ done:
+@@ -5249,7 +5249,7 @@ done:
  
  static bool __maybe_unused state_is_valid(struct lruvec *lruvec)
  {
@@ -303,7 +303,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        if (lrugen->enabled) {
                enum lru_list lru;
-@@ -5519,7 +5519,7 @@ static void lru_gen_seq_show_full(struct
+@@ -5531,7 +5531,7 @@ static void lru_gen_seq_show_full(struct
        int i;
        int type, tier;
        int hist = lru_hist_from_seq(seq);
@@ -312,7 +312,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        for (tier = 0; tier < MAX_NR_TIERS; tier++) {
                seq_printf(m, "            %10d", tier);
-@@ -5569,7 +5569,7 @@ static int lru_gen_seq_show(struct seq_f
+@@ -5581,7 +5581,7 @@ static int lru_gen_seq_show(struct seq_f
        unsigned long seq;
        bool full = !debugfs_real_fops(m->file)->write;
        struct lruvec *lruvec = v;
@@ -321,7 +321,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        int nid = lruvec_pgdat(lruvec)->node_id;
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
        DEFINE_MAX_SEQ(lruvec);
-@@ -5823,7 +5823,7 @@ void lru_gen_init_lruvec(struct lruvec *
+@@ -5835,7 +5835,7 @@ void lru_gen_init_lruvec(struct lruvec *
  {
        int i;
        int gen, type, zone;
diff --git a/target/linux/generic/backport-6.1/020-v6.3-02-UPSTREAM-mm-multi-gen-LRU-rename-lrugen-lists-to-lru.patch b/target/linux/generic/backport-6.1/020-v6.3-02-UPSTREAM-mm-multi-gen-LRU-rename-lrugen-lists-to-lru.patch
deleted file mode 100644 (file)
index 97ea33c..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-From 656287d55d9cfc72a4bcd4d9bd098570f12ce409 Mon Sep 17 00:00:00 2001
-From: Yu Zhao <yuzhao@google.com>
-Date: Wed, 21 Dec 2022 21:19:00 -0700
-Subject: [PATCH 02/19] UPSTREAM: mm: multi-gen LRU: rename lrugen->lists[] to
- lrugen->folios[]
-
-lru_gen_folio will be chained into per-node lists by the coming
-lrugen->list.
-
-Link: https://lkml.kernel.org/r/20221222041905.2431096-3-yuzhao@google.com
-Signed-off-by: Yu Zhao <yuzhao@google.com>
-Cc: Johannes Weiner <hannes@cmpxchg.org>
-Cc: Jonathan Corbet <corbet@lwn.net>
-Cc: Michael Larabel <Michael@MichaelLarabel.com>
-Cc: Michal Hocko <mhocko@kernel.org>
-Cc: Mike Rapoport <rppt@kernel.org>
-Cc: Roman Gushchin <roman.gushchin@linux.dev>
-Cc: Suren Baghdasaryan <surenb@google.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Bug: 274865848
-(cherry picked from commit 6df1b2212950aae2b2188c6645ea18e2a9e3fdd5)
-Change-Id: I09f53e0fb2cd6b8b3adbb8a80b15dc5efbeae857
-Signed-off-by: T.J. Mercier <tjmercier@google.com>
----
- Documentation/mm/multigen_lru.rst |  8 ++++----
- include/linux/mm_inline.h         |  4 ++--
- include/linux/mmzone.h            |  8 ++++----
- mm/vmscan.c                       | 20 ++++++++++----------
- 4 files changed, 20 insertions(+), 20 deletions(-)
-
---- a/Documentation/mm/multigen_lru.rst
-+++ b/Documentation/mm/multigen_lru.rst
-@@ -89,15 +89,15 @@ variables are monotonically increasing.
- Generation numbers are truncated into ``order_base_2(MAX_NR_GENS+1)``
- bits in order to fit into the gen counter in ``folio->flags``. Each
--truncated generation number is an index to ``lrugen->lists[]``. The
-+truncated generation number is an index to ``lrugen->folios[]``. The
- sliding window technique is used to track at least ``MIN_NR_GENS`` and
- at most ``MAX_NR_GENS`` generations. The gen counter stores a value
- within ``[1, MAX_NR_GENS]`` while a page is on one of
--``lrugen->lists[]``; otherwise it stores zero.
-+``lrugen->folios[]``; otherwise it stores zero.
- Each generation is divided into multiple tiers. A page accessed ``N``
- times through file descriptors is in tier ``order_base_2(N)``. Unlike
--generations, tiers do not have dedicated ``lrugen->lists[]``. In
-+generations, tiers do not have dedicated ``lrugen->folios[]``. In
- contrast to moving across generations, which requires the LRU lock,
- moving across tiers only involves atomic operations on
- ``folio->flags`` and therefore has a negligible cost. A feedback loop
-@@ -127,7 +127,7 @@ page mapped by this PTE to ``(max_seq%MA
- Eviction
- --------
- The eviction consumes old generations. Given an ``lruvec``, it
--increments ``min_seq`` when ``lrugen->lists[]`` indexed by
-+increments ``min_seq`` when ``lrugen->folios[]`` indexed by
- ``min_seq%MAX_NR_GENS`` becomes empty. To select a type and a tier to
- evict from, it first compares ``min_seq[]`` to select the older type.
- If both types are equally old, it selects the one whose first tier has
---- a/include/linux/mm_inline.h
-+++ b/include/linux/mm_inline.h
-@@ -256,9 +256,9 @@ static inline bool lru_gen_add_folio(str
-       lru_gen_update_size(lruvec, folio, -1, gen);
-       /* for folio_rotate_reclaimable() */
-       if (reclaiming)
--              list_add_tail(&folio->lru, &lrugen->lists[gen][type][zone]);
-+              list_add_tail(&folio->lru, &lrugen->folios[gen][type][zone]);
-       else
--              list_add(&folio->lru, &lrugen->lists[gen][type][zone]);
-+              list_add(&folio->lru, &lrugen->folios[gen][type][zone]);
-       return true;
- }
---- a/include/linux/mmzone.h
-+++ b/include/linux/mmzone.h
-@@ -312,7 +312,7 @@ enum lruvec_flags {
-  * They form a sliding window of a variable size [MIN_NR_GENS, MAX_NR_GENS]. An
-  * offset within MAX_NR_GENS, i.e., gen, indexes the LRU list of the
-  * corresponding generation. The gen counter in folio->flags stores gen+1 while
-- * a page is on one of lrugen->lists[]. Otherwise it stores 0.
-+ * a page is on one of lrugen->folios[]. Otherwise it stores 0.
-  *
-  * A page is added to the youngest generation on faulting. The aging needs to
-  * check the accessed bit at least twice before handing this page over to the
-@@ -324,8 +324,8 @@ enum lruvec_flags {
-  * rest of generations, if they exist, are considered inactive. See
-  * lru_gen_is_active().
-  *
-- * PG_active is always cleared while a page is on one of lrugen->lists[] so that
-- * the aging needs not to worry about it. And it's set again when a page
-+ * PG_active is always cleared while a page is on one of lrugen->folios[] so
-+ * that the aging needs not to worry about it. And it's set again when a page
-  * considered active is isolated for non-reclaiming purposes, e.g., migration.
-  * See lru_gen_add_folio() and lru_gen_del_folio().
-  *
-@@ -412,7 +412,7 @@ struct lru_gen_folio {
-       /* the birth time of each generation in jiffies */
-       unsigned long timestamps[MAX_NR_GENS];
-       /* the multi-gen LRU lists, lazily sorted on eviction */
--      struct list_head lists[MAX_NR_GENS][ANON_AND_FILE][MAX_NR_ZONES];
-+      struct list_head folios[MAX_NR_GENS][ANON_AND_FILE][MAX_NR_ZONES];
-       /* the multi-gen LRU sizes, eventually consistent */
-       long nr_pages[MAX_NR_GENS][ANON_AND_FILE][MAX_NR_ZONES];
-       /* the exponential moving average of refaulted */
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -4258,7 +4258,7 @@ static bool inc_min_seq(struct lruvec *l
-       /* prevent cold/hot inversion if force_scan is true */
-       for (zone = 0; zone < MAX_NR_ZONES; zone++) {
--              struct list_head *head = &lrugen->lists[old_gen][type][zone];
-+              struct list_head *head = &lrugen->folios[old_gen][type][zone];
-               while (!list_empty(head)) {
-                       struct folio *folio = lru_to_folio(head);
-@@ -4269,7 +4269,7 @@ static bool inc_min_seq(struct lruvec *l
-                       VM_WARN_ON_ONCE_FOLIO(folio_zonenum(folio) != zone, folio);
-                       new_gen = folio_inc_gen(lruvec, folio, false);
--                      list_move_tail(&folio->lru, &lrugen->lists[new_gen][type][zone]);
-+                      list_move_tail(&folio->lru, &lrugen->folios[new_gen][type][zone]);
-                       if (!--remaining)
-                               return false;
-@@ -4297,7 +4297,7 @@ static bool try_to_inc_min_seq(struct lr
-                       gen = lru_gen_from_seq(min_seq[type]);
-                       for (zone = 0; zone < MAX_NR_ZONES; zone++) {
--                              if (!list_empty(&lrugen->lists[gen][type][zone]))
-+                              if (!list_empty(&lrugen->folios[gen][type][zone]))
-                                       goto next;
-                       }
-@@ -4762,7 +4762,7 @@ static bool sort_folio(struct lruvec *lr
-       /* promoted */
-       if (gen != lru_gen_from_seq(lrugen->min_seq[type])) {
--              list_move(&folio->lru, &lrugen->lists[gen][type][zone]);
-+              list_move(&folio->lru, &lrugen->folios[gen][type][zone]);
-               return true;
-       }
-@@ -4771,7 +4771,7 @@ static bool sort_folio(struct lruvec *lr
-               int hist = lru_hist_from_seq(lrugen->min_seq[type]);
-               gen = folio_inc_gen(lruvec, folio, false);
--              list_move_tail(&folio->lru, &lrugen->lists[gen][type][zone]);
-+              list_move_tail(&folio->lru, &lrugen->folios[gen][type][zone]);
-               WRITE_ONCE(lrugen->protected[hist][type][tier - 1],
-                          lrugen->protected[hist][type][tier - 1] + delta);
-@@ -4783,7 +4783,7 @@ static bool sort_folio(struct lruvec *lr
-       if (folio_test_locked(folio) || folio_test_writeback(folio) ||
-           (type == LRU_GEN_FILE && folio_test_dirty(folio))) {
-               gen = folio_inc_gen(lruvec, folio, true);
--              list_move(&folio->lru, &lrugen->lists[gen][type][zone]);
-+              list_move(&folio->lru, &lrugen->folios[gen][type][zone]);
-               return true;
-       }
-@@ -4850,7 +4850,7 @@ static int scan_folios(struct lruvec *lr
-       for (zone = sc->reclaim_idx; zone >= 0; zone--) {
-               LIST_HEAD(moved);
-               int skipped = 0;
--              struct list_head *head = &lrugen->lists[gen][type][zone];
-+              struct list_head *head = &lrugen->folios[gen][type][zone];
-               while (!list_empty(head)) {
-                       struct folio *folio = lru_to_folio(head);
-@@ -5250,7 +5250,7 @@ static bool __maybe_unused state_is_vali
-               int gen, type, zone;
-               for_each_gen_type_zone(gen, type, zone) {
--                      if (!list_empty(&lrugen->lists[gen][type][zone]))
-+                      if (!list_empty(&lrugen->folios[gen][type][zone]))
-                               return false;
-               }
-       }
-@@ -5295,7 +5295,7 @@ static bool drain_evictable(struct lruve
-       int remaining = MAX_LRU_BATCH;
-       for_each_gen_type_zone(gen, type, zone) {
--              struct list_head *head = &lruvec->lrugen.lists[gen][type][zone];
-+              struct list_head *head = &lruvec->lrugen.folios[gen][type][zone];
-               while (!list_empty(head)) {
-                       bool success;
-@@ -5832,7 +5832,7 @@ void lru_gen_init_lruvec(struct lruvec *
-               lrugen->timestamps[i] = jiffies;
-       for_each_gen_type_zone(gen, type, zone)
--              INIT_LIST_HEAD(&lrugen->lists[gen][type][zone]);
-+              INIT_LIST_HEAD(&lrugen->folios[gen][type][zone]);
-       lruvec->mm_state.seq = MIN_NR_GENS;
-       init_waitqueue_head(&lruvec->mm_state.wait);
index a5e4ad557f862c084c81e6a58dfcb368a8ab63da..e5ad78b61d356393fb4168656735187f71adafd8 100644 (file)
@@ -66,7 +66,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  static bool writeback_throttling_sane(struct scan_control *sc)
  {
        return true;
-@@ -4993,8 +5003,7 @@ static int isolate_folios(struct lruvec
+@@ -5005,8 +5015,7 @@ static int isolate_folios(struct lruvec
        return scanned;
  }
  
@@ -76,7 +76,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  {
        int type;
        int scanned;
-@@ -5083,9 +5092,6 @@ retry:
+@@ -5095,9 +5104,6 @@ retry:
                goto retry;
        }
  
@@ -86,7 +86,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        return scanned;
  }
  
-@@ -5124,67 +5130,26 @@ done:
+@@ -5136,67 +5142,26 @@ done:
        return min_seq[!can_swap] + MIN_NR_GENS <= max_seq ? nr_to_scan : 0;
  }
  
@@ -163,7 +163,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        lru_add_drain();
  
-@@ -5208,7 +5173,7 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5220,7 +5185,7 @@ static void lru_gen_shrink_lruvec(struct
                if (!nr_to_scan)
                        goto done;
  
@@ -172,7 +172,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                if (!delta)
                        goto done;
  
-@@ -5216,7 +5181,7 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5228,7 +5193,7 @@ static void lru_gen_shrink_lruvec(struct
                if (scanned >= nr_to_scan)
                        break;
  
@@ -181,7 +181,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                        break;
  
                cond_resched();
-@@ -5666,7 +5631,7 @@ static int run_eviction(struct lruvec *l
+@@ -5678,7 +5643,7 @@ static int run_eviction(struct lruvec *l
                if (sc->nr_reclaimed >= nr_to_reclaim)
                        return 0;
  
index 87ed87a52d08bed9c80e8defb4e9ae41df2a803e..cb349abcdb6c6cbf7085c8d7477f4fbf2d8b46b2 100644 (file)
@@ -52,7 +52,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        unsigned long last_reclaimed;
  #endif
  
-@@ -4455,7 +4454,7 @@ done:
+@@ -4457,7 +4456,7 @@ done:
        return true;
  }
  
@@ -61,7 +61,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                             struct scan_control *sc, bool can_swap, unsigned long *nr_to_scan)
  {
        int gen, type, zone;
-@@ -4464,6 +4463,13 @@ static bool should_run_aging(struct lruv
+@@ -4466,6 +4465,13 @@ static bool should_run_aging(struct lruv
        unsigned long total = 0;
        struct lru_gen_folio *lrugen = &lruvec->lrugen;
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
@@ -75,7 +75,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        for (type = !can_swap; type < ANON_AND_FILE; type++) {
                unsigned long seq;
-@@ -4492,8 +4498,6 @@ static bool should_run_aging(struct lruv
+@@ -4494,8 +4500,6 @@ static bool should_run_aging(struct lruv
         * stalls when the number of generations reaches MIN_NR_GENS. Hence, the
         * ideal number of generations is MIN_NR_GENS+1.
         */
@@ -84,7 +84,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        if (min_seq[!can_swap] + MIN_NR_GENS < max_seq)
                return false;
  
-@@ -4512,40 +4516,54 @@ static bool should_run_aging(struct lruv
+@@ -4514,40 +4518,54 @@ static bool should_run_aging(struct lruv
        return false;
  }
  
@@ -160,7 +160,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  }
  
  /* to protect the working set of the last N jiffies */
-@@ -4554,46 +4572,32 @@ static unsigned long lru_gen_min_ttl __r
+@@ -4556,46 +4574,32 @@ static unsigned long lru_gen_min_ttl __r
  static void lru_gen_age_node(struct pglist_data *pgdat, struct scan_control *sc)
  {
        struct mem_cgroup *memcg;
@@ -214,7 +214,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
         */
        if (mutex_trylock(&oom_lock)) {
                struct oom_control oc = {
-@@ -5101,33 +5105,27 @@ retry:
+@@ -5113,33 +5117,27 @@ retry:
   *    reclaim.
   */
  static unsigned long get_nr_to_scan(struct lruvec *lruvec, struct scan_control *sc,
@@ -254,7 +254,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  }
  
  static unsigned long get_nr_to_reclaim(struct scan_control *sc)
-@@ -5146,9 +5144,7 @@ static unsigned long get_nr_to_reclaim(s
+@@ -5158,9 +5156,7 @@ static unsigned long get_nr_to_reclaim(s
  static void lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
  {
        struct blk_plug plug;
@@ -264,7 +264,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        unsigned long nr_to_reclaim = get_nr_to_reclaim(sc);
  
        lru_add_drain();
-@@ -5169,13 +5165,13 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5181,13 +5177,13 @@ static void lru_gen_shrink_lruvec(struct
                else
                        swappiness = 0;
  
@@ -281,7 +281,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
                scanned += delta;
                if (scanned >= nr_to_scan)
-@@ -5187,10 +5183,6 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5199,10 +5195,6 @@ static void lru_gen_shrink_lruvec(struct
                cond_resched();
        }
  
index 857072296bfb836929cf72e039cba54e57350408..42caab7c3785e21a20786620a146098db2cbf89a 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
 
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -4454,68 +4454,6 @@ done:
+@@ -4456,68 +4456,6 @@ done:
        return true;
  }
  
@@ -95,7 +95,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  static bool lruvec_is_sizable(struct lruvec *lruvec, struct scan_control *sc)
  {
        int gen, type, zone;
-@@ -5099,6 +5037,68 @@ retry:
+@@ -5111,6 +5049,68 @@ retry:
        return scanned;
  }
  
index bfba00ac023d510bd6581b8a4c8f1fc7fc38a2a5..0fd3699b61287e13bb44a885994df12b74f9b786 100644 (file)
@@ -335,7 +335,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        if (order > 0)
                return 0;
  
-@@ -5383,6 +5396,7 @@ static int mem_cgroup_css_online(struct
+@@ -5373,6 +5386,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);
@@ -343,7 +343,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        return 0;
  offline_kmem:
        memcg_offline_kmem(memcg);
-@@ -5414,6 +5428,7 @@ static void mem_cgroup_css_offline(struc
+@@ -5404,6 +5418,7 @@ static void mem_cgroup_css_offline(struc
        memcg_offline_kmem(memcg);
        reparent_shrinker_deferred(memcg);
        wb_memcg_offline(memcg);
@@ -351,7 +351,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        drain_all_stock(memcg);
  
-@@ -5425,6 +5440,7 @@ static void mem_cgroup_css_released(stru
+@@ -5415,6 +5430,7 @@ static void mem_cgroup_css_released(stru
        struct mem_cgroup *memcg = mem_cgroup_from_css(css);
  
        invalidate_reclaim_iterators(memcg);
@@ -402,7 +402,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  static struct lruvec *get_lruvec(struct mem_cgroup *memcg, int nid)
  {
        struct pglist_data *pgdat = NODE_DATA(nid);
-@@ -4440,8 +4440,7 @@ done:
+@@ -4442,8 +4442,7 @@ done:
                if (sc->priority <= DEF_PRIORITY - 2)
                        wait_event_killable(lruvec->mm_state.wait,
                                            max_seq < READ_ONCE(lrugen->max_seq));
@@ -412,7 +412,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        }
  
        VM_WARN_ON_ONCE(max_seq != READ_ONCE(lrugen->max_seq));
-@@ -4514,8 +4513,6 @@ static void lru_gen_age_node(struct pgli
+@@ -4516,8 +4515,6 @@ static void lru_gen_age_node(struct pgli
  
        VM_WARN_ON_ONCE(!current_is_kswapd());
  
@@ -421,7 +421,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        /* check the order to exclude compaction-induced reclaim */
        if (!min_ttl || sc->order || sc->priority == DEF_PRIORITY)
                return;
-@@ -5104,8 +5101,7 @@ static bool should_run_aging(struct lruv
+@@ -5116,8 +5113,7 @@ static bool should_run_aging(struct lruv
   * 1. Defer try_to_inc_max_seq() to workqueues to reduce latency for memcg
   *    reclaim.
   */
@@ -431,7 +431,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  {
        unsigned long nr_to_scan;
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
-@@ -5122,10 +5118,8 @@ static unsigned long get_nr_to_scan(stru
+@@ -5134,10 +5130,8 @@ static unsigned long get_nr_to_scan(stru
        if (sc->priority == DEF_PRIORITY)
                return nr_to_scan;
  
@@ -443,7 +443,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  }
  
  static unsigned long get_nr_to_reclaim(struct scan_control *sc)
-@@ -5134,29 +5128,18 @@ static unsigned long get_nr_to_reclaim(s
+@@ -5146,29 +5140,18 @@ static unsigned long get_nr_to_reclaim(s
        if (!global_reclaim(sc))
                return -1;
  
@@ -475,7 +475,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
                if (sc->may_swap)
                        swappiness = get_swappiness(lruvec, sc);
-@@ -5166,7 +5149,7 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5178,7 +5161,7 @@ static void lru_gen_shrink_lruvec(struct
                        swappiness = 0;
  
                nr_to_scan = get_nr_to_scan(lruvec, sc, swappiness);
@@ -484,7 +484,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                        break;
  
                delta = evict_folios(lruvec, sc, swappiness);
-@@ -5183,10 +5166,251 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5195,10 +5178,251 @@ static void lru_gen_shrink_lruvec(struct
                cond_resched();
        }
  
@@ -736,7 +736,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
  /******************************************************************************
   *                          state change
-@@ -5644,11 +5868,11 @@ static int run_cmd(char cmd, int memcg_i
+@@ -5656,11 +5880,11 @@ static int run_cmd(char cmd, int memcg_i
  
        if (!mem_cgroup_disabled()) {
                rcu_read_lock();
@@ -751,7 +751,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                rcu_read_unlock();
  
                if (!memcg)
-@@ -5796,6 +6020,19 @@ void lru_gen_init_lruvec(struct lruvec *
+@@ -5808,6 +6032,19 @@ void lru_gen_init_lruvec(struct lruvec *
  }
  
  #ifdef CONFIG_MEMCG
@@ -771,7 +771,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  void lru_gen_init_memcg(struct mem_cgroup *memcg)
  {
        INIT_LIST_HEAD(&memcg->mm_list.fifo);
-@@ -5819,7 +6056,69 @@ void lru_gen_exit_memcg(struct mem_cgrou
+@@ -5831,7 +6068,69 @@ void lru_gen_exit_memcg(struct mem_cgrou
                }
        }
  }
@@ -842,7 +842,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
  static int __init init_lru_gen(void)
  {
-@@ -5846,6 +6145,10 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5858,6 +6157,10 @@ static void lru_gen_shrink_lruvec(struct
  {
  }
  
@@ -853,7 +853,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  #endif /* CONFIG_LRU_GEN */
  
  static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
-@@ -5859,7 +6162,7 @@ static void shrink_lruvec(struct lruvec
+@@ -5871,7 +6174,7 @@ static void shrink_lruvec(struct lruvec
        bool proportional_reclaim;
        struct blk_plug plug;
  
@@ -862,7 +862,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                lru_gen_shrink_lruvec(lruvec, sc);
                return;
        }
-@@ -6102,6 +6405,11 @@ static void shrink_node(pg_data_t *pgdat
+@@ -6114,6 +6417,11 @@ static void shrink_node(pg_data_t *pgdat
        struct lruvec *target_lruvec;
        bool reclaimable = false;
  
index 29430636ff41f4398289b00fb609a7f720932bb7..d60ddb9dccafed5e31d564f7963d2b2613d4c883 100644 (file)
@@ -69,7 +69,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                VM_WARN_ON_ONCE(current_is_kswapd());
  
                walk = kzalloc(sizeof(*walk), __GFP_HIGH | __GFP_NOMEMALLOC | __GFP_NOWARN);
-@@ -4417,7 +4420,7 @@ static bool try_to_inc_max_seq(struct lr
+@@ -4419,7 +4422,7 @@ static bool try_to_inc_max_seq(struct lr
                goto done;
        }
  
@@ -78,7 +78,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        if (!walk) {
                success = iterate_mm_list_nowalk(lruvec, max_seq);
                goto done;
-@@ -4486,8 +4489,6 @@ static bool lruvec_is_reclaimable(struct
+@@ -4488,8 +4491,6 @@ static bool lruvec_is_reclaimable(struct
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
        DEFINE_MIN_SEQ(lruvec);
  
@@ -87,7 +87,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        /* see the comment on lru_gen_folio */
        gen = lru_gen_from_seq(min_seq[LRU_GEN_FILE]);
        birth = READ_ONCE(lruvec->lrugen.timestamps[gen]);
-@@ -4743,12 +4744,8 @@ static bool isolate_folio(struct lruvec
+@@ -4753,12 +4754,8 @@ static bool isolate_folio(struct lruvec
  {
        bool success;
  
@@ -101,7 +101,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
            (folio_test_dirty(folio) ||
             (folio_test_anon(folio) && !folio_test_swapcache(folio))))
                return false;
-@@ -4845,9 +4842,8 @@ static int scan_folios(struct lruvec *lr
+@@ -4857,9 +4854,8 @@ static int scan_folios(struct lruvec *lr
        __count_vm_events(PGSCAN_ANON + type, isolated);
  
        /*
@@ -113,7 +113,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
         */
        return isolated || !remaining ? scanned : 0;
  }
-@@ -5107,8 +5103,7 @@ static long get_nr_to_scan(struct lruvec
+@@ -5119,8 +5115,7 @@ static long get_nr_to_scan(struct lruvec
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
        DEFINE_MAX_SEQ(lruvec);
  
@@ -123,7 +123,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                return 0;
  
        if (!should_run_aging(lruvec, max_seq, sc, can_swap, &nr_to_scan))
-@@ -5136,17 +5131,14 @@ static bool try_to_shrink_lruvec(struct
+@@ -5148,17 +5143,14 @@ static bool try_to_shrink_lruvec(struct
        long nr_to_scan;
        unsigned long scanned = 0;
        unsigned long nr_to_reclaim = get_nr_to_reclaim(sc);
@@ -146,7 +146,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
                nr_to_scan = get_nr_to_scan(lruvec, sc, swappiness);
                if (nr_to_scan <= 0)
-@@ -5277,12 +5269,13 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5289,12 +5281,13 @@ static void lru_gen_shrink_lruvec(struct
        struct blk_plug plug;
  
        VM_WARN_ON_ONCE(global_reclaim(sc));
@@ -161,7 +161,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        if (try_to_shrink_lruvec(lruvec, sc))
                lru_gen_rotate_memcg(lruvec, MEMCG_LRU_YOUNG);
-@@ -5338,11 +5331,19 @@ static void lru_gen_shrink_node(struct p
+@@ -5350,11 +5343,19 @@ static void lru_gen_shrink_node(struct p
  
        VM_WARN_ON_ONCE(!global_reclaim(sc));
  
@@ -182,7 +182,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        set_initial_priority(pgdat, sc);
  
-@@ -5360,7 +5361,7 @@ static void lru_gen_shrink_node(struct p
+@@ -5372,7 +5373,7 @@ static void lru_gen_shrink_node(struct p
        clear_mm_walk();
  
        blk_finish_plug(&plug);
@@ -191,7 +191,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        /* kswapd should never fail */
        pgdat->kswapd_failures = 0;
  }
-@@ -5932,7 +5933,7 @@ static ssize_t lru_gen_seq_write(struct
+@@ -5944,7 +5945,7 @@ static ssize_t lru_gen_seq_write(struct
        set_task_reclaim_state(current, &sc.reclaim_state);
        flags = memalloc_noreclaim_save();
        blk_start_plug(&plug);
index d7d98ca6c592916079d7bb2d9eeaa954d33b9166..3cbc84f8b8e5c8bbfcf2a0fd5be0fae871eb3a4d 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
 
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -4415,7 +4415,7 @@ static bool try_to_inc_max_seq(struct lr
+@@ -4417,7 +4417,7 @@ static bool try_to_inc_max_seq(struct lr
         * handful of PTEs. Spreading the work out over a period of time usually
         * is less efficient, but it avoids bursty page faults.
         */
index 1f91cb9f54f6abadcb5b18fd82a8dd4ec7467882..c1ad1c538eabcca644b52b47f3b26d25e055ab09 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
 
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -5206,18 +5206,20 @@ static int shrink_one(struct lruvec *lru
+@@ -5218,18 +5218,20 @@ static int shrink_one(struct lruvec *lru
  
  static void shrink_many(struct pglist_data *pgdat, struct scan_control *sc)
  {
@@ -52,7 +52,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        gen = get_memcg_gen(READ_ONCE(pgdat->memcg_lru.seq));
  
        rcu_read_lock();
-@@ -5241,14 +5243,22 @@ restart:
+@@ -5253,14 +5255,22 @@ restart:
  
                op = shrink_one(lruvec, sc);
  
@@ -78,7 +78,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        /* restart if raced with lru_gen_rotate_memcg() */
        if (gen != get_nulls_value(pos))
                goto restart;
-@@ -5257,11 +5267,6 @@ restart:
+@@ -5269,11 +5279,6 @@ restart:
        bin = get_memcg_bin(bin + 1);
        if (bin != first_bin)
                goto restart;
index ca68b3a86aa8be972e40ffece8f65a08e0ecb99e..bac2e3e34409b046db00474ece97d287a2984068 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  The multi-gen LRU can be disassembled into the following parts:
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -4459,6 +4459,10 @@ done:
+@@ -4461,6 +4461,10 @@ done:
        return true;
  }
  
index ca28cee2cb35fd5c6395e7dc98d603b5061c5672..c28a1c5d5b9b4b8415318b4877eae8ed8497f697 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  The multi-gen LRU can be disassembled into the following parts:
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -4553,6 +4553,10 @@ static void lru_gen_age_node(struct pgli
+@@ -4555,6 +4555,10 @@ static void lru_gen_age_node(struct pgli
        }
  }
  
index 735c91f79983be4883252a62458d0367352bad82..39552b07c0e8f3b63343fc7d674b235e9f3754c8 100644 (file)
@@ -154,7 +154,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -4690,6 +4690,148 @@ void lru_gen_look_around(struct page_vma
+@@ -4692,6 +4692,148 @@ void lru_gen_look_around(struct page_vma
  }
  
  /******************************************************************************
@@ -303,7 +303,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
   *                          the eviction
   ******************************************************************************/
  
-@@ -5386,53 +5528,6 @@ done:
+@@ -5398,53 +5540,6 @@ done:
        pgdat->kswapd_failures = 0;
  }
  
@@ -357,7 +357,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  /******************************************************************************
   *                          state change
   ******************************************************************************/
-@@ -6078,67 +6173,6 @@ void lru_gen_exit_memcg(struct mem_cgrou
+@@ -6090,67 +6185,6 @@ void lru_gen_exit_memcg(struct mem_cgrou
        }
  }
  
index 94473755058d24635d0fdbd2fe7ea840a90d3238..1ee766f8613faf3b991738ba8cc3e97d51d2271e 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
 
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -6160,12 +6160,17 @@ void lru_gen_exit_memcg(struct mem_cgrou
+@@ -6172,12 +6172,17 @@ void lru_gen_exit_memcg(struct mem_cgrou
        int i;
        int nid;
  
index 1f071f0839c5f26ac4af716477f311e37c407610..856199574a1c43070319b8b989dbf4970c864fce 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
 
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -4571,13 +4571,12 @@ static void lru_gen_age_node(struct pgli
+@@ -4573,13 +4573,12 @@ static void lru_gen_age_node(struct pgli
  void lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
  {
        int i;
@@ -42,7 +42,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        struct folio *folio = pfn_folio(pvmw->pfn);
        struct mem_cgroup *memcg = folio_memcg(folio);
        struct pglist_data *pgdat = folio_pgdat(folio);
-@@ -4594,25 +4593,28 @@ void lru_gen_look_around(struct page_vma
+@@ -4596,25 +4595,28 @@ void lru_gen_look_around(struct page_vma
        /* avoid taking the LRU lock under the PTL when possible */
        walk = current->reclaim_state ? current->reclaim_state->mm_walk : NULL;
  
@@ -79,7 +79,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        for (i = 0, addr = start; addr != end; i++, addr += PAGE_SIZE) {
                unsigned long pfn;
  
-@@ -4637,56 +4639,27 @@ void lru_gen_look_around(struct page_vma
+@@ -4639,56 +4641,27 @@ void lru_gen_look_around(struct page_vma
                      !folio_test_swapcache(folio)))
                        folio_mark_dirty(folio);
  
index fc42a245f39fcba1ac9f88c5b3ce0e78ce2b99e7..1b0459cdb9cc97979565ba2096acb9f7db609279 100644 (file)
@@ -226,7 +226,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
                /* folio_update_gen() requires stable folio_memcg() */
                if (!mem_cgroup_trylock_pages(memcg))
                        break;
-@@ -4442,25 +4425,12 @@ static bool try_to_inc_max_seq(struct lr
+@@ -4444,25 +4427,12 @@ static bool try_to_inc_max_seq(struct lr
                success = iterate_mm_list(lruvec, walk, &mm);
                if (mm)
                        walk_mm(lruvec, mm, walk);
@@ -255,7 +255,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  }
  
  /******************************************************************************
-@@ -6105,7 +6075,6 @@ void lru_gen_init_lruvec(struct lruvec *
+@@ -6117,7 +6087,6 @@ void lru_gen_init_lruvec(struct lruvec *
                INIT_LIST_HEAD(&lrugen->folios[gen][type][zone]);
  
        lruvec->mm_state.seq = MIN_NR_GENS;
@@ -263,7 +263,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  }
  
  #ifdef CONFIG_MEMCG
-@@ -6138,7 +6107,6 @@ void lru_gen_exit_memcg(struct mem_cgrou
+@@ -6150,7 +6119,6 @@ void lru_gen_exit_memcg(struct mem_cgrou
        for_each_node(nid) {
                struct lruvec *lruvec = get_lruvec(memcg, nid);
  
index dcef5ff2893408ab170ad4d43542ef68a362d12f..55267916242a99d89e3ffa8f05a69040c4eb8fa4 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4331,6 +4331,7 @@ static const struct mtk_soc_data mt7986_
+@@ -4334,6 +4334,7 @@ static const struct mtk_soc_data mt7986_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7986_CLKS_BITMAP,
        .required_pctl = false,
index 7d05eb8ee8b81c0954492917c7f56f0581e3b1d5..95a21e1c9a39d7bf9e41abfa4758e11ea94ece3d 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3478,11 +3478,8 @@ static void mtk_pending_work(struct work
+@@ -3481,11 +3481,8 @@ static void mtk_pending_work(struct work
        rtnl_lock();
  
        dev_dbg(eth->dev, "[%s][%d] reset\n", __func__, __LINE__);
@@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        /* stop all devices to make sure that dma is properly shut down */
        for (i = 0; i < MTK_MAC_COUNT; i++) {
                if (!eth->netdev[i])
-@@ -3516,7 +3513,7 @@ static void mtk_pending_work(struct work
+@@ -3519,7 +3516,7 @@ static void mtk_pending_work(struct work
  
        dev_dbg(eth->dev, "[%s][%d] reset done\n", __func__, __LINE__);
  
index ce64f84ffbdcf224f47ef8033311475cf34f508c..8bdbfc292799821d386128bbb32864221d97f6a5 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3254,6 +3254,27 @@ static void mtk_set_mcr_max_rx(struct mt
+@@ -3257,6 +3257,27 @@ static void mtk_set_mcr_max_rx(struct mt
                mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id));
  }
  
@@ -44,7 +44,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  static int mtk_hw_init(struct mtk_eth *eth)
  {
        u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA |
-@@ -3293,22 +3314,9 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3296,22 +3317,9 @@ static int mtk_hw_init(struct mtk_eth *e
                return 0;
        }
  
index 652623493b6f60ddcb6f7e56285ceb50e8f653e5..712b6a2d3afeee02ecb1d6200bc4a527cd48a5e7 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3275,7 +3275,54 @@ static void mtk_hw_reset(struct mtk_eth
+@@ -3278,7 +3278,54 @@ static void mtk_hw_reset(struct mtk_eth
                             0x3ffffff);
  }
  
@@ -73,7 +73,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  {
        u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA |
                       ETHSYS_DMA_AG_MAP_PPE;
-@@ -3314,7 +3361,12 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3317,7 +3364,12 @@ static int mtk_hw_init(struct mtk_eth *e
                return 0;
        }
  
@@ -87,7 +87,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
                /* Set FE to PDMAv2 if necessary */
-@@ -3505,7 +3557,7 @@ static void mtk_pending_work(struct work
+@@ -3508,7 +3560,7 @@ static void mtk_pending_work(struct work
        if (eth->dev->pins)
                pinctrl_select_state(eth->dev->pins->p,
                                     eth->dev->pins->default_state);
@@ -96,7 +96,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        /* restart DMA and enable IRQs */
        for (i = 0; i < MTK_MAC_COUNT; i++) {
-@@ -4107,7 +4159,7 @@ static int mtk_probe(struct platform_dev
+@@ -4110,7 +4162,7 @@ static int mtk_probe(struct platform_dev
        eth->msg_enable = netif_msg_init(mtk_msg_level, MTK_DEFAULT_MSG_ENABLE);
        INIT_WORK(&eth->pending_work, mtk_pending_work);
  
index 17c168a6c0583cc4d270544015825b61779159f7..9da16ec56ccd8f8dacf6432cfe51eb8b68d8c02d 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -2842,14 +2842,29 @@ static void mtk_dma_free(struct mtk_eth
+@@ -2845,14 +2845,29 @@ static void mtk_dma_free(struct mtk_eth
        kfree(eth->scratch_head);
  }
  
@@ -48,7 +48,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        schedule_work(&eth->pending_work);
  }
  
-@@ -3329,15 +3344,17 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3332,15 +3347,17 @@ static int mtk_hw_init(struct mtk_eth *e
        const struct mtk_reg_map *reg_map = eth->soc->reg_map;
        int i, val, ret;
  
@@ -72,7 +72,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        if (eth->ethsys)
                regmap_update_bits(eth->ethsys, ETHSYS_DMA_AG_MAP, dma_mask,
-@@ -3466,8 +3483,10 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3469,8 +3486,10 @@ static int mtk_hw_init(struct mtk_eth *e
        return 0;
  
  err_disable_pm:
@@ -85,7 +85,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        return ret;
  }
-@@ -3529,30 +3548,53 @@ static int mtk_do_ioctl(struct net_devic
+@@ -3532,30 +3551,53 @@ static int mtk_do_ioctl(struct net_devic
        return -EOPNOTSUPP;
  }
  
@@ -148,7 +148,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        if (eth->dev->pins)
                pinctrl_select_state(eth->dev->pins->p,
-@@ -3563,15 +3605,19 @@ static void mtk_pending_work(struct work
+@@ -3566,15 +3608,19 @@ static void mtk_pending_work(struct work
        for (i = 0; i < MTK_MAC_COUNT; i++) {
                if (!test_bit(i, &restart))
                        continue;
index d682bee89a63f25ba3164e5a13dd9bf366c16935..96ebc874814fb83b6a2a2c86e183a9d3cbd1ff1e 100644 (file)
@@ -49,7 +49,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  };
  
  /* strings used by ethtool */
-@@ -3337,6 +3343,102 @@ static void mtk_hw_warm_reset(struct mtk
+@@ -3340,6 +3346,102 @@ static void mtk_hw_warm_reset(struct mtk
                        val, rst_mask);
  }
  
@@ -152,7 +152,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  static int mtk_hw_init(struct mtk_eth *eth, bool reset)
  {
        u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA |
-@@ -3655,6 +3757,7 @@ static int mtk_cleanup(struct mtk_eth *e
+@@ -3658,6 +3760,7 @@ static int mtk_cleanup(struct mtk_eth *e
        mtk_unreg_dev(eth);
        mtk_free_dev(eth);
        cancel_work_sync(&eth->pending_work);
@@ -160,7 +160,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        return 0;
  }
-@@ -4092,6 +4195,7 @@ static int mtk_probe(struct platform_dev
+@@ -4095,6 +4198,7 @@ static int mtk_probe(struct platform_dev
  
        eth->rx_dim.mode = DIM_CQ_PERIOD_MODE_START_FROM_EQE;
        INIT_WORK(&eth->rx_dim.work, mtk_dim_rx);
@@ -168,7 +168,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        eth->tx_dim.mode = DIM_CQ_PERIOD_MODE_START_FROM_EQE;
        INIT_WORK(&eth->tx_dim.work, mtk_dim_tx);
-@@ -4294,6 +4398,8 @@ static int mtk_probe(struct platform_dev
+@@ -4297,6 +4401,8 @@ static int mtk_probe(struct platform_dev
        netif_napi_add(&eth->dummy_dev, &eth->rx_napi, mtk_napi_rx);
  
        platform_set_drvdata(pdev, eth);
index b8b3a1a181cf55abdd8ecc0a709a6a7fdd95c1ec..da1ce24b8ffe4b61950934f850cf991661a304f4 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3686,6 +3686,11 @@ static void mtk_pending_work(struct work
+@@ -3689,6 +3689,11 @@ static void mtk_pending_work(struct work
        set_bit(MTK_RESETTING, &eth->state);
  
        mtk_prepare_for_reset(eth);
@@ -26,7 +26,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        /* stop all devices to make sure that dma is properly shut down */
        for (i = 0; i < MTK_MAC_COUNT; i++) {
-@@ -3723,6 +3728,8 @@ static void mtk_pending_work(struct work
+@@ -3726,6 +3731,8 @@ static void mtk_pending_work(struct work
  
        clear_bit(MTK_RESETTING, &eth->state);
  
index 34c41b8d4db869019efeb7fcd770c9cbd1498a26..c3b8af0b2b7fe9a13a1163133663f8e17b22c223 100644 (file)
@@ -122,7 +122,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                                  ring->dma_pdma, ring->phys_pdma);
                ring->dma_pdma = NULL;
        }
-@@ -2830,7 +2836,7 @@ static void mtk_dma_free(struct mtk_eth
+@@ -2833,7 +2839,7 @@ static void mtk_dma_free(struct mtk_eth
                        netdev_reset_queue(eth->netdev[i]);
        if (eth->scratch_ring) {
                dma_free_coherent(eth->dma_dev,
index d91d79320809326cac613bd17d495097a079ecd1..bc794a5c8a0f9be9635868b9ba3ea8d626365b1c 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4477,7 +4477,7 @@ static const struct mtk_soc_data mt7621_
+@@ -4480,7 +4480,7 @@ static const struct mtk_soc_data mt7621_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7621_CLKS_BITMAP,
        .required_pctl = false,
@@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        .hash_offset = 2,
        .foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
        .txrx = {
-@@ -4516,7 +4516,7 @@ static const struct mtk_soc_data mt7623_
+@@ -4519,7 +4519,7 @@ static const struct mtk_soc_data mt7623_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7623_CLKS_BITMAP,
        .required_pctl = true,
index be2d78911e45473ea769d990c686e5ffc1c03155..48d9b31fef4300facb075c704ca3d84c96115b8e 100644 (file)
@@ -424,7 +424,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        } else {
                mtk_w32(eth, ring->phys_pdma, MT7628_TX_BASE_PTR0);
                mtk_w32(eth, ring_size, MT7628_TX_MAX_CNT0);
-@@ -2960,7 +3076,7 @@ static int mtk_start_dma(struct mtk_eth
+@@ -2963,7 +3079,7 @@ static int mtk_start_dma(struct mtk_eth
                if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
                        val |= MTK_MUTLI_CNT | MTK_RESV_BUF |
                               MTK_WCOMP_EN | MTK_DMAD_WR_WDONE |
@@ -433,7 +433,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                else
                        val |= MTK_RX_BT_32DWORDS;
                mtk_w32(eth, val, reg_map->qdma.glo_cfg);
-@@ -3006,6 +3122,45 @@ static void mtk_gdm_config(struct mtk_et
+@@ -3009,6 +3125,45 @@ static void mtk_gdm_config(struct mtk_et
        mtk_w32(eth, 0, MTK_RST_GL);
  }
  
@@ -479,7 +479,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int mtk_open(struct net_device *dev)
  {
        struct mtk_mac *mac = netdev_priv(dev);
-@@ -3048,7 +3203,8 @@ static int mtk_open(struct net_device *d
+@@ -3051,7 +3206,8 @@ static int mtk_open(struct net_device *d
                refcount_inc(&eth->dma_refcnt);
  
        phylink_start(mac->phylink);
@@ -489,7 +489,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        return 0;
  }
  
-@@ -3757,8 +3913,12 @@ static int mtk_unreg_dev(struct mtk_eth
+@@ -3760,8 +3916,12 @@ static int mtk_unreg_dev(struct mtk_eth
        int i;
  
        for (i = 0; i < MTK_MAC_COUNT; i++) {
@@ -502,7 +502,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                unregister_netdev(eth->netdev[i]);
        }
  
-@@ -3975,6 +4135,23 @@ static int mtk_set_rxnfc(struct net_devi
+@@ -3978,6 +4138,23 @@ static int mtk_set_rxnfc(struct net_devi
        return ret;
  }
  
@@ -526,7 +526,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static const struct ethtool_ops mtk_ethtool_ops = {
        .get_link_ksettings     = mtk_get_link_ksettings,
        .set_link_ksettings     = mtk_set_link_ksettings,
-@@ -4009,6 +4186,7 @@ static const struct net_device_ops mtk_n
+@@ -4012,6 +4189,7 @@ static const struct net_device_ops mtk_n
        .ndo_setup_tc           = mtk_eth_setup_tc,
        .ndo_bpf                = mtk_xdp,
        .ndo_xdp_xmit           = mtk_xdp_xmit,
@@ -534,7 +534,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  };
  
  static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
-@@ -4018,6 +4196,7 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4021,6 +4199,7 @@ static int mtk_add_mac(struct mtk_eth *e
        struct phylink *phylink;
        struct mtk_mac *mac;
        int id, err;
@@ -542,7 +542,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (!_id) {
                dev_err(eth->dev, "missing mac id\n");
-@@ -4035,7 +4214,10 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4038,7 +4217,10 @@ static int mtk_add_mac(struct mtk_eth *e
                return -EINVAL;
        }
  
@@ -554,7 +554,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!eth->netdev[id]) {
                dev_err(eth->dev, "alloc_etherdev failed\n");
                return -ENOMEM;
-@@ -4143,6 +4325,11 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4146,6 +4328,11 @@ static int mtk_add_mac(struct mtk_eth *e
        else
                eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH_2K - MTK_RX_ETH_HLEN;
  
index fda017f7fc105bcf3b2dc87c62bbd0a915e646db..b45a33c4cb53880a9207dd7a908ad1b0cad844a0 100644 (file)
@@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                }
  
                skb_record_rx_queue(skb, 0);
-@@ -2856,15 +2863,30 @@ static netdev_features_t mtk_fix_feature
+@@ -2859,15 +2866,30 @@ static netdev_features_t mtk_fix_feature
  
  static int mtk_set_features(struct net_device *dev, netdev_features_t features)
  {
@@ -88,7 +88,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /* wait for DMA to finish whatever it is doing before we start using it again */
-@@ -3161,11 +3183,45 @@ found:
+@@ -3164,11 +3186,45 @@ found:
        return NOTIFY_DONE;
  }
  
@@ -135,7 +135,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
        if (err) {
-@@ -3686,6 +3742,10 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3689,6 +3745,10 @@ static int mtk_hw_init(struct mtk_eth *e
         */
        val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
        mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
@@ -146,7 +146,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /* Enable RX VLan Offloading */
        mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
-@@ -3905,6 +3965,12 @@ static int mtk_free_dev(struct mtk_eth *
+@@ -3908,6 +3968,12 @@ static int mtk_free_dev(struct mtk_eth *
                free_netdev(eth->netdev[i]);
        }
  
index efbceb9a13de1c458aafe6fed99a95b990156b69..42c745d02fa9a0d34dc2951cf45e7b0f8ebc17c9 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3199,7 +3199,8 @@ static int mtk_open(struct net_device *d
+@@ -3202,7 +3202,8 @@ static int mtk_open(struct net_device *d
        struct mtk_eth *eth = mac->hw;
        int i, err;
  
@@ -30,7 +30,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) {
                        struct metadata_dst *md_dst = eth->dsa_meta[i];
  
-@@ -3216,7 +3217,8 @@ static int mtk_open(struct net_device *d
+@@ -3219,7 +3220,8 @@ static int mtk_open(struct net_device *d
                }
        } else {
                /* Hardware special tag parsing needs to be disabled if at least
index c0bfd9bd042e07fe3ed80d76339f2748fb773bbb..39874c9d1c09597013b0e6d5236d1e2fc130b9ab 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3134,7 +3134,7 @@ static void mtk_gdm_config(struct mtk_et
+@@ -3137,7 +3137,7 @@ static void mtk_gdm_config(struct mtk_et
  
                val |= config;
  
@@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                        val |= MTK_GDMA_SPECIAL_TAG;
  
                mtk_w32(eth, val, MTK_GDMA_FWD_CFG(i));
-@@ -3199,8 +3199,7 @@ static int mtk_open(struct net_device *d
+@@ -3202,8 +3202,7 @@ static int mtk_open(struct net_device *d
        struct mtk_eth *eth = mac->hw;
        int i, err;
  
@@ -42,7 +42,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) {
                        struct metadata_dst *md_dst = eth->dsa_meta[i];
  
-@@ -3217,8 +3216,7 @@ static int mtk_open(struct net_device *d
+@@ -3220,8 +3219,7 @@ static int mtk_open(struct net_device *d
                }
        } else {
                /* Hardware special tag parsing needs to be disabled if at least
index 4b53ef903a25f22a4e931e8f12d352adb5bd7897..089f25545d60f46dd2c72511324d9da4e973ea41 100644 (file)
@@ -57,7 +57,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                mtk_eth_path_name(path), __func__, updated);
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4801,6 +4801,26 @@ static const struct mtk_soc_data mt7629_
+@@ -4804,6 +4804,26 @@ static const struct mtk_soc_data mt7629_
        },
  };
  
@@ -84,7 +84,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static const struct mtk_soc_data mt7986_data = {
        .reg_map = &mt7986_reg_map,
        .ana_rgc3 = 0x128,
-@@ -4843,6 +4863,7 @@ const struct of_device_id of_mtk_match[]
+@@ -4846,6 +4866,7 @@ const struct of_device_id of_mtk_match[]
        { .compatible = "mediatek,mt7622-eth", .data = &mt7622_data},
        { .compatible = "mediatek,mt7623-eth", .data = &mt7623_data},
        { .compatible = "mediatek,mt7629-eth", .data = &mt7629_data},
index e40d658ddcfb1a0199b44b9a647da7df4fa0b2de..15295959c11ad9028b6cc37ee56137b8af7c82a3 100644 (file)
@@ -60,7 +60,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        }
  
        return NULL;
-@@ -4014,8 +4015,17 @@ static int mtk_unreg_dev(struct mtk_eth
+@@ -4017,8 +4018,17 @@ static int mtk_unreg_dev(struct mtk_eth
        return 0;
  }
  
@@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        mtk_unreg_dev(eth);
        mtk_free_dev(eth);
        cancel_work_sync(&eth->pending_work);
-@@ -4455,6 +4465,36 @@ void mtk_eth_set_dma_device(struct mtk_e
+@@ -4458,6 +4468,36 @@ void mtk_eth_set_dma_device(struct mtk_e
        rtnl_unlock();
  }
  
@@ -115,7 +115,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static int mtk_probe(struct platform_device *pdev)
  {
        struct resource *res = NULL;
-@@ -4518,13 +4558,7 @@ static int mtk_probe(struct platform_dev
+@@ -4521,13 +4561,7 @@ static int mtk_probe(struct platform_dev
        }
  
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_SGMII)) {
@@ -130,7 +130,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
                if (err)
                        return err;
-@@ -4535,14 +4569,17 @@ static int mtk_probe(struct platform_dev
+@@ -4538,14 +4572,17 @@ static int mtk_probe(struct platform_dev
                                                            "mediatek,pctl");
                if (IS_ERR(eth->pctl)) {
                        dev_err(&pdev->dev, "no pctl regmap found\n");
@@ -151,7 +151,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        }
  
        if (eth->soc->offload_version) {
-@@ -4701,6 +4738,8 @@ err_deinit_hw:
+@@ -4704,6 +4741,8 @@ err_deinit_hw:
        mtk_hw_deinit(eth);
  err_wed_exit:
        mtk_wed_exit();
index 3384086bdc685de720630f04e7bd2e9fd3b1ae61..df8d6427943c9d8331115753c4bd5db9b68d51ac 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4689,8 +4689,8 @@ static int mtk_probe(struct platform_dev
+@@ -4692,8 +4692,8 @@ static int mtk_probe(struct platform_dev
                for (i = 0; i < num_ppe; i++) {
                        u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400;
  
@@ -38,7 +38,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        if (!eth->ppe[i]) {
                                err = -ENOMEM;
                                goto err_deinit_ppe;
-@@ -4814,6 +4814,7 @@ static const struct mtk_soc_data mt7622_
+@@ -4817,6 +4817,7 @@ static const struct mtk_soc_data mt7622_
        .required_pctl = false,
        .offload_version = 2,
        .hash_offset = 2,
@@ -46,7 +46,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
        .txrx = {
                .txd_size = sizeof(struct mtk_tx_dma),
-@@ -4851,6 +4852,7 @@ static const struct mtk_soc_data mt7629_
+@@ -4854,6 +4855,7 @@ static const struct mtk_soc_data mt7629_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7629_CLKS_BITMAP,
        .required_pctl = false,
@@ -54,7 +54,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .txrx = {
                .txd_size = sizeof(struct mtk_tx_dma),
                .rxd_size = sizeof(struct mtk_rx_dma),
-@@ -4871,6 +4873,7 @@ static const struct mtk_soc_data mt7981_
+@@ -4874,6 +4876,7 @@ static const struct mtk_soc_data mt7981_
        .offload_version = 2,
        .hash_offset = 4,
        .foe_entry_size = sizeof(struct mtk_foe_entry),
@@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .txrx = {
                .txd_size = sizeof(struct mtk_tx_dma_v2),
                .rxd_size = sizeof(struct mtk_rx_dma_v2),
-@@ -4891,6 +4894,7 @@ static const struct mtk_soc_data mt7986_
+@@ -4894,6 +4897,7 @@ static const struct mtk_soc_data mt7986_
        .offload_version = 2,
        .hash_offset = 4,
        .foe_entry_size = sizeof(struct mtk_foe_entry),
index 3a4cc910b058849ec11c714806ace2800b681ce0..d6309964c384bda00bb549d3f800df4b208d41d6 100644 (file)
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                skb_record_rx_queue(skb, 0);
                napi_gro_receive(napi, skb);
  
-@@ -2887,29 +2870,11 @@ static netdev_features_t mtk_fix_feature
+@@ -2890,29 +2873,11 @@ static netdev_features_t mtk_fix_feature
  
  static int mtk_set_features(struct net_device *dev, netdev_features_t features)
  {
@@ -100,7 +100,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        return 0;
  }
  
-@@ -3223,30 +3188,6 @@ static int mtk_open(struct net_device *d
+@@ -3226,30 +3191,6 @@ static int mtk_open(struct net_device *d
        struct mtk_eth *eth = mac->hw;
        int i, err;
  
@@ -131,7 +131,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
        if (err) {
                netdev_err(dev, "%s: could not attach PHY: %d\n", __func__,
-@@ -3285,6 +3226,35 @@ static int mtk_open(struct net_device *d
+@@ -3288,6 +3229,35 @@ static int mtk_open(struct net_device *d
        phylink_start(mac->phylink);
        netif_tx_start_all_queues(dev);
  
@@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        return 0;
  }
  
-@@ -3769,10 +3739,9 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3772,10 +3742,9 @@ static int mtk_hw_init(struct mtk_eth *e
        if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
                val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
                mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL);
@@ -180,7 +180,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /* set interrupt delays based on current Net DIM sample */
        mtk_dim_rx(&eth->rx_dim.work);
-@@ -4412,7 +4381,7 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4415,7 +4384,7 @@ static int mtk_add_mac(struct mtk_eth *e
                eth->netdev[id]->hw_features |= NETIF_F_LRO;
  
        eth->netdev[id]->vlan_features = eth->soc->hw_features &
index aceeaa9fe56fd232d049d3635ac468e05e3b3af6..a0b9b6a299bc21c5f8509daddce2b36de77eca25 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4763,7 +4763,7 @@ static const struct mtk_soc_data mt7621_
+@@ -4766,7 +4766,7 @@ static const struct mtk_soc_data mt7621_
        .required_pctl = false,
        .offload_version = 1,
        .hash_offset = 2,
@@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        .txrx = {
                .txd_size = sizeof(struct mtk_tx_dma),
                .rxd_size = sizeof(struct mtk_rx_dma),
-@@ -4784,7 +4784,7 @@ static const struct mtk_soc_data mt7622_
+@@ -4787,7 +4787,7 @@ static const struct mtk_soc_data mt7622_
        .offload_version = 2,
        .hash_offset = 2,
        .has_accounting = true,
@@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        .txrx = {
                .txd_size = sizeof(struct mtk_tx_dma),
                .rxd_size = sizeof(struct mtk_rx_dma),
-@@ -4803,7 +4803,7 @@ static const struct mtk_soc_data mt7623_
+@@ -4806,7 +4806,7 @@ static const struct mtk_soc_data mt7623_
        .required_pctl = true,
        .offload_version = 1,
        .hash_offset = 2,
@@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        .txrx = {
                .txd_size = sizeof(struct mtk_tx_dma),
                .rxd_size = sizeof(struct mtk_rx_dma),
-@@ -4841,8 +4841,8 @@ static const struct mtk_soc_data mt7981_
+@@ -4844,8 +4844,8 @@ static const struct mtk_soc_data mt7981_
        .required_pctl = false,
        .offload_version = 2,
        .hash_offset = 4,
@@ -54,7 +54,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        .txrx = {
                .txd_size = sizeof(struct mtk_tx_dma_v2),
                .rxd_size = sizeof(struct mtk_rx_dma_v2),
-@@ -4862,8 +4862,8 @@ static const struct mtk_soc_data mt7986_
+@@ -4865,8 +4865,8 @@ static const struct mtk_soc_data mt7986_
        .required_pctl = false,
        .offload_version = 2,
        .hash_offset = 4,
index ae56a99e8386d4c8f2f2f23284151843a4eac1d4..8914e8da96d87cea7c75135e831b2d4c848d36dd 100644 (file)
@@ -95,7 +95,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
                                /* mt7623_pad_clk_setup */
                                for (i = 0 ; i < NUM_TRGMII_CTRL; i++)
-@@ -4340,13 +4312,19 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4343,13 +4315,19 @@ static int mtk_add_mac(struct mtk_eth *e
        mac->phylink_config.mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
                MAC_10 | MAC_100 | MAC_1000 | MAC_2500FD;
  
@@ -121,7 +121,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        if (MTK_HAS_CAPS(mac->hw->soc->caps, MTK_TRGMII) && !mac->id)
                __set_bit(PHY_INTERFACE_MODE_TRGMII,
-@@ -4804,6 +4782,7 @@ static const struct mtk_soc_data mt7623_
+@@ -4807,6 +4785,7 @@ static const struct mtk_soc_data mt7623_
        .offload_version = 1,
        .hash_offset = 2,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
index 2893a073fdeb9a7d66f8fc14c9419dc11b3a6b8c..351568f187ca9c9aa79ba7fd1542cbf29d8df588 100644 (file)
@@ -70,7 +70,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        .mac_config = mtk_mac_config,
        .mac_finish = mtk_mac_finish,
        .mac_link_down = mtk_mac_link_down,
-@@ -4307,8 +4274,6 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4310,8 +4277,6 @@ static int mtk_add_mac(struct mtk_eth *e
  
        mac->phylink_config.dev = &eth->netdev[id]->dev;
        mac->phylink_config.type = PHYLINK_NETDEV;
index 9151702d01b439604cd5cfd2a1d44ec0a05eda33..f479522339428311219d5f67ed7d998eca550363 100644 (file)
@@ -132,7 +132,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        rxd->rxd5 = 0;
                        rxd->rxd6 = 0;
                        rxd->rxd7 = 0;
-@@ -3023,7 +3023,7 @@ static int mtk_start_dma(struct mtk_eth
+@@ -3026,7 +3026,7 @@ static int mtk_start_dma(struct mtk_eth
                       MTK_TX_BT_32DWORDS | MTK_NDP_CO_PRO |
                       MTK_RX_2B_OFFSET | MTK_TX_WB_DDONE;
  
@@ -141,7 +141,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        val |= MTK_MUTLI_CNT | MTK_RESV_BUF |
                               MTK_WCOMP_EN | MTK_DMAD_WR_WDONE |
                               MTK_CHK_DDONE_EN | MTK_LEAKY_BUCKET_EN;
-@@ -3165,7 +3165,7 @@ static int mtk_open(struct net_device *d
+@@ -3168,7 +3168,7 @@ static int mtk_open(struct net_device *d
        phylink_start(mac->phylink);
        netif_tx_start_all_queues(dev);
  
@@ -150,7 +150,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                return 0;
  
        if (mtk_uses_dsa(dev) && !eth->prog) {
-@@ -3430,7 +3430,7 @@ static void mtk_hw_reset(struct mtk_eth
+@@ -3433,7 +3433,7 @@ static void mtk_hw_reset(struct mtk_eth
  {
        u32 val;
  
@@ -159,7 +159,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN, 0);
                val = RSTCTRL_PPE0_V2;
        } else {
-@@ -3442,7 +3442,7 @@ static void mtk_hw_reset(struct mtk_eth
+@@ -3445,7 +3445,7 @@ static void mtk_hw_reset(struct mtk_eth
  
        ethsys_reset(eth, RSTCTRL_ETH | RSTCTRL_FE | val);
  
@@ -168,7 +168,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN,
                             0x3ffffff);
  }
-@@ -3468,7 +3468,7 @@ static void mtk_hw_warm_reset(struct mtk
+@@ -3471,7 +3471,7 @@ static void mtk_hw_warm_reset(struct mtk
                return;
        }
  
@@ -177,7 +177,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                rst_mask = RSTCTRL_ETH | RSTCTRL_PPE0_V2;
        else
                rst_mask = RSTCTRL_ETH | RSTCTRL_PPE0;
-@@ -3638,7 +3638,7 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3641,7 +3641,7 @@ static int mtk_hw_init(struct mtk_eth *e
        else
                mtk_hw_reset(eth);
  
@@ -186,7 +186,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                /* Set FE to PDMAv2 if necessary */
                val = mtk_r32(eth, MTK_FE_GLO_MISC);
                mtk_w32(eth,  val | BIT(4), MTK_FE_GLO_MISC);
-@@ -3675,7 +3675,7 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3678,7 +3678,7 @@ static int mtk_hw_init(struct mtk_eth *e
         */
        val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
        mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
@@ -195,7 +195,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
                mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL);
  
-@@ -3697,7 +3697,7 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3700,7 +3700,7 @@ static int mtk_hw_init(struct mtk_eth *e
        mtk_w32(eth, eth->soc->txrx.rx_irq_done_mask, reg_map->qdma.int_grp + 4);
        mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
  
@@ -204,7 +204,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                /* PSE should not drop port8 and port9 packets from WDMA Tx */
                mtk_w32(eth, 0x00000300, PSE_DROP_CFG);
  
-@@ -4486,7 +4486,7 @@ static int mtk_probe(struct platform_dev
+@@ -4489,7 +4489,7 @@ static int mtk_probe(struct platform_dev
                }
        }
  
@@ -213,7 +213,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
                if (!res) {
                        err = -EINVAL;
-@@ -4594,9 +4594,8 @@ static int mtk_probe(struct platform_dev
+@@ -4597,9 +4597,8 @@ static int mtk_probe(struct platform_dev
        }
  
        if (eth->soc->offload_version) {
@@ -224,7 +224,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                num_ppe = min_t(u32, ARRAY_SIZE(eth->ppe), num_ppe);
                for (i = 0; i < num_ppe; i++) {
                        u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400;
-@@ -4688,6 +4687,7 @@ static const struct mtk_soc_data mt2701_
+@@ -4691,6 +4690,7 @@ static const struct mtk_soc_data mt2701_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7623_CLKS_BITMAP,
        .required_pctl = true,
@@ -232,7 +232,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .txrx = {
                .txd_size = sizeof(struct mtk_tx_dma),
                .rxd_size = sizeof(struct mtk_rx_dma),
-@@ -4704,6 +4704,7 @@ static const struct mtk_soc_data mt7621_
+@@ -4707,6 +4707,7 @@ static const struct mtk_soc_data mt7621_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7621_CLKS_BITMAP,
        .required_pctl = false,
@@ -240,7 +240,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .offload_version = 1,
        .hash_offset = 2,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
-@@ -4724,6 +4725,7 @@ static const struct mtk_soc_data mt7622_
+@@ -4727,6 +4728,7 @@ static const struct mtk_soc_data mt7622_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7622_CLKS_BITMAP,
        .required_pctl = false,
@@ -248,7 +248,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .offload_version = 2,
        .hash_offset = 2,
        .has_accounting = true,
-@@ -4744,6 +4746,7 @@ static const struct mtk_soc_data mt7623_
+@@ -4747,6 +4749,7 @@ static const struct mtk_soc_data mt7623_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7623_CLKS_BITMAP,
        .required_pctl = true,
@@ -256,7 +256,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .offload_version = 1,
        .hash_offset = 2,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
-@@ -4766,6 +4769,7 @@ static const struct mtk_soc_data mt7629_
+@@ -4769,6 +4772,7 @@ static const struct mtk_soc_data mt7629_
        .required_clks = MT7629_CLKS_BITMAP,
        .required_pctl = false,
        .has_accounting = true,
@@ -264,7 +264,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .txrx = {
                .txd_size = sizeof(struct mtk_tx_dma),
                .rxd_size = sizeof(struct mtk_rx_dma),
-@@ -4783,6 +4787,7 @@ static const struct mtk_soc_data mt7981_
+@@ -4786,6 +4790,7 @@ static const struct mtk_soc_data mt7981_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7981_CLKS_BITMAP,
        .required_pctl = false,
@@ -272,7 +272,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .offload_version = 2,
        .hash_offset = 4,
        .has_accounting = true,
-@@ -4804,6 +4809,7 @@ static const struct mtk_soc_data mt7986_
+@@ -4807,6 +4812,7 @@ static const struct mtk_soc_data mt7986_
        .hw_features = MTK_HW_FEATURES,
        .required_clks = MT7986_CLKS_BITMAP,
        .required_pctl = false,
@@ -280,7 +280,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .offload_version = 2,
        .hash_offset = 4,
        .has_accounting = true,
-@@ -4824,6 +4830,7 @@ static const struct mtk_soc_data rt5350_
+@@ -4827,6 +4833,7 @@ static const struct mtk_soc_data rt5350_
        .hw_features = MTK_HW_FEATURES_MT7628,
        .required_clks = MT7628_CLKS_BITMAP,
        .required_pctl = false,
index d7ba0d4a5729eaf25a84da87c337ed419644f700..5ac9d61ab424a761b123a0d319ce43e6a5e2b3bc 100644 (file)
@@ -53,7 +53,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                             !eth->netdev[mac]))
                        goto release_desc;
  
-@@ -2897,7 +2897,7 @@ static void mtk_dma_free(struct mtk_eth
+@@ -2900,7 +2900,7 @@ static void mtk_dma_free(struct mtk_eth
        const struct mtk_soc_data *soc = eth->soc;
        int i;
  
@@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                if (eth->netdev[i])
                        netdev_reset_queue(eth->netdev[i]);
        if (eth->scratch_ring) {
-@@ -3051,8 +3051,13 @@ static void mtk_gdm_config(struct mtk_et
+@@ -3054,8 +3054,13 @@ static void mtk_gdm_config(struct mtk_et
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628))
                return;
  
@@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
                /* default setup the forward port to send frame to PDMA */
                val &= ~0xffff;
-@@ -3062,7 +3067,7 @@ static void mtk_gdm_config(struct mtk_et
+@@ -3065,7 +3070,7 @@ static void mtk_gdm_config(struct mtk_et
  
                val |= config;
  
@@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        val |= MTK_GDMA_SPECIAL_TAG;
  
                mtk_w32(eth, val, MTK_GDMA_FWD_CFG(i));
-@@ -3659,15 +3664,15 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3662,15 +3667,15 @@ static int mtk_hw_init(struct mtk_eth *e
         * up with the more appropriate value when mtk_mac_config call is being
         * invoked.
         */
@@ -109,7 +109,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        }
  
        /* Indicates CDM to parse the MTK special tag from CPU
-@@ -3847,7 +3852,7 @@ static void mtk_pending_work(struct work
+@@ -3850,7 +3855,7 @@ static void mtk_pending_work(struct work
        mtk_prepare_for_reset(eth);
  
        /* stop all devices to make sure that dma is properly shut down */
@@ -118,7 +118,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                if (!eth->netdev[i] || !netif_running(eth->netdev[i]))
                        continue;
  
-@@ -3863,8 +3868,8 @@ static void mtk_pending_work(struct work
+@@ -3866,8 +3871,8 @@ static void mtk_pending_work(struct work
        mtk_hw_init(eth, true);
  
        /* restart DMA and enable IRQs */
@@ -129,7 +129,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        continue;
  
                if (mtk_open(eth->netdev[i])) {
-@@ -3891,7 +3896,7 @@ static int mtk_free_dev(struct mtk_eth *
+@@ -3894,7 +3899,7 @@ static int mtk_free_dev(struct mtk_eth *
  {
        int i;
  
@@ -138,7 +138,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                if (!eth->netdev[i])
                        continue;
                free_netdev(eth->netdev[i]);
-@@ -3910,7 +3915,7 @@ static int mtk_unreg_dev(struct mtk_eth
+@@ -3913,7 +3918,7 @@ static int mtk_unreg_dev(struct mtk_eth
  {
        int i;
  
@@ -147,7 +147,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                struct mtk_mac *mac;
                if (!eth->netdev[i])
                        continue;
-@@ -4211,7 +4216,7 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4214,7 +4219,7 @@ static int mtk_add_mac(struct mtk_eth *e
        }
  
        id = be32_to_cpup(_id);
@@ -156,7 +156,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                dev_err(eth->dev, "%d is not a valid mac id\n", id);
                return -EINVAL;
        }
-@@ -4356,7 +4361,7 @@ void mtk_eth_set_dma_device(struct mtk_e
+@@ -4359,7 +4364,7 @@ void mtk_eth_set_dma_device(struct mtk_e
  
        rtnl_lock();
  
@@ -165,7 +165,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                dev = eth->netdev[i];
  
                if (!dev || !(dev->flags & IFF_UP))
-@@ -4662,7 +4667,7 @@ static int mtk_remove(struct platform_de
+@@ -4665,7 +4670,7 @@ static int mtk_remove(struct platform_de
        int i;
  
        /* stop all devices to make sure that dma is properly shut down */
index f06fcce618b9e5291f1e796beabce94339b09757..bf6ef4c137067657d29f01a68fe532fc7d7387d1 100644 (file)
@@ -167,7 +167,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
                        budget--;
                }
-@@ -3702,7 +3730,24 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3705,7 +3733,24 @@ static int mtk_hw_init(struct mtk_eth *e
        mtk_w32(eth, eth->soc->txrx.rx_irq_done_mask, reg_map->qdma.int_grp + 4);
        mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
  
@@ -193,7 +193,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                /* PSE should not drop port8 and port9 packets from WDMA Tx */
                mtk_w32(eth, 0x00000300, PSE_DROP_CFG);
  
-@@ -4264,7 +4309,11 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4267,7 +4312,11 @@ static int mtk_add_mac(struct mtk_eth *e
        }
        spin_lock_init(&mac->hw_stats->stats_lock);
        u64_stats_init(&mac->hw_stats->syncp);
index a7195236c38735f305b5ef10e5d58addddadb0d4..97a2992cfedc7c194d71c6f5ea7601b76cd54012 100644 (file)
@@ -263,7 +263,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        data |= TX_DMA_SWC_V2 | QID_BITS_V2(info->qid);
        WRITE_ONCE(desc->txd4, data);
  
-@@ -4358,6 +4487,17 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4361,6 +4490,17 @@ static int mtk_add_mac(struct mtk_eth *e
                          mac->phylink_config.supported_interfaces);
        }
  
@@ -281,7 +281,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        phylink = phylink_create(&mac->phylink_config,
                                 of_fwnode_handle(mac->of_node),
                                 phy_mode, &mtk_phylink_ops);
-@@ -4878,6 +5018,24 @@ static const struct mtk_soc_data mt7986_
+@@ -4881,6 +5021,24 @@ static const struct mtk_soc_data mt7986_
        },
  };
  
@@ -306,7 +306,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static const struct mtk_soc_data rt5350_data = {
        .reg_map = &mt7628_reg_map,
        .caps = MT7628_CAPS,
-@@ -4896,14 +5054,15 @@ static const struct mtk_soc_data rt5350_
+@@ -4899,14 +5057,15 @@ static const struct mtk_soc_data rt5350_
  };
  
  const struct of_device_id of_mtk_match[] = {
index 49f4bd6a9d344c0701df7e05dfa52a731c92c2da..b175aedf0c43e2752f2d4a1669fc430c3320c5c6 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5026,6 +5026,9 @@ static const struct mtk_soc_data mt7988_
+@@ -5029,6 +5029,9 @@ static const struct mtk_soc_data mt7988_
        .required_clks = MT7988_CLKS_BITMAP,
        .required_pctl = false,
        .version = 3,
index 88987d7bc943dab39ac70a3733924ae26f256813..bf0a39b9d3fda8d653dde1258deab8a923554804 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5028,6 +5028,7 @@ static const struct mtk_soc_data mt7988_
+@@ -5031,6 +5031,7 @@ static const struct mtk_soc_data mt7988_
        .version = 3,
        .offload_version = 2,
        .hash_offset = 4,
index b94ca7ebc5a4601ff3470f7ac6f08ffc489a6488..a4ff5a292e7d8ea7620a8c76689e969ff9b457ce 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3592,19 +3592,34 @@ static void mtk_hw_reset(struct mtk_eth
+@@ -3595,19 +3595,34 @@ static void mtk_hw_reset(struct mtk_eth
  {
        u32 val;
  
@@ -56,7 +56,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN,
                             0x3ffffff);
  }
-@@ -3630,13 +3645,21 @@ static void mtk_hw_warm_reset(struct mtk
+@@ -3633,13 +3648,21 @@ static void mtk_hw_warm_reset(struct mtk
                return;
        }
  
@@ -83,7 +83,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        regmap_update_bits(eth->ethsys, ETHSYS_RSTCTRL, rst_mask, rst_mask);
  
-@@ -3988,11 +4011,17 @@ static void mtk_prepare_for_reset(struct
+@@ -3991,11 +4014,17 @@ static void mtk_prepare_for_reset(struct
        u32 val;
        int i;
  
@@ -106,7 +106,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        /* adjust PPE configurations to prepare for reset */
        for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
-@@ -4053,11 +4082,18 @@ static void mtk_pending_work(struct work
+@@ -4056,11 +4085,18 @@ static void mtk_pending_work(struct work
                }
        }
  
index 43fbffc51b8783b30b40b0686754f0ab3c1c3d8e..872262b0f82a80333ff5b4f9535d749170ee0303 100644 (file)
@@ -123,7 +123,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                dma_free_coherent(eth->dma_dev,
                                  ring->dma_size * eth->soc->txrx.rxd_size,
                                  ring->dma, ring->phys);
-@@ -3057,7 +3081,7 @@ static void mtk_dma_free(struct mtk_eth
+@@ -3060,7 +3084,7 @@ static void mtk_dma_free(struct mtk_eth
        for (i = 0; i < MTK_MAX_DEVS; i++)
                if (eth->netdev[i])
                        netdev_reset_queue(eth->netdev[i]);
@@ -132,7 +132,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                dma_free_coherent(eth->dma_dev,
                                  MTK_QDMA_RING_SIZE * soc->txrx.txd_size,
                                  eth->scratch_ring, eth->phy_scratch_ring);
-@@ -3065,13 +3089,13 @@ static void mtk_dma_free(struct mtk_eth
+@@ -3068,13 +3092,13 @@ static void mtk_dma_free(struct mtk_eth
                eth->phy_scratch_ring = 0;
        }
        mtk_tx_clean(eth);
@@ -149,7 +149,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        }
  
        kfree(eth->scratch_head);
-@@ -4639,7 +4663,7 @@ static int mtk_sgmii_init(struct mtk_eth
+@@ -4642,7 +4666,7 @@ static int mtk_sgmii_init(struct mtk_eth
  
  static int mtk_probe(struct platform_device *pdev)
  {
@@ -158,7 +158,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        struct device_node *mac_np;
        struct mtk_eth *eth;
        int err, i;
-@@ -4659,6 +4683,20 @@ static int mtk_probe(struct platform_dev
+@@ -4662,6 +4686,20 @@ static int mtk_probe(struct platform_dev
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628))
                eth->ip_align = NET_IP_ALIGN;
  
@@ -179,7 +179,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        spin_lock_init(&eth->page_lock);
        spin_lock_init(&eth->tx_irq_lock);
        spin_lock_init(&eth->rx_irq_lock);
-@@ -4722,6 +4760,18 @@ static int mtk_probe(struct platform_dev
+@@ -4725,6 +4763,18 @@ static int mtk_probe(struct platform_dev
                        err = -EINVAL;
                        goto err_destroy_sgmii;
                }
index 3933997003adee7af2362bcc1c04aae5a96d9935..9266c33f82554560e029da4c60861b797bb28917 100644 (file)
@@ -90,7 +90,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                         ring->buf_size, DMA_FROM_DEVICE);
                        mtk_rx_put_buff(ring, ring->data[i], false);
                }
-@@ -4697,6 +4715,14 @@ static int mtk_probe(struct platform_dev
+@@ -4700,6 +4718,14 @@ static int mtk_probe(struct platform_dev
                }
        }
  
index bfb4f50e7928407c9703698337b4688113c48854..dd9ca868a2e7ae549f657dc261bca829403c7ce3 100644 (file)
@@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
   */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -3032,6 +3032,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -3040,6 +3040,10 @@ static inline int pskb_trim(struct sk_bu
        return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /**
   *    pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *    @skb: buffer to alter
-@@ -3181,16 +3185,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -3189,16 +3193,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
@@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  #include <net/protocol.h>
  #include <net/dst.h>
-@@ -707,6 +708,22 @@ skb_fail:
+@@ -709,6 +710,22 @@ skb_fail:
  }
  EXPORT_SYMBOL(__napi_alloc_skb);
  
index ba03a00eb27abfd7404ea75fd1a7cca1ffeaf711..96525089ef5a9e5adc9fa79acbdec5b16221a228 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
  #include <linux/crc32.h>
  #include <linux/if_vlan.h>
  #include <linux/uaccess.h>
-@@ -6893,6 +6894,22 @@ static void rtl_tally_reset(struct r8152
+@@ -6896,6 +6897,22 @@ static void rtl_tally_reset(struct r8152
        ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data);
  }
  
@@ -45,7 +45,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
  static void r8152b_init(struct r8152 *tp)
  {
        u32 ocp_data;
-@@ -6934,6 +6951,8 @@ static void r8152b_init(struct r8152 *tp
+@@ -6937,6 +6954,8 @@ static void r8152b_init(struct r8152 *tp
        ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
        ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
        ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
@@ -54,7 +54,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
  }
  
  static void r8153_init(struct r8152 *tp)
-@@ -7074,6 +7093,8 @@ static void r8153_init(struct r8152 *tp)
+@@ -7077,6 +7096,8 @@ static void r8153_init(struct r8152 *tp)
                tp->coalesce = COALESCE_SLOW;
                break;
        }
@@ -63,7 +63,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
  }
  
  static void r8153b_init(struct r8152 *tp)
-@@ -7156,6 +7177,8 @@ static void r8153b_init(struct r8152 *tp
+@@ -7159,6 +7180,8 @@ static void r8153b_init(struct r8152 *tp
        rtl_tally_reset(tp);
  
        tp->coalesce = 15000;   /* 15 us */
index 1c977c4d3a0e31213667a0f79cc3bb1be30e5e2b..b4403e82c8a62fd3c0b87442c4eb051ed43a2b12 100644 (file)
@@ -79,7 +79,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *,
                                                          u32));
  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *,
-@@ -2179,9 +2193,11 @@ static void __sk_free(struct sock *sk)
+@@ -2180,9 +2194,11 @@ static void __sk_free(struct sock *sk)
        if (likely(sk->sk_net_refcnt))
                sock_inuse_add(sock_net(sk), -1);
  
index 755c5c121872477859651dcdce4b212fb7547098..23de30f4923af128b93da5e1782c929332ab72fc 100644 (file)
@@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -4104,6 +4104,8 @@ static __net_initdata struct pernet_oper
+@@ -4105,6 +4105,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
@@ -341,7 +341,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -3031,11 +3031,13 @@ static const struct seq_operations fib_r
+@@ -3032,11 +3032,13 @@ static const struct seq_operations fib_r
  
  int __net_init fib_proc_init(struct net *net)
  {
@@ -357,7 +357,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        fib_triestat_seq_show, NULL))
                goto out2;
  
-@@ -3046,17 +3048,21 @@ int __net_init fib_proc_init(struct net
+@@ -3047,17 +3049,21 @@ int __net_init fib_proc_init(struct net
        return 0;
  
  out3:
index 85e9e4a1a3c52ab3044f9ea76ba213d7a466bb3a..0c47bc9d2c3c02c0b58da64d0af7ac9bff946556 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2998,7 +2998,7 @@ static inline int pskb_network_may_pull(
+@@ -3006,7 +3006,7 @@ static inline int pskb_network_may_pull(
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
index a3cfad2206e8af25cd5729d9217a116671b555de..e67b709fde5d83d128c6be7a1ecf7a48408c94de 100644 (file)
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2778,6 +2778,7 @@ static const char *const rtn_type_names[
+@@ -2779,6 +2779,7 @@ static const char *const rtn_type_names[
        [RTN_THROW] = "THROW",
        [RTN_NAT] = "NAT",
        [RTN_XRESOLVE] = "XRESOLVE",
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__refcnt       = ATOMIC_INIT(1),
-@@ -1036,6 +1050,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -1039,6 +1053,7 @@ static const int fib6_prop[RTN_MAX + 1]
        [RTN_BLACKHOLE] = -EINVAL,
        [RTN_UNREACHABLE] = -EHOSTUNREACH,
        [RTN_PROHIBIT]  = -EACCES,
@@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        [RTN_THROW]     = -EAGAIN,
        [RTN_NAT]       = -EINVAL,
        [RTN_XRESOLVE]  = -EINVAL,
-@@ -1071,6 +1086,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -1074,6 +1089,10 @@ static void ip6_rt_init_dst_reject(struc
                rt->dst.output = ip6_pkt_prohibit_out;
                rt->dst.input = ip6_pkt_prohibit;
                break;
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        case RTN_THROW:
        case RTN_UNREACHABLE:
        default:
-@@ -4540,6 +4559,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4543,6 +4562,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.
   */
-@@ -5033,7 +5063,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -5036,7 +5066,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)
-@@ -6287,6 +6318,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6290,6 +6321,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
-@@ -6298,6 +6331,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6301,6 +6334,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
        }
-@@ -6489,6 +6523,8 @@ static int __net_init ip6_route_net_init
+@@ -6492,6 +6526,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);
-@@ -6499,11 +6535,21 @@ static int __net_init ip6_route_net_init
+@@ -6502,11 +6538,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);
-@@ -6530,6 +6576,8 @@ out:
+@@ -6533,6 +6579,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:
-@@ -6549,6 +6597,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6552,6 +6600,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);
-@@ -6632,6 +6681,9 @@ void __init ip6_route_init_special_entri
+@@ -6635,6 +6684,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 400ec1577ece1f56566824de1235726735846d8b..062b3e82b50209e61154cf966577a59d124abc83 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -964,6 +964,7 @@ struct sk_buff {
+@@ -972,6 +972,7 @@ struct sk_buff {
  #ifdef CONFIG_IPV6_NDISC_NODETYPE
        __u8                    ndisc_nodetype:2;
  #endif
index c29aa970944517667c6688aba5c99fbfe42f1613..a48a993e2fb3ad5a51fdca7877041cfe4063080e 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3152,8 +3152,8 @@ static irqreturn_t mtk_handle_irq_rx(int
+@@ -3155,8 +3155,8 @@ static irqreturn_t mtk_handle_irq_rx(int
  
        eth->rx_events++;
        if (likely(napi_schedule_prep(&eth->rx_napi))) {
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
  
        return IRQ_HANDLED;
-@@ -3165,8 +3165,8 @@ static irqreturn_t mtk_handle_irq_tx(int
+@@ -3168,8 +3168,8 @@ static irqreturn_t mtk_handle_irq_tx(int
  
        eth->tx_events++;
        if (likely(napi_schedule_prep(&eth->tx_napi))) {
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
  
        return IRQ_HANDLED;
-@@ -4938,6 +4938,8 @@ static int mtk_probe(struct platform_dev
+@@ -4941,6 +4941,8 @@ static int mtk_probe(struct platform_dev
         * for NAPI to work
         */
        init_dummy_netdev(&eth->dummy_dev);
index bd883502d3f543bae84d5f619793848f7e354a8e..29cbcad699a1643cfa7776a2419c8d6ad9f2adbe 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        switch (speed) {
        case SPEED_2500:
        case SPEED_1000:
-@@ -3345,6 +3346,9 @@ found:
+@@ -3348,6 +3349,9 @@ found:
        if (dp->index >= MTK_QDMA_NUM_QUEUES)
                return NOTIFY_DONE;
  
index 500fb550ba8da24c6fca6e71bbf5cf19f6438e74..bb760c1a6971d2c7ccad1f474c8f33fa5659f2ab 100644 (file)
@@ -478,7 +478,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  static const struct phylink_mac_ops mtk_phylink_ops = {
        .validate = phylink_generic_validate,
        .mac_select_pcs = mtk_mac_select_pcs,
-@@ -4613,8 +4727,21 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4616,8 +4730,21 @@ static int mtk_add_mac(struct mtk_eth *e
                phy_interface_zero(mac->phylink_config.supported_interfaces);
                __set_bit(PHY_INTERFACE_MODE_INTERNAL,
                          mac->phylink_config.supported_interfaces);
@@ -500,7 +500,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        phylink = phylink_create(&mac->phylink_config,
                                 of_fwnode_handle(mac->of_node),
                                 phy_mode, &mtk_phylink_ops);
-@@ -4807,6 +4934,13 @@ static int mtk_probe(struct platform_dev
+@@ -4810,6 +4937,13 @@ static int mtk_probe(struct platform_dev
  
                if (err)
                        return err;
index 189ece1ca7aac05280e290417819acb72c91bf69..a28394f629d0f655b376ff1aab8483d83a8199eb 100644 (file)
@@ -52,7 +52,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                return 0;
 --- a/drivers/net/phy/phylink.c
 +++ b/drivers/net/phy/phylink.c
-@@ -187,6 +187,7 @@ static int phylink_interface_max_speed(p
+@@ -192,6 +192,7 @@ static int phylink_interface_max_speed(p
        case PHY_INTERFACE_MODE_RGMII_RXID:
        case PHY_INTERFACE_MODE_RGMII_ID:
        case PHY_INTERFACE_MODE_RGMII:
@@ -60,7 +60,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        case PHY_INTERFACE_MODE_QSGMII:
        case PHY_INTERFACE_MODE_QUSGMII:
        case PHY_INTERFACE_MODE_SGMII:
-@@ -448,6 +449,7 @@ unsigned long phylink_get_capabilities(p
+@@ -453,6 +454,7 @@ unsigned long phylink_get_capabilities(p
        case PHY_INTERFACE_MODE_RGMII_RXID:
        case PHY_INTERFACE_MODE_RGMII_ID:
        case PHY_INTERFACE_MODE_RGMII:
@@ -68,7 +68,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        case PHY_INTERFACE_MODE_QSGMII:
        case PHY_INTERFACE_MODE_QUSGMII:
        case PHY_INTERFACE_MODE_SGMII:
-@@ -814,6 +816,7 @@ static int phylink_parse_mode(struct phy
+@@ -819,6 +821,7 @@ static int phylink_parse_mode(struct phy
  
                switch (pl->link_config.interface) {
                case PHY_INTERFACE_MODE_SGMII:
index b3d4ed9085efa3a663329b1906ed5619b3a59db3..8f296a6f7b701b2f7212472021bfb7071c7d6851 100644 (file)
@@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
 +#endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -4580,6 +4580,9 @@ enum skb_ext_id {
+@@ -4588,6 +4588,9 @@ enum skb_ext_id {
  #if IS_ENABLED(CONFIG_MCTP_FLOWS)
        SKB_EXT_MCTP,
  #endif
@@ -136,7 +136,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
  #include <net/dst.h>
  #include <net/sock.h>
  #include <net/checksum.h>
-@@ -4510,6 +4514,9 @@ static const u8 skb_ext_type_len[] = {
+@@ -4515,6 +4519,9 @@ static const u8 skb_ext_type_len[] = {
  #if IS_ENABLED(CONFIG_MCTP_FLOWS)
        [SKB_EXT_MCTP] = SKB_EXT_CHUNKSIZEOF(struct mctp_flow),
  #endif
@@ -146,7 +146,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
  };
  
  static __always_inline unsigned int skb_ext_total_length(void)
-@@ -4530,6 +4537,9 @@ static __always_inline unsigned int skb_
+@@ -4535,6 +4542,9 @@ static __always_inline unsigned int skb_
  #if IS_ENABLED(CONFIG_MCTP_FLOWS)
                skb_ext_type_len[SKB_EXT_MCTP] +
  #endif
index 70596f3c229954cf5e1b0c01c67256e08fd267f5..27bdebdb93bf1c8fded3db066c72eb3370cc3004 100644 (file)
@@ -21,7 +21,7 @@ Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
 
 --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
 +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
-@@ -591,6 +591,54 @@
+@@ -594,6 +594,54 @@
                        status = "disabled";
                };
  
index 136c15a678ef2c1e4324149dbb6e6f3c86f4c763..e7203a3ac99ecdf3efa84e7cd6e1f7d0e9bfb4c7 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Robert Marko <robert.marko@sartura.hr>
 
 --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
 +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
-@@ -591,6 +591,82 @@
+@@ -594,6 +594,82 @@
                        status = "disabled";
                };
  
index ddfedcf5af106db32e04be567e13caf1f68fd284..92fb8a6a02271bee95399e76fa90a81d8d3e7788 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Robert Marko <robert.marko@sartura.hr>
  
  / {
        #address-cells = <1>;
-@@ -724,22 +725,38 @@
+@@ -727,22 +728,38 @@
  
                        ethphy0: ethernet-phy@0 {
                                reg = <0>;
diff --git a/target/linux/ipq806x/patches-6.1/140-v6.5-hwspinlock-qcom-add-missing-regmap-config-for-SFPB-M.patch b/target/linux/ipq806x/patches-6.1/140-v6.5-hwspinlock-qcom-add-missing-regmap-config-for-SFPB-M.patch
deleted file mode 100644 (file)
index faa9044..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From 23316be8a9d450f33a21f1efe7d89570becbec58 Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth@gmail.com>
-Date: Sun, 16 Jul 2023 04:28:04 +0200
-Subject: [PATCH] hwspinlock: qcom: add missing regmap config for SFPB MMIO
- implementation
-
-Commit 5d4753f741d8 ("hwspinlock: qcom: add support for MMIO on older
-SoCs") introduced and made regmap_config mandatory in the of_data struct
-but didn't add the regmap_config for sfpb based devices.
-
-SFPB based devices can both use the legacy syscon way to probe or the
-new MMIO way and currently device that use the MMIO way are broken as
-they lack the definition of the now required regmap_config and always
-return -EINVAL (and indirectly makes fail probing everything that
-depends on it, smem, nandc with smem-parser...)
-
-Fix this by correctly adding the missing regmap_config and restore
-function of hwspinlock on SFPB based devices with MMIO implementation.
-
-Cc: stable@vger.kernel.org
-Fixes: 5d4753f741d8 ("hwspinlock: qcom: add support for MMIO on older SoCs")
-Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
-Link: https://lore.kernel.org/r/20230716022804.21239-1-ansuelsmth@gmail.com
-Signed-off-by: Bjorn Andersson <andersson@kernel.org>
----
- drivers/hwspinlock/qcom_hwspinlock.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
---- a/drivers/hwspinlock/qcom_hwspinlock.c
-+++ b/drivers/hwspinlock/qcom_hwspinlock.c
-@@ -69,9 +69,18 @@ static const struct hwspinlock_ops qcom_
-       .unlock         = qcom_hwspinlock_unlock,
- };
-+static const struct regmap_config sfpb_mutex_config = {
-+      .reg_bits               = 32,
-+      .reg_stride             = 4,
-+      .val_bits               = 32,
-+      .max_register           = 0x100,
-+      .fast_io                = true,
-+};
-+
- static const struct qcom_hwspinlock_of_data of_sfpb_mutex = {
-       .offset = 0x4,
-       .stride = 0x4,
-+      .regmap_config = &sfpb_mutex_config,
- };
- static const struct regmap_config tcsr_msm8226_mutex_config = {
index 3bc55b8cfc0742bdff57449b8a98234f89b5f2c2..5b8dd170c59ffb501038d90ba0cbfc884dc53373 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
-@@ -1348,6 +1348,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
+@@ -1352,6 +1352,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
        sun8i-a83t-cubietruck-plus.dtb \
        sun8i-a83t-tbs-a711.dtb \
        sun8i-h2-plus-bananapi-m2-zero.dtb \