Skip to content

Commit

Permalink
ACPI: OSL: Rework acpi_check_resource_conflict()
Browse files Browse the repository at this point in the history
Rearrange the code in acpi_check_resource_conflict() so as to drop
redundant checks and uneeded local variables from there and modify
the messages printed by that function to be more concise and
hopefully easier to understand.

While at it, replace direct printk() usage with pr_*().

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Rafael J. Wysocki committed Feb 9, 2021
1 parent f86b15a commit 505ca2f
Showing 1 changed file with 14 additions and 24 deletions.
38 changes: 14 additions & 24 deletions drivers/acpi/osl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1458,38 +1458,28 @@ __setup("acpi_enforce_resources=", acpi_enforce_resources_setup);
int acpi_check_resource_conflict(const struct resource *res)
{
acpi_adr_space_type space_id;
acpi_size length;
u8 warn = 0;
int clash = 0;

if (acpi_enforce_resources == ENFORCE_RESOURCES_NO)
return 0;
if (!(res->flags & IORESOURCE_IO) && !(res->flags & IORESOURCE_MEM))
return 0;

if (res->flags & IORESOURCE_IO)
space_id = ACPI_ADR_SPACE_SYSTEM_IO;
else
else if (res->flags & IORESOURCE_MEM)
space_id = ACPI_ADR_SPACE_SYSTEM_MEMORY;
else
return 0;

if (!acpi_check_address_range(space_id, res->start, resource_size(res), 1))
return 0;

pr_info("Resource conflict; ACPI support missing from driver?\n");

if (acpi_enforce_resources == ENFORCE_RESOURCES_STRICT)
return -EBUSY;

if (acpi_enforce_resources == ENFORCE_RESOURCES_LAX)
pr_notice("Resource conflict: System may be unstable or behave erratically\n");

length = resource_size(res);
if (acpi_enforce_resources != ENFORCE_RESOURCES_NO)
warn = 1;
clash = acpi_check_address_range(space_id, res->start, length, warn);

if (clash) {
if (acpi_enforce_resources != ENFORCE_RESOURCES_NO) {
if (acpi_enforce_resources == ENFORCE_RESOURCES_LAX)
printk(KERN_NOTICE "ACPI: This conflict may"
" cause random problems and system"
" instability\n");
printk(KERN_INFO "ACPI: If an ACPI driver is available"
" for this device, you should use it instead of"
" the native driver\n");
}
if (acpi_enforce_resources == ENFORCE_RESOURCES_STRICT)
return -EBUSY;
}
return 0;
}
EXPORT_SYMBOL(acpi_check_resource_conflict);
Expand Down

0 comments on commit 505ca2f

Please sign in to comment.