[PATCH 2/2] x86/MCE: adjust x86_mc_get_cpu_info()

Jan Beulich posted 2 patches 6 months, 4 weeks ago
[PATCH 2/2] x86/MCE: adjust x86_mc_get_cpu_info()
Posted by Jan Beulich 6 months, 4 weeks ago
Move logic independent of c->apicid's initialization status out of
the if/else, leveraging that cpu_data[] now doesn't start out zero-
initialized. Constify c and have it have an initializer.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -992,21 +992,14 @@ void x86_mc_get_cpu_info(unsigned cpu, u
                          unsigned *ncores, unsigned *ncores_active,
                          unsigned *nthreads)
 {
-    struct cpuinfo_x86 *c;
+    const struct cpuinfo_x86 *c = &cpu_data[cpu];
 
     *apicid = cpu_physical_id(cpu);
-    c = &cpu_data[cpu];
     if ( c->apicid == BAD_APICID )
     {
         *chipid = cpu;
         *coreid = 0;
         *threadid = 0;
-        if ( ncores != NULL )
-            *ncores = 1;
-        if ( ncores_active != NULL )
-            *ncores_active = 1;
-        if ( nthreads != NULL )
-            *nthreads = 1;
     }
     else
     {
@@ -1016,13 +1009,16 @@ void x86_mc_get_cpu_info(unsigned cpu, u
         else
             *coreid = 0;
         *threadid = c->apicid & ((1 << (c->x86_num_siblings - 1)) - 1);
-        if ( ncores != NULL )
-            *ncores = c->x86_max_cores;
-        if ( ncores_active != NULL )
-            *ncores_active = c->booted_cores;
-        if ( nthreads != NULL )
-            *nthreads = c->x86_num_siblings;
     }
+
+    if ( ncores )
+        *ncores = c->x86_max_cores ?: 1;
+
+    if ( ncores_active )
+        *ncores_active = c->booted_cores ?: 1;
+
+    if ( nthreads )
+        *nthreads = c->x86_num_siblings ?: 1;
 }
 
 #define INTPOSE_NENT 50