The ACPI buffer memory (buffer.pointer) returned by acpi_evaluate_object() is not used after the call of _RST method, so it leads to memory leak. For the calling of ACPI _RST method, we don't need to pass a buffer for acpi_evaluate_object(), we can just pass NULL and remove the ACPI buffer memory in vfio_platform_acpi_call_reset(), then we don't need to free the memory and no memory leak. Fixes: d30daa33ec1d ("vfio: platform: call _RST method when using ACPI") Signed-off-by: Hanjun Guo <guohanjun@xxxxxxxxxx> --- drivers/vfio/platform/vfio_platform_common.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c index 55dc4f4..1a0a238 100644 --- a/drivers/vfio/platform/vfio_platform_common.c +++ b/drivers/vfio/platform/vfio_platform_common.c @@ -72,12 +72,11 @@ static int vfio_platform_acpi_call_reset(struct vfio_platform_device *vdev, const char **extra_dbg) { #ifdef CONFIG_ACPI - struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; struct device *dev = vdev->device; acpi_handle handle = ACPI_HANDLE(dev); acpi_status acpi_ret; - acpi_ret = acpi_evaluate_object(handle, "_RST", NULL, &buffer); + acpi_ret = acpi_evaluate_object(handle, "_RST", NULL, NULL); if (ACPI_FAILURE(acpi_ret)) { if (extra_dbg) *extra_dbg = acpi_format_exception(acpi_ret); -- 1.7.12.4