Skip to content

Commit

Permalink
ACPI: OSL: Clean up the removal of unused memory mappings
Browse files Browse the repository at this point in the history
Fold acpi_os_map_cleanup_deferred() into acpi_os_map_remove() and
pass the latter to INIT_RCU_WORK() in acpi_os_drop_map_ref() to make
the code more straightforward.

No intentional functional impact.

Signed-off-by: Rafael J. Wysocki <[email protected]>
  • Loading branch information
rafaeljw committed Jul 27, 2020
1 parent a968fba commit 5003ad7
Showing 1 changed file with 6 additions and 8 deletions.
14 changes: 6 additions & 8 deletions drivers/acpi/osl.c
Original file line number Diff line number Diff line change
Expand Up @@ -377,18 +377,16 @@ void *__ref acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
}
EXPORT_SYMBOL_GPL(acpi_os_map_memory);

static void acpi_os_map_remove(struct acpi_ioremap *map)
static void acpi_os_map_remove(struct work_struct *work)
{
struct acpi_ioremap *map = container_of(to_rcu_work(work),
struct acpi_ioremap,
track.rwork);

acpi_unmap(map->phys, map->virt);
kfree(map);
}

static void acpi_os_map_cleanup_deferred(struct work_struct *work)
{
acpi_os_map_remove(container_of(to_rcu_work(work), struct acpi_ioremap,
track.rwork));
}

/* Must be called with mutex_lock(&acpi_ioremap_lock) */
static void acpi_os_drop_map_ref(struct acpi_ioremap *map)
{
Expand All @@ -397,7 +395,7 @@ static void acpi_os_drop_map_ref(struct acpi_ioremap *map)

list_del_rcu(&map->list);

INIT_RCU_WORK(&map->track.rwork, acpi_os_map_cleanup_deferred);
INIT_RCU_WORK(&map->track.rwork, acpi_os_map_remove);
queue_rcu_work(system_wq, &map->track.rwork);
}

Expand Down

0 comments on commit 5003ad7

Please sign in to comment.