[PATCH 2/2] x86: topology: simplify topo_unit_count()
From: Yury Norov
Date: Sat Jul 19 2025 - 21:42:22 EST
From: Yury Norov (NVIDIA) <yury.norov@xxxxxxxxx>
Switch the function to using bitmap_weight_from(), and make it (almost)
a one-liner.
Signed-off-by: Yury Norov (NVIDIA) <yury.norov@xxxxxxxxx>
---
arch/x86/kernel/cpu/topology.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/arch/x86/kernel/cpu/topology.c b/arch/x86/kernel/cpu/topology.c
index e35ccdc84910..db19c5384f92 100644
--- a/arch/x86/kernel/cpu/topology.c
+++ b/arch/x86/kernel/cpu/topology.c
@@ -208,15 +208,10 @@ static __init bool check_for_real_bsp(u32 apic_id)
static unsigned int topo_unit_count(u32 lvlid, enum x86_topology_domains at_level,
unsigned long *map)
{
- unsigned int id, end, cnt = 0;
-
/* Calculate the exclusive end */
- end = lvlid + (1U << x86_topo_system.dom_shifts[at_level]);
+ unsigned int end = lvlid + (1U << x86_topo_system.dom_shifts[at_level]);
- /* Unfortunately there is no bitmap_weight_range() */
- for (id = find_next_bit(map, end, lvlid); id < end; id = find_next_bit(map, end, ++id))
- cnt++;
- return cnt;
+ return bitmap_weight_from(map, lvlid, end);
}
static __init void topo_register_apic(u32 apic_id, u32 acpi_id, bool present)
--
2.43.0