ACPI / osl: Remove acpi_get_table_with_size()/early_acpi_os_unmap_memory() users
This patch removes the users of the deprectated APIs: acpi_get_table_with_size() early_acpi_os_unmap_memory() The following APIs should be used instead of: acpi_get_table() acpi_put_table() The deprecated APIs are invented to be a replacement of acpi_get_table() during the early stage so that the early mapped pointer will not be stored in ACPICA core and thus the late stage acpi_get_table() won't return a wrong pointer. The mapping size is returned just because it is required by early_acpi_os_unmap_memory() to unmap the pointer during early stage. But as the mapping size equals to the acpi_table_header.length (see acpi_tb_init_table_descriptor() and acpi_tb_validate_table()), when such a convenient result is returned, driver code will start to use it instead of accessing acpi_table_header to obtain the length. Thus this patch cleans up the drivers by replacing returned table size with acpi_table_header.length, and should be a no-op. Reported-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:

committed by
Rafael J. Wysocki

parent
66360faa43
commit
6b11d1d677
@@ -2207,14 +2207,13 @@ static void __init free_dma_resources(void)
|
||||
static int __init early_amd_iommu_init(void)
|
||||
{
|
||||
struct acpi_table_header *ivrs_base;
|
||||
acpi_size ivrs_size;
|
||||
acpi_status status;
|
||||
int i, remap_cache_sz, ret = 0;
|
||||
|
||||
if (!amd_iommu_detected)
|
||||
return -ENODEV;
|
||||
|
||||
status = acpi_get_table_with_size("IVRS", 0, &ivrs_base, &ivrs_size);
|
||||
status = acpi_get_table("IVRS", 0, &ivrs_base);
|
||||
if (status == AE_NOT_FOUND)
|
||||
return -ENODEV;
|
||||
else if (ACPI_FAILURE(status)) {
|
||||
@@ -2334,7 +2333,7 @@ static int __init early_amd_iommu_init(void)
|
||||
|
||||
out:
|
||||
/* Don't leak any ACPI memory */
|
||||
early_acpi_os_unmap_memory((char __iomem *)ivrs_base, ivrs_size);
|
||||
acpi_put_table(ivrs_base);
|
||||
ivrs_base = NULL;
|
||||
|
||||
return ret;
|
||||
@@ -2358,10 +2357,9 @@ out:
|
||||
static bool detect_ivrs(void)
|
||||
{
|
||||
struct acpi_table_header *ivrs_base;
|
||||
acpi_size ivrs_size;
|
||||
acpi_status status;
|
||||
|
||||
status = acpi_get_table_with_size("IVRS", 0, &ivrs_base, &ivrs_size);
|
||||
status = acpi_get_table("IVRS", 0, &ivrs_base);
|
||||
if (status == AE_NOT_FOUND)
|
||||
return false;
|
||||
else if (ACPI_FAILURE(status)) {
|
||||
@@ -2370,7 +2368,7 @@ static bool detect_ivrs(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
early_acpi_os_unmap_memory((char __iomem *)ivrs_base, ivrs_size);
|
||||
acpi_put_table(ivrs_base);
|
||||
|
||||
/* Make sure ACS will be enabled during PCI probe */
|
||||
pci_request_acs();
|
||||
|
Reference in New Issue
Block a user