Skip to content

Commit 624cad9

Browse files
ruiwang1Ingo Molnar
authored andcommitted
x86/ioapic: Fix IOAPIC failing to request resource
handle_ioapic_add() uses request_resource() to request ACPI "_CRS" resources. This can fail with the following error message: [ 247.325693] ACPI: \_SB_.IIO1.AID1: failed to insert resource This happens when there are multiple IOAPICs and DSDT groups their "_CRS" resources as the children of a parent resource, as seen from /proc/iomem: fec00000-fecfffff : PNP0003:00 fec00000-fec003ff : IOAPIC 0 fec01000-fec013ff : IOAPIC 1 fec40000-fec403ff : IOAPIC 2 In this case request_resource() fails because there's a conflicting resource which is the parent (fec0000-fecfffff). Fix it by using insert_resource() which can request resources by taking the conflicting resource as the parent. Signed-off-by: Rui Wang <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
1 parent 162b83b commit 624cad9

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/acpi/ioapic.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,12 @@ static acpi_status handle_ioapic_add(acpi_handle handle, u32 lvl,
146146

147147
crs_res = &ioapic->res;
148148
acpi_walk_resources(handle, METHOD_NAME__CRS, setup_res, crs_res);
149+
crs_res->name = type;
150+
crs_res->flags |= IORESOURCE_BUSY;
149151
if (crs_res->flags == 0) {
150152
acpi_handle_warn(handle, "failed to get resource\n");
151153
goto exit_release;
152-
} else if (request_resource(&iomem_resource, crs_res)) {
154+
} else if (insert_resource(&iomem_resource, crs_res)) {
153155
acpi_handle_warn(handle, "failed to insert resource\n");
154156
goto exit_release;
155157
}

0 commit comments

Comments
 (0)