Move the logic for updating the coregroup mask of a CPU to its own
function. This will help in reworking the updation of coregroup mask in
subsequent patch.

Cc: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>
Cc: LKML <linux-ker...@vger.kernel.org>
Cc: Michael Ellerman <m...@ellerman.id.au>
Cc: Nicholas Piggin <npig...@gmail.com>
Cc: Anton Blanchard <an...@ozlabs.org>
Cc: Oliver O'Halloran <ooh...@gmail.com>
Cc: Nathan Lynch <nath...@linux.ibm.com>
Cc: Michael Neuling <mi...@neuling.org>
Cc: Gautham R Shenoy <e...@linux.vnet.ibm.com>
Cc: Satheesh Rajendran <sathn...@linux.vnet.ibm.com>
Cc: Ingo Molnar <mi...@kernel.org>
Cc: Peter Zijlstra <pet...@infradead.org>
Cc: Valentin Schneider <valentin.schnei...@arm.com>
Signed-off-by: Srikar Dronamraju <sri...@linux.vnet.ibm.com>
---
 arch/powerpc/kernel/smp.c | 32 +++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 17e90c2414af..b48ae4e306d3 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -1337,6 +1337,23 @@ static inline void add_cpu_to_smallcore_masks(int cpu)
        }
 }
 
+static void update_coregroup_mask(int cpu)
+{
+       int first_thread = cpu_first_thread_sibling(cpu);
+       int coregroup_id = cpu_to_coregroup_id(cpu);
+       int i;
+
+       cpumask_set_cpu(cpu, cpu_coregroup_mask(cpu));
+       for_each_cpu_and(i, cpu_online_mask, cpu_cpu_mask(cpu)) {
+               int fcpu = cpu_first_thread_sibling(i);
+
+               if (fcpu == first_thread)
+                       set_cpus_related(cpu, i, cpu_coregroup_mask);
+               else if (coregroup_id == cpu_to_coregroup_id(i))
+                       set_cpus_related(cpu, i, cpu_coregroup_mask);
+       }
+}
+
 static void add_cpu_to_masks(int cpu)
 {
        int first_thread = cpu_first_thread_sibling(cpu);
@@ -1355,19 +1372,8 @@ static void add_cpu_to_masks(int cpu)
        add_cpu_to_smallcore_masks(cpu);
        update_mask_by_l2(cpu);
 
-       if (has_coregroup_support()) {
-               int coregroup_id = cpu_to_coregroup_id(cpu);
-
-               cpumask_set_cpu(cpu, cpu_coregroup_mask(cpu));
-               for_each_cpu_and(i, cpu_online_mask, cpu_cpu_mask(cpu)) {
-                       int fcpu = cpu_first_thread_sibling(i);
-
-                       if (fcpu == first_thread)
-                               set_cpus_related(cpu, i, cpu_coregroup_mask);
-                       else if (coregroup_id == cpu_to_coregroup_id(i))
-                               set_cpus_related(cpu, i, cpu_coregroup_mask);
-               }
-       }
+       if (has_coregroup_support())
+               update_coregroup_mask(cpu);
 }
 
 /* Activate a secondary processor. */
-- 
2.17.1

Reply via email to