Skip to content

Commit

Permalink
ACPI: EC: Put the ACPI table after using it
Browse files Browse the repository at this point in the history
The embedded controller boot resources table needs to be
released after using it.

Signed-off-by: Hanjun Guo <guohanjun@huawei.com>
[ rjw: avoid adding a label in acpi_ec_ecdt_start() ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Hanjun Guo authored and Rafael J. Wysocki committed May 9, 2020
1 parent 11c7bdf commit f900bf4
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions drivers/acpi/ec.c
Original file line number Diff line number Diff line change
@@ -1783,13 +1783,14 @@ static void __init acpi_ec_ecdt_start(void)
return;

status = acpi_get_handle(NULL, ecdt_ptr->id, &handle);
if (ACPI_FAILURE(status))
return;
if (ACPI_SUCCESS(status)) {
boot_ec->handle = handle;

boot_ec->handle = handle;
/* Add a special ACPI device object to represent the boot EC. */
acpi_bus_register_early_device(ACPI_BUS_TYPE_ECDT_EC);
}

/* Add a special ACPI device object to represent the boot EC. */
acpi_bus_register_early_device(ACPI_BUS_TYPE_ECDT_EC);
acpi_put_table((struct acpi_table_header *)ecdt_ptr);
}

/*
@@ -1891,12 +1892,12 @@ void __init acpi_ec_ecdt_probe(void)
* Asus X50GL:
* https://bugzilla.kernel.org/show_bug.cgi?id=11880
*/
return;
goto out;
}

ec = acpi_ec_alloc();
if (!ec)
return;
goto out;

if (EC_FLAGS_CORRECT_ECDT) {
ec->command_addr = ecdt_ptr->data.address;
@@ -1922,13 +1923,16 @@ void __init acpi_ec_ecdt_probe(void)
ret = acpi_ec_setup(ec, NULL);
if (ret) {
acpi_ec_free(ec);
return;
goto out;
}

boot_ec = ec;
boot_ec_is_ecdt = true;

pr_info("Boot ECDT EC used to handle transactions\n");

out:
acpi_put_table((struct acpi_table_header *)ecdt_ptr);
}

#ifdef CONFIG_PM_SLEEP

0 comments on commit f900bf4

Please sign in to comment.