@@ -145,6 +145,7 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle)
{
struct acpi_device *acpi_dev;
acpi_status status;
+ int fn, pn;
if (dev->archdata.acpi_handle) {
dev_warn(dev, "Drivers changed 'acpi_handle'\n");
@@ -160,12 +161,19 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle)
status = acpi_bus_get_device(handle, &acpi_dev);
if (!ACPI_FAILURE(status)) {
- int ret;
- ret = sysfs_create_link(&dev->kobj, &acpi_dev->dev.kobj,
+ fn = sysfs_create_link(&dev->kobj, &acpi_dev->dev.kobj,
"firmware_node");
- ret = sysfs_create_link(&acpi_dev->dev.kobj, &dev->kobj,
+ pn = sysfs_create_link(&acpi_dev->dev.kobj, &dev->kobj,
"physical_node");
+ if (fn || pn) {
+ dev_warn(&acpi_dev->dev,
+ "Failed to create link(s) to %s %s:"
+ " %d\n",
+ dev_driver_string(dev), dev_name(dev),
+ fn ?: pn);
+ return AE_ERROR;
+ }
if (acpi_dev->wakeup.flags.valid) {
device_set_wakeup_capable(dev, true);
device_set_wakeup_enable(dev,