[PATCH 2/2] x86: topology: simplify topo_unit_count()

Yury Norov posted 2 patches 2 months, 2 weeks ago
[PATCH 2/2] x86: topology: simplify topo_unit_count()
Posted by Yury Norov 2 months, 2 weeks ago
From: Yury Norov (NVIDIA) <yury.norov@gmail.com>

Switch the function to using bitmap_weight_from(), and make it (almost)
a one-liner.

Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>
---
 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