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;
next prev 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.