public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Bruno Faccini <bfaccini@nvidia.com>,
	David Hildenbrand <david@redhat.com>,
	John Hubbard <jhubbard@nvidia.com>,
	"Mike Rapoport (Microsoft)" <rppt@kernel.org>,
	Zi Yan <ziy@nvidia.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 131/139] mm/fake-numa: allow later numa node hotplug
Date: Wed, 21 Jan 2026 19:16:19 +0100	[thread overview]
Message-ID: <20260121181416.167077132@linuxfoundation.org> (raw)
In-Reply-To: <20260121181411.452263583@linuxfoundation.org>

6.12-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Bruno Faccini <bfaccini@nvidia.com>

[ Upstream commit 63db8170bf34ce9e0763f87d993cf9b4c9002b09 ]

Current fake-numa implementation prevents new Numa nodes to be later
hot-plugged by drivers.  A common symptom of this limitation is the "node
<X> was absent from the node_possible_map" message by associated warning
in mm/memory_hotplug.c: add_memory_resource().

This comes from the lack of remapping in both pxm_to_node_map[] and
node_to_pxm_map[] tables to take fake-numa nodes into account and thus
triggers collisions with original and physical nodes only-mapping that had
been determined from BIOS tables.

This patch fixes this by doing the necessary node-ids translation in both
pxm_to_node_map[]/node_to_pxm_map[] tables.  node_distance[] table has
also been fixed accordingly.

Details:

When trying to use fake-numa feature on our system where new Numa nodes
are being "hot-plugged" upon driver load, this fails with the following
type of message and warning with stack :

node 8 was absent from the node_possible_map WARNING: CPU: 61 PID: 4259 at
mm/memory_hotplug.c:1506 add_memory_resource+0x3dc/0x418

This issue prevents the use of the fake-NUMA debug feature with the
system's full configuration, when it has proven to be sometimes extremely
useful for performance testing of multi-tasked, memory-bound applications,
as it enables better isolation of processes/ranks compared to fat NUMA
nodes.

Usual numactl output after driver has “hot-plugged”/unveiled some
new Numa nodes with and without memory :
$ numactl --hardware
available: 9 nodes (0-8)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71
node 0 size: 490037 MB
node 0 free: 484432 MB
node 1 cpus:
node 1 size: 97280 MB
node 1 free: 97279 MB
node 2 cpus:
node 2 size: 0 MB
node 2 free: 0 MB
node 3 cpus:
node 3 size: 0 MB
node 3 free: 0 MB
node 4 cpus:
node 4 size: 0 MB
node 4 free: 0 MB
node 5 cpus:
node 5 size: 0 MB
node 5 free: 0 MB
node 6 cpus:
node 6 size: 0 MB
node 6 free: 0 MB
node 7 cpus:
node 7 size: 0 MB
node 7 free: 0 MB
node 8 cpus:
node 8 size: 0 MB
node 8 free: 0 MB
node distances:
node   0   1   2   3   4   5   6   7   8
  0:  10  80  80  80  80  80  80  80  80
  1:  80  10  255  255  255  255  255  255  255
  2:  80  255  10  255  255  255  255  255  255
  3:  80  255  255  10  255  255  255  255  255
  4:  80  255  255  255  10  255  255  255  255
  5:  80  255  255  255  255  10  255  255  255
  6:  80  255  255  255  255  255  10  255  255
  7:  80  255  255  255  255  255  255  10  255
  8:  80  255  255  255  255  255  255  255  10

With recent M.Rapoport set of fake-numa patches in mm-everything
and using numa=fake=4 boot parameter :
$ numactl --hardware
available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71
node 0 size: 122518 MB
node 0 free: 117141 MB
node 1 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71
node 1 size: 219911 MB
node 1 free: 219751 MB
node 2 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71
node 2 size: 122599 MB
node 2 free: 122541 MB
node 3 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71
node 3 size: 122479 MB
node 3 free: 122408 MB
node distances:
node   0   1   2   3
  0:  10  10  10  10
  1:  10  10  10  10
  2:  10  10  10  10
  3:  10  10  10  10

