summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/glue.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-08-07 01:19:37 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-08-07 23:41:47 +0200
commit4005520648c7d6cf28e74addb52bc4a793eea3eb (patch)
tree6908b1a34e283d6854134ac35c75b7ad5c97d47e /drivers/acpi/glue.c
parentbdbdbf91081250657d018fc66d7cd0c07f337070 (diff)
downloadlinux-4005520648c7d6cf28e74addb52bc4a793eea3eb.tar.bz2
ACPI: Create symlinks in acpi_bind_one() under physical_node_lock
Put the creation of symlinks in acpi_bind_one() under the physical_node_lock mutex of the given ACPI device object, because that is part of the binding operation logically (those links are already removed under that mutex too). Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Toshi Kani <toshi.kani@hp.com> Acked-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Diffstat (limited to 'drivers/acpi/glue.c')
-rw-r--r--drivers/acpi/glue.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
index 92cacb12ef5c..914a34601231 100644
--- a/drivers/acpi/glue.c
+++ b/drivers/acpi/glue.c
@@ -242,8 +242,6 @@ int acpi_bind_one(struct device *dev, acpi_handle handle)
list_add(&physical_node->node, physnode_list);
acpi_dev->physical_node_count++;
- mutex_unlock(&acpi_dev->physical_node_lock);
-
if (!ACPI_HANDLE(dev))
ACPI_HANDLE_SET(dev, acpi_dev->handle);
@@ -253,6 +251,8 @@ int acpi_bind_one(struct device *dev, acpi_handle handle)
retval = sysfs_create_link(&dev->kobj, &acpi_dev->dev.kobj,
"firmware_node");
+ mutex_unlock(&acpi_dev->physical_node_lock);
+
if (acpi_dev->wakeup.flags.valid)
device_set_wakeup_capable(dev, true);