hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/xen/pcpu.c
....@@ -58,6 +58,7 @@
5858 struct list_head list;
5959 struct device dev;
6060 uint32_t cpu_id;
61
+ uint32_t acpi_id;
6162 uint32_t flags;
6263 };
6364
....@@ -249,6 +250,7 @@
249250
250251 INIT_LIST_HEAD(&pcpu->list);
251252 pcpu->cpu_id = info->xen_cpuid;
253
+ pcpu->acpi_id = info->acpi_id;
252254 pcpu->flags = info->flags;
253255
254256 /* Need hold on xen_pcpu_lock before pcpu list manipulations */
....@@ -416,3 +418,21 @@
416418 return ret;
417419 }
418420 arch_initcall(xen_pcpu_init);
421
+
422
+#ifdef CONFIG_ACPI
423
+bool __init xen_processor_present(uint32_t acpi_id)
424
+{
425
+ const struct pcpu *pcpu;
426
+ bool online = false;
427
+
428
+ mutex_lock(&xen_pcpu_lock);
429
+ list_for_each_entry(pcpu, &xen_pcpus, list)
430
+ if (pcpu->acpi_id == acpi_id) {
431
+ online = pcpu->flags & XEN_PCPU_FLAGS_ONLINE;
432
+ break;
433
+ }
434
+ mutex_unlock(&xen_pcpu_lock);
435
+
436
+ return online;
437
+}
438
+#endif