With recent M.Rapoport set of fake-numa patches in mm-everything,
this patch on top, using numa=fake=4 boot parameter :
# numactl —hardware
available: 12 nodes (0-11)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71
node 0 size: 122518 MB
node 0 free: 116429 MB
node 1 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71
node 1 size: 122631 MB
node 1 free: 122576 MB
node 2 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71
node 2 size: 122599 MB
node 2 free: 122544 MB
node 3 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71
node 3 size: 122479 MB
node 3 free: 122419 MB
node 4 cpus:
node 4 size: 97280 MB
node 4 free: 97279 MB
node 5 cpus:
node 5 size: 0 MB
node 5 free: 0 MB
node 6 cpus:
node 6 size: 0 MB
node 6 free: 0 MB
node 7 cpus:
node 7 size: 0 MB
node 7 free: 0 MB
node 8 cpus:
node 8 size: 0 MB
node 8 free: 0 MB
node 9 cpus:
node 9 size: 0 MB
node 9 free: 0 MB
node 10 cpus:
node 10 size: 0 MB
node 10 free: 0 MB
node 11 cpus:
node 11 size: 0 MB
node 11 free: 0 MB
node distances:
node   0   1   2   3   4   5   6   7   8   9  10  11
  0:  10  10  10  10  80  80  80  80  80  80  80  80
  1:  10  10  10  10  80  80  80  80  80  80  80  80
  2:  10  10  10  10  80  80  80  80  80  80  80  80
  3:  10  10  10  10  80  80  80  80  80  80  80  80
  4:  80  80  80  80  10  255  255  255  255  255  255  255
  5:  80  80  80  80  255  10  255  255  255  255  255  255
  6:  80  80  80  80  255  255  10  255  255  255  255  255
  7:  80  80  80  80  255  255  255  10  255  255  255  255
  8:  80  80  80  80  255  255  255  255  10  255  255  255
  9:  80  80  80  80  255  255  255  255  255  10  255  255
 10:  80  80  80  80  255  255  255  255  255  255  10  255
 11:  80  80  80  80  255  255  255  255  255  255  255  10

Link: https://lkml.kernel.org/r/20250106120659.359610-2-bfaccini@nvidia.com
Signed-off-by: Bruno Faccini <bfaccini@nvidia.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Mike Rapoport (Microsoft) <rppt@kernel.org>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Stable-dep-of: f46c26f1bcd9 ("mm: numa,memblock: include <asm/numa.h> for 'numa_nodes_parsed'")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/acpi/numa/srat.c     |   86 +++++++++++++++++++++++++++++++++++++++++++
 include/acpi/acpi_numa.h     |    5 ++
 include/linux/numa_memblks.h |    3 +
 mm/numa_emulation.c          |   45 +++++++++++++++++++---
 mm/numa_memblks.c            |    2 -
 5 files changed, 133 insertions(+), 8 deletions(-)

--- a/drivers/acpi/numa/srat.c
+++ b/drivers/acpi/numa/srat.c
@@ -81,6 +81,92 @@ int acpi_map_pxm_to_node(int pxm)
 }
 EXPORT_SYMBOL(acpi_map_pxm_to_node);
 
