[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <585E27F0.6070703@huawei.com>
Date: Sat, 24 Dec 2016 15:46:56 +0800
From: Hanjun Guo <guohanjun@...wei.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
<linux-acpi@...r.kernel.org>
CC: <linux-kernel@...r.kernel.org>, Hanjun Guo <hanjun.guo@...aro.org>,
"Sudeep Holla" <sudeep.holla@....com>,
"Rafael J. Wysocki" <rjw@...ysocki.net>
Subject: Re: [PATCH] ACPI: Remove misplaced acpi_dma_deconfigure() call in
acpi_bind_one()
On 2016/12/16 22:43, Lorenzo Pieralisi wrote:
> The acpi_bind_one() error return path can be hit either on physical node
> allocation failure or if the device being configured is already
> associated with an ACPI node and its ACPI companion does not match the
> one acpi_bind_one() is setting it up with. In both cases the error
> return path is executed before DMA is configured for a device therefore
> there is no need to call acpi_dma_deconfigure() on the function error
> return path.
>
> Furthermore, if acpi_bind_one() does configure DMA for a device (ie it
> successfully executes acpi_dma_configure()) acpi_bind_one() always
> completes execution successfully hence there is no need to add an exit
> path to deconfigure the DMA set-up (ie by calling acpi_dma_deconfigure()).
>
> Remove the misplaced acpi_dma_deconfigure() in acpi_bind_one() to
> reinstate its correct error return path behaviour.
>
> Fixes: d760a1baf20e ("ACPI: Implement acpi_dma_configure")
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@....com>
> Cc: Hanjun Guo <hanjun.guo@...aro.org>
> Cc: Sudeep Holla <sudeep.holla@....com>
> Cc: "Rafael J. Wysocki" <rjw@...ysocki.net>
> ---
> drivers/acpi/glue.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
> index f8d6564..eb709e7 100644
> --- a/drivers/acpi/glue.c
> +++ b/drivers/acpi/glue.c
> @@ -250,7 +250,6 @@ int acpi_bind_one(struct device *dev, struct acpi_device *acpi_dev)
> return 0;
>
> err:
> - acpi_dma_deconfigure(dev);
> ACPI_COMPANION_SET(dev, NULL);
> put_device(dev);
> put_device(&acpi_dev->dev);
Reviewed-by: Hanjun Guo <hanjun.guo@...aro.org>
Thanks
Hanjun
Powered by blists - more mailing lists