diff options
| author | Konrad Rzeszutek Wilk <[email protected]> | 2012-04-26 18:22:33 +0000 |
|---|---|---|
| committer | Konrad Rzeszutek Wilk <[email protected]> | 2012-04-27 02:07:28 +0000 |
| commit | b930fe5e1f5646e071facda70b25b137ebeae5af (patch) | |
| tree | 4f7bc16244bc7b95867ac1b72ca021bfc8b31ba4 /drivers/xen/xen-acpi-processor.c | |
| parent | xen/smp: Fix crash when booting with ACPI hotplug CPUs. (diff) | |
| download | kernel-b930fe5e1f5646e071facda70b25b137ebeae5af.tar.gz kernel-b930fe5e1f5646e071facda70b25b137ebeae5af.zip | |
xen/acpi: Workaround broken BIOSes exporting non-existing C-states.
We did a similar check for the P-states but did not do it for
the C-states. What we want to do is ignore cases where the DSDT
has definition for sixteen CPUs, but the machine only has eight
CPUs and we get:
xen-acpi-processor: (CX): Hypervisor error (-22) for ACPI CPU14
Reported-by: Tobias Geiger <[email protected]>
Signed-off-by: Konrad Rzeszutek Wilk <[email protected]>
Diffstat (limited to 'drivers/xen/xen-acpi-processor.c')
| -rw-r--r-- | drivers/xen/xen-acpi-processor.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c index 174b5653cd8a..0b48579a9cd6 100644 --- a/drivers/xen/xen-acpi-processor.c +++ b/drivers/xen/xen-acpi-processor.c @@ -128,7 +128,10 @@ static int push_cxx_to_hypervisor(struct acpi_processor *_pr) pr_debug(" C%d: %s %d uS\n", cx->type, cx->desc, (u32)cx->latency); } - } else + } else if (ret != -EINVAL) + /* EINVAL means the ACPI ID is incorrect - meaning the ACPI + * table is referencing a non-existing CPU - which can happen + * with broken ACPI tables. */ pr_err(DRV_NAME "(CX): Hypervisor error (%d) for ACPI CPU%u\n", ret, _pr->acpi_id); |