+#ifdef CONFIG_NUMA_EMU
+/*
+ * Take max_nid - 1 fake-numa nodes into account in both
+ * pxm_to_node_map()/node_to_pxm_map[] tables.
+ */
+int __init fix_pxm_node_maps(int max_nid)
+{
+	static int pxm_to_node_map_copy[MAX_PXM_DOMAINS] __initdata
+			= { [0 ... MAX_PXM_DOMAINS - 1] = NUMA_NO_NODE };
+	static int node_to_pxm_map_copy[MAX_NUMNODES] __initdata
+			= { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };
+	int i, j, index = -1, count = 0;
+	nodemask_t nodes_to_enable;
+
+	if (numa_off || srat_disabled())
+		return -1;
+
+	/* find fake nodes PXM mapping */
+	for (i = 0; i < MAX_NUMNODES; i++) {
+		if (node_to_pxm_map[i] != PXM_INVAL) {
+			for (j = 0; j <= max_nid; j++) {
+				if ((emu_nid_to_phys[j] == i) &&
+				    WARN(node_to_pxm_map_copy[j] != PXM_INVAL,
+					 "Node %d is already binded to PXM %d\n",
+					 j, node_to_pxm_map_copy[j]))
+					return -1;
+				if (emu_nid_to_phys[j] == i) {
+					node_to_pxm_map_copy[j] =
+						node_to_pxm_map[i];
+					if (j > index)
+						index = j;
+					count++;
+				}
+			}
+		}
+	}
+	if (WARN(index != max_nid, "%d max nid  when expected %d\n",
+		      index, max_nid))
+		return -1;
+
+	nodes_clear(nodes_to_enable);
+
+	/* map phys nodes not used for fake nodes */
+	for (i = 0; i < MAX_NUMNODES; i++) {
+		if (node_to_pxm_map[i] != PXM_INVAL) {
+			for (j = 0; j <= max_nid; j++)
+				if (emu_nid_to_phys[j] == i)
+					break;
+			/* fake nodes PXM mapping has been done */
+			if (j <= max_nid)
+				continue;
+			/* find first hole */
+			for (j = 0;
+			     j < MAX_NUMNODES &&
+				 node_to_pxm_map_copy[j] != PXM_INVAL;
+			     j++)
+			;
+			if (WARN(j == MAX_NUMNODES,
+			    "Number of nodes exceeds MAX_NUMNODES\n"))
+				return -1;
+			node_to_pxm_map_copy[j] = node_to_pxm_map[i];
+			node_set(j, nodes_to_enable);
+			count++;
+		}
+	}
+
+	/* creating reverse mapping in pxm_to_node_map[] */
+	for (i = 0; i < MAX_NUMNODES; i++)
+		if (node_to_pxm_map_copy[i] != PXM_INVAL &&
+		    pxm_to_node_map_copy[node_to_pxm_map_copy[i]] == NUMA_NO_NODE)
+			pxm_to_node_map_copy[node_to_pxm_map_copy[i]] = i;
+
+	/* overwrite with new mapping */
+	for (i = 0; i < MAX_NUMNODES; i++) {
+		node_to_pxm_map[i] = node_to_pxm_map_copy[i];
+		pxm_to_node_map[i] = pxm_to_node_map_copy[i];
+	}
+
+	/* enable other nodes found in PXM for hotplug */
+	nodes_or(numa_nodes_parsed, nodes_to_enable, numa_nodes_parsed);
+
+	pr_debug("found %d total number of nodes\n", count);
+	return 0;
+}
+#endif
+
 static void __init
 acpi_table_print_srat_entry(struct acpi_subtable_header *header)
 {
--- a/include/acpi/acpi_numa.h
+++ b/include/acpi/acpi_numa.h
@@ -17,11 +17,16 @@ extern int node_to_pxm(int);
 extern int acpi_map_pxm_to_node(int);
 extern unsigned char acpi_srat_revision;
 extern void disable_srat(void);
+extern int fix_pxm_node_maps(int max_nid);
 
 extern void bad_srat(void);
 extern int srat_disabled(void);
 
 #else				/* CONFIG_ACPI_NUMA */
+static inline int fix_pxm_node_maps(int max_nid)
+{
+	return 0;
+}
 static inline void disable_srat(void)
 {
 }
--- a/include/linux/numa_memblks.h
+++ b/include/linux/numa_memblks.h
@@ -29,7 +29,10 @@ int __init numa_cleanup_meminfo(struct n
 int __init numa_memblks_init(int (*init_func)(void),
 			     bool memblock_force_top_down);
 
+extern int numa_distance_cnt;
+
 #ifdef CONFIG_NUMA_EMU
+extern int emu_nid_to_phys[MAX_NUMNODES];
 int numa_emu_cmdline(char *str);
 void __init numa_emu_update_cpu_to_node(int *emu_nid_to_phys,
 					unsigned int nr_emu_nids);
--- a/mm/numa_emulation.c
+++ b/mm/numa_emulation.c
@@ -8,11 +8,12 @@
 #include <linux/memblock.h>
 #include <linux/numa_memblks.h>
 #include <asm/numa.h>
+#include <acpi/acpi_numa.h>
 
 #define FAKE_NODE_MIN_SIZE	((u64)32 << 20)
 #define FAKE_NODE_MIN_HASH_MASK	(~(FAKE_NODE_MIN_SIZE - 1UL))
 
-static int emu_nid_to_phys[MAX_NUMNODES];
+int emu_nid_to_phys[MAX_NUMNODES];
 static char *emu_cmdline __initdata;
 
 int __init numa_emu_cmdline(char *str)
@@ -379,6 +380,7 @@ void __init numa_emulation(struct numa_m
 	size_t phys_size = numa_dist_cnt * numa_dist_cnt * sizeof(phys_dist[0]);
 	int max_emu_nid, dfl_phys_nid;
 	int i, j, ret;
+	nodemask_t physnode_mask = numa_nodes_parsed;
 
 	if (!emu_cmdline)
 		goto no_emu;
@@ -395,7 +397,6 @@ void __init numa_emulation(struct numa_m
 	 * split the system RAM into N fake nodes.
 	 */
 	if (strchr(emu_cmdline, 'U')) {
-		nodemask_t physnode_mask = numa_nodes_parsed;
 		unsigned long n;
 		int nid = 0;
 
@@ -465,9 +466,6 @@ void __init numa_emulation(struct numa_m
 	 */
 	max_emu_nid = setup_emu2phys_nid(&dfl_phys_nid);
 
-	/* commit */
-	*numa_meminfo = ei;
-
 	/* Make sure numa_nodes_parsed only contains emulated nodes */
 	nodes_clear(numa_nodes_parsed);
 	for (i = 0; i < ARRAY_SIZE(ei.blk); i++)
@@ -475,10 +473,21 @@ void __init numa_emulation(struct numa_m
 		    ei.blk[i].nid != NUMA_NO_NODE)
 			node_set(ei.blk[i].nid, numa_nodes_parsed);
 
-	numa_emu_update_cpu_to_node(emu_nid_to_phys, ARRAY_SIZE(emu_nid_to_phys));
+	/* fix pxm_to_node_map[] and node_to_pxm_map[] to avoid collision
+	 * with faked numa nodes, particularly during later memory hotplug
+	 * handling, and also update numa_nodes_parsed accordingly.
+	 */
+	ret = fix_pxm_node_maps(max_emu_nid);
+	if (ret < 0)
+		goto no_emu;
+
+	/* commit */
+	*numa_meminfo = ei;
+
+	numa_emu_update_cpu_to_node(emu_nid_to_phys, max_emu_nid + 1);
 
 	/* make sure all emulated nodes are mapped to a physical node */
-	for (i = 0; i < ARRAY_SIZE(emu_nid_to_phys); i++)
+	for (i = 0; i < max_emu_nid + 1; i++)
 		if (emu_nid_to_phys[i] == NUMA_NO_NODE)
 			emu_nid_to_phys[i] = dfl_phys_nid;
 
@@ -501,12 +510,34 @@ void __init numa_emulation(struct numa_m
 			numa_set_distance(i, j, dist);
 		}
 	}
+	for (i = 0; i < numa_distance_cnt; i++) {
+		for (j = 0; j < numa_distance_cnt; j++) {
+			int physi, physj;
+			u8 dist;
+
+			/* distance between fake nodes is already ok */
+			if (emu_nid_to_phys[i] != NUMA_NO_NODE &&
+			    emu_nid_to_phys[j] != NUMA_NO_NODE)
+				continue;
+			if (emu_nid_to_phys[i] != NUMA_NO_NODE)
+				physi = emu_nid_to_phys[i];
+			else
+				physi = i - max_emu_nid;
+			if (emu_nid_to_phys[j] != NUMA_NO_NODE)
+				physj = emu_nid_to_phys[j];
+			else
+				physj = j - max_emu_nid;
+			dist = phys_dist[physi * numa_dist_cnt + physj];
+			numa_set_distance(i, j, dist);
+		}
+	}
 
 	/* free the copied physical distance table */
 	memblock_free(phys_dist, phys_size);
 	return;
 
 no_emu:
+	numa_nodes_parsed = physnode_mask;
 	/* No emulation.  Build identity emu_nid_to_phys[] for numa_add_cpu() */
 	for (i = 0; i < ARRAY_SIZE(emu_nid_to_phys); i++)
 		emu_nid_to_phys[i] = i;
--- a/mm/numa_memblks.c
+++ b/mm/numa_memblks.c
@@ -7,7 +7,7 @@
 #include <linux/numa.h>
 #include <linux/numa_memblks.h>
 
-static int numa_distance_cnt;
+int numa_distance_cnt;
 static u8 *numa_distance;
 
 nodemask_t numa_nodes_parsed __initdata;



  parent reply	other threads:[~2026-01-21 18:25 UTC|newest]

Thread overview: 151+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-21 18:14 [PATCH 6.12 000/139] 6.12.67-rc1 review Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 001/139] firmware: imx: scu-irq: Set mu_resource_id before get handle Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 002/139] efi/cper: Fix cper_bits_to_str buffer handling and return value Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 003/139] Revert "gfs2: Fix use of bio_chain" Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 004/139] x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1 Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 005/139] ASoC: codecs: wsa884x: fix codec initialisation Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 006/139] xfrm: Fix inner mode lookup in tunnel mode GSO segmentation Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 007/139] xfrm: set ipv4 no_pmtu_disc flag only on output sa when direction is set Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 008/139] pNFS: Fix a deadlock when returning a delegation during open() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 009/139] NFS: Fix a deadlock involving nfs_release_folio() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 010/139] pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 011/139] pnfs/blocklayout: Fix memory leak in bl_parse_scsi() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 012/139] drm/vmwgfx: Merge vmw_bo_release and vmw_bo_free functions Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 013/139] PM: EM: Fix incorrect description of the cost field in struct em_perf_state Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 014/139] can: etas_es58x: allow partial RX URB allocation to succeed Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 015/139] nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 016/139] btrfs: send: check for inline extents in range_is_hole_in_parent() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 017/139] net: bridge: annotate data-races around fdb->{updated,used} Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 018/139] ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 019/139] net: update netdev_lock_{type,name} Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 020/139] macvlan: fix possible UAF in macvlan_forward_source() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 021/139] ipv4: ip_gre: make ipgre_header() robust Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 022/139] vsock/test: add a final full barrier after run all tests Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 023/139] net/mlx5e: Fix crash on profile change rollback failure Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 024/139] net/mlx5e: Dont store mlx5e_priv in mlx5e_dev devlink priv Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 025/139] net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 026/139] net/mlx5e: Restore destroying state bit after profile cleanup Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 027/139] btrfs: factor out init_space_info() from create_space_info() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 028/139] btrfs: factor out check_removing_space_info() from btrfs_free_block_groups() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 029/139] btrfs: introduce btrfs_space_info sub-group Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 030/139] btrfs: fix memory leaks in create_space_info() error paths Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 031/139] net: octeon_ep_vf: fix free_irq dev_id mismatch in IRQ rollback Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 032/139] ALSA: hda/cirrus_scodec_test: Fix incorrect setup of gpiochip Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 033/139] net: hv_netvsc: reject RSS hash key programming without RX indirection table Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 034/139] ipv6: Fix use-after-free in inet6_addr_del() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 035/139] selftests: drv-net: fix RPS mask handling for high CPU numbers Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 036/139] net/sched: sch_qfq: do not free existing class in qfq_change_class() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 037/139] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 038/139] ASoC: tlv320adcx140: fix null pointer Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 039/139] ASoC: tlv320adcx140: fix word length Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 040/139] drm/amd/pm: fix smu overdrive data type wrong issue on smu 14.0.2 Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 041/139] mm: describe @flags parameter in memalloc_flags_save() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 042/139] textsearch: describe @list member in ts_ops search Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 043/139] mm, kfence: describe @slab parameter in __kfence_obj_info() Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 044/139] dmaengine: xilinx: xdma: Fix regmap max_register Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 045/139] dmaengine: tegra-adma: Fix use-after-free Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 046/139] dmaengine: xilinx_dma: Fix uninitialized addr_width when "xlnx,addrwidth" property is missing Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 047/139] phy: fsl-imx8mq-usb: Clear the PCS_TX_SWING_FULL field before using it Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 048/139] phy: phy-snps-eusb2: refactor constructs names Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 049/139] phy: drop probe registration printks Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 050/139] phy: qcom-qusb2: Fix NULL pointer dereference on early suspend Greg Kroah-Hartman
2026-01-21 18:14 ` [PATCH 6.12 051/139] phy: stm32-usphyc: Fix off by one in probe() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 052/139] phy: ti: da8xx-usb: Handle devm_pm_runtime_enable() errors Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 053/139] selftests/landlock: Fix TCP bind(AF_UNSPEC) test case Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 054/139] selftests/landlock: Remove invalid unix socket bind() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 055/139] phy: broadcom: ns-usb3: Fix Wvoid-pointer-to-enum-cast warning (again) Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 056/139] selftests/landlock: Properly close a file descriptor Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 057/139] dmaengine: omap-dma: fix dma_pool resource leak in error paths Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 058/139] i2c: qcom-geni: make sure I2C hub controllers cant use SE DMA Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 059/139] HID: usbhid: paper over wrong bNumDescriptor field Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 060/139] bridge: mcast: Fix use-after-free during router port configuration Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 061/139] ASoC: codecs: wsa883x: fix unnecessary initialisation Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 062/139] drm/amd/display: mark static functions noinline_for_stack Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 063/139] io_uring: move local task_work in exit cancel loop Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 064/139] scsi: core: Fix error handler encryption support Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 065/139] ALSA: pcm: Improve the fix for race of buffer access at PCM OSS layer Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 066/139] null_blk: fix kmemleak by releasing references to fault configfs items Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 067/139] can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 068/139] can: ctucanfd: fix SSP_SRC in cases when bit-rate is higher than 1 MBit Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 069/139] net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 070/139] xfs: Fix the return value of xfs_rtcopy_summary() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 071/139] lib/buildid: use __kernel_read() for sleepable context Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 072/139] x86/kaslr: Recognize all ZONE_DEVICE users as physaddr consumers Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 073/139] phy: rockchip: inno-usb2: fix communication disruption in gadget mode Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 074/139] phy: ti: gmii-sel: fix regmap leak on probe failure Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 075/139] phy: freescale: imx8m-pcie: assert phy reset during power on Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 076/139] phy: rockchip: inno-usb2: fix disconnection in gadget mode Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 077/139] phy: tegra: xusb: Explicitly configure HS_DISCON_LEVEL to 0x7 Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 078/139] usb: dwc3: Check for USB4 IP_NAME Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 079/139] usb: core: add USB_QUIRK_NO_BOS for devices that hang on BOS descriptor Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 080/139] USB: OHCI/UHCI: Add soft dependencies on ehci_platform Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 081/139] USB: serial: option: add Telit LE910 MBIM composition Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 082/139] USB: serial: ftdi_sio: add support for PICAXE AXE027 cable Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 083/139] nvme-pci: disable secondary temp for Wodposit WPBSNM8 Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 084/139] ASoC: codecs: wsa881x: fix unnecessary initialisation Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 085/139] ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 086/139] hrtimer: Fix softirq base check in update_needs_ipi() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 087/139] EDAC/x38: Fix a resource leak in x38_probe1() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 088/139] EDAC/i3200: Fix a resource leak in i3200_probe1() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 089/139] tcpm: allow looking for role_sw device in the main node Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 090/139] i2c: riic: Move suspend handling to NOIRQ phase Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 091/139] x86/resctrl: Add missing resctrl initialization for Hygon Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 092/139] x86/resctrl: Fix memory bandwidth counter width " Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 093/139] nvme: fix PCIe subsystem reset controller state transition Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 094/139] mm/zswap: fix error pointer free in zswap_cpu_comp_prepare() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 095/139] mm/page_alloc: make percpu_pagelist_high_fraction reads lock-free Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 096/139] mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 097/139] LoongArch: Fix PMU counter allocation for mixed-type event groups Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 098/139] drm/amd/display: Bump the HDMI clock to 340MHz Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 099/139] drm/amd: Clean up kfd node on surprise disconnect Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 100/139] drm/amdkfd: fix a memory leak in device_queue_manager_init() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 101/139] drm/nouveau/disp/nv50-: Set lock_core in curs507a_prepare Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 102/139] drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 103/139] drm/vmwgfx: Fix an error return check in vmw_compat_shader_add() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 104/139] LoongArch: dts: loongson-2k0500: Add default interrupt controller address cells Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 105/139] LoongArch: dts: loongson-2k1000: " Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 106/139] LoongArch: dts: loongson-2k1000: Fix i2c-gpio node names Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 107/139] LoongArch: dts: loongson-2k2000: Add default interrupt controller address cells Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 108/139] dmaengine: apple-admac: Add "apple,t8103-admac" compatible Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 109/139] dmaengine: at_hdmac: fix device leak on of_dma_xlate() Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 110/139] dmaengine: bcm-sba-raid: fix device leak on probe Greg Kroah-Hartman
2026-01-21 18:15 ` [PATCH 6.12 111/139] dmaengine: dw: dmamux: fix OF node leak on route allocation failure Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 112/139] dmaengine: idxd: fix device leaks on compat bind and unbind Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 113/139] dmaengine: lpc18xx-dmamux: fix device leak on route allocation Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 114/139] dmaengine: lpc32xx-dmamux: " Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 115/139] dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config() Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 116/139] dmaengine: sh: rz-dmac: Fix rz_dmac_terminate_all() Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 117/139] dmaengine: stm32: dmamux: fix device leak on route allocation Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 118/139] dmaengine: stm32: dmamux: fix OF node leak on route allocation failure Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 119/139] dmaengine: ti: dma-crossbar: fix device leak on dra7x route allocation Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 120/139] dmaengine: ti: dma-crossbar: fix device leak on am335x " Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 121/139] dmaengine: ti: k3-udma: fix device leak on udma lookup Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 122/139] HID: intel-ish-hid: Use dedicated unbound workqueues to prevent resume blocking Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 123/139] HID: intel-ish-hid: Fix -Wcast-function-type-strict in devm_ishtp_alloc_workqueue() Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 124/139] btrfs: fix deadlock in wait_current_trans() due to ignored transaction type Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 125/139] xfs: set max_agbno to allow sparse alloc of last full inode chunk Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 126/139] mm/damon/sysfs-scheme: cleanup quotas subdirs on scheme dir setup failure Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 127/139] mm/damon/sysfs-scheme: cleanup access_pattern " Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 128/139] bpf: Reject narrower access to pointer ctx fields Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 129/139] selftests/bpf: Test invalid narrower ctx load Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 130/139] mm: kmsan: fix poisoning of high-order non-compound pages Greg Kroah-Hartman
2026-01-21 18:16 ` Greg Kroah-Hartman [this message]
2026-01-21 18:16 ` [PATCH 6.12 132/139] mm: numa,memblock: include <asm/numa.h> for numa_nodes_parsed Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 133/139] phy: phy-rockchip-inno-usb2: Use dev_err_probe() in the probe path Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 134/139] phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe() Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 135/139] dmaengine: fsl-edma: Fix clk leak on alloc_chan_resources failure Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 136/139] mm/page_alloc/vmstat: simplify refresh_cpu_vm_stats change detection Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 137/139] mm/page_alloc: batch page freeing in decay_pcp_high Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 138/139] mm/page_alloc: prevent pcp corruption with SMP=n Greg Kroah-Hartman
2026-01-21 18:16 ` [PATCH 6.12 139/139] mm/fake-numa: handle cases with no SRAT info Greg Kroah-Hartman
2026-01-21 23:37 ` [PATCH 6.12 000/139] 6.12.67-rc1 review Shuah Khan
2026-01-21 23:43 ` Florian Fainelli
2026-01-22  5:40 ` Brett A C Sheffield
2026-01-22  7:35 ` Shung-Hsi Yu
2026-01-22  8:42 ` Jon Hunter
2026-01-22 12:23 ` Ron Economos
2026-01-22 12:58 ` Francesco Dolcini
2026-01-22 13:29 ` Mark Brown
2026-01-22 15:06 ` Brett Mastbergen
2026-01-22 15:09 ` Peter Schneider
2026-01-23 21:41 ` Miguel Ojeda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260121181416.167077132@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=bfaccini@nvidia.com \
    --cc=david@redhat.com \
    --cc=jhubbard@nvidia.com \
    --cc=patches@lists.linux.dev \
    --cc=rppt@kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=ziy@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox