On Tue, 22 Nov 2022 19:29:58 +0800 Hanjun Guo <guohanjun@xxxxxxxxxx> wrote: > 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); An identical change was already posted and accepted into the vfio next branch, see: https://lore.kernel.org/all/20221018152825.891032-1-rafaelmendsr@xxxxxxxxx/ In linux-next as: e67e070632a6 ("vfio: platform: Do not pass return buffer to ACPI _RST method") Thanks, Alex