mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-01 10:45:49 +00:00
ACPI: OSL: Remove the helper for deactivating memory region
There are no more users for acpi_release_memory(). Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
cdc3d2abf4
commit
b941820ec9
@ -36,7 +36,6 @@
|
||||
#include <linux/io-64-nonatomic-lo-hi.h>
|
||||
|
||||
#include "acpica/accommon.h"
|
||||
#include "acpica/acnamesp.h"
|
||||
#include "internal.h"
|
||||
|
||||
/* Definitions for ACPI_DEBUG_PRINT() */
|
||||
@ -1496,91 +1495,6 @@ int acpi_check_region(resource_size_t start, resource_size_t n,
|
||||
}
|
||||
EXPORT_SYMBOL(acpi_check_region);
|
||||
|
||||
static acpi_status acpi_deactivate_mem_region(acpi_handle handle, u32 level,
|
||||
void *_res, void **return_value)
|
||||
{
|
||||
struct acpi_mem_space_context **mem_ctx;
|
||||
union acpi_operand_object *handler_obj;
|
||||
union acpi_operand_object *region_obj2;
|
||||
union acpi_operand_object *region_obj;
|
||||
struct resource *res = _res;
|
||||
acpi_status status;
|
||||
|
||||
region_obj = acpi_ns_get_attached_object(handle);
|
||||
if (!region_obj)
|
||||
return AE_OK;
|
||||
|
||||
handler_obj = region_obj->region.handler;
|
||||
if (!handler_obj)
|
||||
return AE_OK;
|
||||
|
||||
if (region_obj->region.space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY)
|
||||
return AE_OK;
|
||||
|
||||
if (!(region_obj->region.flags & AOPOBJ_SETUP_COMPLETE))
|
||||
return AE_OK;
|
||||
|
||||
region_obj2 = acpi_ns_get_secondary_object(region_obj);
|
||||
if (!region_obj2)
|
||||
return AE_OK;
|
||||
|
||||
mem_ctx = (void *)®ion_obj2->extra.region_context;
|
||||
|
||||
if (!(mem_ctx[0]->address >= res->start &&
|
||||
mem_ctx[0]->address < res->end))
|
||||
return AE_OK;
|
||||
|
||||
status = handler_obj->address_space.setup(region_obj,
|
||||
ACPI_REGION_DEACTIVATE,
|
||||
NULL, (void **)mem_ctx);
|
||||
if (ACPI_SUCCESS(status))
|
||||
region_obj->region.flags &= ~(AOPOBJ_SETUP_COMPLETE);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* acpi_release_memory - Release any mappings done to a memory region
|
||||
* @handle: Handle to namespace node
|
||||
* @res: Memory resource
|
||||
* @level: A level that terminates the search
|
||||
*
|
||||
* Walks through @handle and unmaps all SystemMemory Operation Regions that
|
||||
* overlap with @res and that have already been activated (mapped).
|
||||
*
|
||||
* This is a helper that allows drivers to place special requirements on memory
|
||||
* region that may overlap with operation regions, primarily allowing them to
|
||||
* safely map the region as non-cached memory.
|
||||
*
|
||||
* The unmapped Operation Regions will be automatically remapped next time they
|
||||
* are called, so the drivers do not need to do anything else.
|
||||
*/
|
||||
acpi_status acpi_release_memory(acpi_handle handle, struct resource *res,
|
||||
u32 level)
|
||||
{
|
||||
acpi_status status;
|
||||
|
||||
if (!(res->flags & IORESOURCE_MEM))
|
||||
return AE_TYPE;
|
||||
|
||||
status = acpi_walk_namespace(ACPI_TYPE_REGION, handle, level,
|
||||
acpi_deactivate_mem_region, NULL,
|
||||
res, NULL);
|
||||
if (ACPI_FAILURE(status))
|
||||
return status;
|
||||
|
||||
/*
|
||||
* Wait for all of the mappings queued up for removal by
|
||||
* acpi_deactivate_mem_region() to actually go away.
|
||||
*/
|
||||
synchronize_rcu();
|
||||
rcu_barrier();
|
||||
flush_scheduled_work();
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(acpi_release_memory);
|
||||
|
||||
/*
|
||||
* Let drivers know whether the resource checks are effective
|
||||
*/
|
||||
|
@ -520,9 +520,6 @@ int acpi_check_resource_conflict(const struct resource *res);
|
||||
int acpi_check_region(resource_size_t start, resource_size_t n,
|
||||
const char *name);
|
||||
|
||||
acpi_status acpi_release_memory(acpi_handle handle, struct resource *res,
|
||||
u32 level);
|
||||
|
||||
int acpi_resources_are_enforced(void);
|
||||
|
||||
#ifdef CONFIG_HIBERNATION
|
||||
|
Loading…
Reference in New Issue
Block a user