.. | .. |
---|
14 | 14 | #include <linux/acpi.h> |
---|
15 | 15 | #include <acpi/processor.h> |
---|
16 | 16 | |
---|
| 17 | +#include <xen/xen.h> |
---|
| 18 | + |
---|
17 | 19 | #include "internal.h" |
---|
18 | 20 | |
---|
19 | 21 | #define _COMPONENT ACPI_PROCESSOR_COMPONENT |
---|
.. | .. |
---|
50 | 52 | return false; |
---|
51 | 53 | } |
---|
52 | 54 | |
---|
| 55 | + if (xen_initial_domain()) |
---|
| 56 | + /* |
---|
| 57 | + * When running as a Xen dom0 the number of processors Linux |
---|
| 58 | + * sees can be different from the real number of processors on |
---|
| 59 | + * the system, and we still need to execute _PDC for all of |
---|
| 60 | + * them. |
---|
| 61 | + */ |
---|
| 62 | + return xen_processor_present(acpi_id); |
---|
| 63 | + |
---|
53 | 64 | type = (acpi_type == ACPI_TYPE_DEVICE) ? 1 : 0; |
---|
54 | 65 | cpuid = acpi_get_cpuid(handle, type, acpi_id); |
---|
55 | 66 | |
---|