| .. | .. |
|---|
| 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 | |
|---|