@@ -47,6 +47,7 @@ static void cpuinfo_x86_count_objects(
4747 uint32_t linux_processors_count ,
4848 const struct cpuinfo_x86_linux_processor linux_processors [restrict static linux_processors_count ],
4949 const struct cpuinfo_x86_processor processor [restrict static 1 ],
50+ uint32_t valid_processor_mask ,
5051 uint32_t llc_apic_bits ,
5152 uint32_t cores_count_ptr [restrict static 1 ],
5253 uint32_t clusters_count_ptr [restrict static 1 ],
@@ -69,7 +70,7 @@ static void cpuinfo_x86_count_objects(
6970 uint32_t last_l1i_id = UINT32_MAX , last_l1d_id = UINT32_MAX ;
7071 uint32_t last_l2_id = UINT32_MAX , last_l3_id = UINT32_MAX , last_l4_id = UINT32_MAX ;
7172 for (uint32_t i = 0 ; i < linux_processors_count ; i ++ ) {
72- if (bitmask_all (linux_processors [i ].flags , CPUINFO_LINUX_FLAG_VALID )) {
73+ if (bitmask_all (linux_processors [i ].flags , valid_processor_mask )) {
7374 const uint32_t apic_id = linux_processors [i ].apic_id ;
7475 cpuinfo_log_debug (
7576 "APID ID %" PRIu32 ": system processor %" PRIu32 ,
@@ -166,13 +167,13 @@ void cpuinfo_x86_linux_init(void) {
166167 const uint32_t max_present_processors_count = 1 + cpuinfo_linux_get_max_present_processor (max_processors_count );
167168 cpuinfo_log_debug ("maximum present processors count: %" PRIu32 , max_present_processors_count );
168169
169- uint32_t valid_processor_mask = CPUINFO_LINUX_FLAG_APIC_ID ;
170+ uint32_t valid_processor_mask = 0 ;
170171 uint32_t x86_linux_processors_count = max_processors_count ;
171172 if (max_present_processors_count != 0 ) {
172173 x86_linux_processors_count = min (x86_linux_processors_count , max_present_processors_count );
173- valid_processor_mask | = CPUINFO_LINUX_FLAG_PRESENT ;
174+ valid_processor_mask = CPUINFO_LINUX_FLAG_PRESENT ;
174175 } else {
175- valid_processor_mask | = CPUINFO_LINUX_FLAG_PROC_CPUINFO ;
176+ valid_processor_mask = CPUINFO_LINUX_FLAG_PROC_CPUINFO ;
176177 }
177178 if (max_possible_processors_count != 0 ) {
178179 x86_linux_processors_count = min (x86_linux_processors_count , max_possible_processors_count );
@@ -259,6 +260,7 @@ void cpuinfo_x86_linux_init(void) {
259260 x86_linux_processors_count ,
260261 x86_linux_processors ,
261262 & x86_processor ,
263+ valid_processor_mask ,
262264 llc_apic_bits ,
263265 & cores_count ,
264266 & clusters_count ,
0 commit comments