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@xxxxxxx> > Cc: Hanjun Guo <hanjun.guo@xxxxxxxxxx> > Cc: Sudeep Holla <sudeep.holla@xxxxxxx> > Cc: "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx> > --- > 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@xxxxxxxxxx> Thanks Hanjun -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html