drm/amdkfd: Put ACPI table after using it
The acpi_get_table() should be coupled with acpi_put_table() if the mapped table is not used at runtime to release the table mapping which can prevent the memory leak. In kfd_create_crat_image_acpi(), crat_table is copied to pcrat_image, and in kfd_create_vcrat_image_cpu(), the acpi_table is only used to get the OEM information, so those two table mappings need to be released after using it. Fixes:174de876d6
("drm/amdkfd: Group up CRAT related functions") Fixes:520b8fb755
("drm/amdkfd: Add topology support for CPUs") Signed-off-by: Hanjun Guo <guohanjun@huawei.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
1cb027950a
commit
c4cb773c70
|
@ -780,6 +780,7 @@ int kfd_create_crat_image_acpi(void **crat_image, size_t *size)
|
|||
struct acpi_table_header *crat_table;
|
||||
acpi_status status;
|
||||
void *pcrat_image;
|
||||
int rc = 0;
|
||||
|
||||
if (!crat_image)
|
||||
return -EINVAL;
|
||||
|
@ -804,14 +805,17 @@ int kfd_create_crat_image_acpi(void **crat_image, size_t *size)
|
|||
}
|
||||
|
||||
pcrat_image = kvmalloc(crat_table->length, GFP_KERNEL);
|
||||
if (!pcrat_image)
|
||||
return -ENOMEM;
|
||||
if (!pcrat_image) {
|
||||
rc = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
memcpy(pcrat_image, crat_table, crat_table->length);
|
||||
*crat_image = pcrat_image;
|
||||
*size = crat_table->length;
|
||||
|
||||
return 0;
|
||||
out:
|
||||
acpi_put_table(crat_table);
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Memory required to create Virtual CRAT.
|
||||
|
@ -994,6 +998,7 @@ static int kfd_create_vcrat_image_cpu(void *pcrat_image, size_t *size)
|
|||
CRAT_OEMID_LENGTH);
|
||||
memcpy(crat_table->oem_table_id, acpi_table->oem_table_id,
|
||||
CRAT_OEMTABLEID_LENGTH);
|
||||
acpi_put_table(acpi_table);
|
||||
}
|
||||
crat_table->total_entries = 0;
|
||||
crat_table->num_domains = 0;
|
||||
|
|
Loading…
Reference in New Issue