ACPI: Do not fail acpi_bind_one() if device is already bound correctly
Modify acpi_bind_one() so that it doesn't fail if the device represented by its first argument has already been bound to the given ACPI handle (second argument), because that is not a good enough reason for returning an error code. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Lan Tianyu <tianyu.lan@intel.com> Acked-by: Toshi Kani <toshi.kani@hp.com>
This commit is contained in:
parent
69fdadfd22
commit
3fe444ad7e
1 changed files with 10 additions and 3 deletions
|
@ -217,7 +217,10 @@ int acpi_bind_one(struct device *dev, acpi_handle handle)
|
|||
/* Sanity check. */
|
||||
if (pn->dev == dev) {
|
||||
dev_warn(dev, "Already associated with ACPI node\n");
|
||||
goto err_free;
|
||||
if (ACPI_HANDLE(dev) == handle)
|
||||
retval = 0;
|
||||
|
||||
goto out_free;
|
||||
}
|
||||
if (pn->node_id == node_id) {
|
||||
physnode_list = &pn->node;
|
||||
|
@ -255,10 +258,14 @@ int acpi_bind_one(struct device *dev, acpi_handle handle)
|
|||
put_device(dev);
|
||||
return retval;
|
||||
|
||||
err_free:
|
||||
out_free:
|
||||
mutex_unlock(&acpi_dev->physical_node_lock);
|
||||
kfree(physical_node);
|
||||
goto err;
|
||||
if (retval)
|
||||
goto err;
|
||||
|
||||
put_device(dev);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(acpi_bind_one);
|
||||
|
||||
|
|
Loading…
Reference in a new issue