Message ID | 20240801060826.559858-24-rppt@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: introduce numa_memblks | expand |
On Thu, 1 Aug 2024 09:08:23 +0300 Mike Rapoport <rppt@kernel.org> wrote: > From: "Mike Rapoport (Microsoft)" <rppt@kernel.org> > > Currently of_numa_parse_memory_nodes() returns 0 if no "memory" node in > device tree contains "numa-node-id" property. This makes of_numa_init() > to return "success" despite no NUMA nodes were actually parsed and set > up. > > arch_numa workarounds this by returning an error if numa_nodes_parsed is > empty. > > numa_memblks however would WARN() in such case and since it will be used > by arch_numa shortly, such warning is not desirable. > > Make sure of_numa_init() returns -EINVAL when no NUMA node information > was found in the device tree. > > Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
On 01.08.24 08:08, Mike Rapoport wrote: > From: "Mike Rapoport (Microsoft)" <rppt@kernel.org> > > Currently of_numa_parse_memory_nodes() returns 0 if no "memory" node in > device tree contains "numa-node-id" property. This makes of_numa_init() > to return "success" despite no NUMA nodes were actually parsed and set > up. > > arch_numa workarounds this by returning an error if numa_nodes_parsed is > empty. > > numa_memblks however would WARN() in such case and since it will be used > by arch_numa shortly, such warning is not desirable. > > Make sure of_numa_init() returns -EINVAL when no NUMA node information > was found in the device tree. > > Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> > --- Acked-by: David Hildenbrand <david@redhat.com>
diff --git a/drivers/of/of_numa.c b/drivers/of/of_numa.c index 838747e319a2..2ec20886d176 100644 --- a/drivers/of/of_numa.c +++ b/drivers/of/of_numa.c @@ -45,7 +45,7 @@ static int __init of_numa_parse_memory_nodes(void) struct device_node *np = NULL; struct resource rsrc; u32 nid; - int i, r; + int i, r = -EINVAL; for_each_node_by_type(np, "memory") { r = of_property_read_u32(np, "numa-node-id", &nid); @@ -72,7 +72,7 @@ static int __init of_numa_parse_memory_nodes(void) } } - return 0; + return r; } static int __init of_numa_parse_distance_map_v1(struct device_node *map)