diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/acpi/scan.c | 24 | ||||
| -rw-r--r-- | drivers/pci/hotplug/acpiphp_glue.c | 6 | 
2 files changed, 19 insertions, 11 deletions
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 8044583f303..3e009674f33 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -1336,9 +1336,25 @@ static int acpi_bus_scan(acpi_handle handle, struct acpi_bus_ops *ops,  	if (child)  		*child = device; -	return 0; + +	if (device) +		return 0; +	else +		return -ENODEV;  } +/* + * acpi_bus_add and acpi_bus_start + * + * scan a given ACPI tree and (probably recently hot-plugged) + * create and add or starts found devices. + * + * If no devices were found -ENODEV is returned which does not + * mean that this is a real error, there just have been no suitable + * ACPI objects in the table trunk from which the kernel could create + * a device and add/start an appropriate driver. + */ +  int  acpi_bus_add(struct acpi_device **child,  	     struct acpi_device *parent, acpi_handle handle, int type) @@ -1348,8 +1364,7 @@ acpi_bus_add(struct acpi_device **child,  	memset(&ops, 0, sizeof(ops));  	ops.acpi_op_add = 1; -	acpi_bus_scan(handle, &ops, child); -	return 0; +	return acpi_bus_scan(handle, &ops, child);  }  EXPORT_SYMBOL(acpi_bus_add); @@ -1363,8 +1378,7 @@ int acpi_bus_start(struct acpi_device *device)  	memset(&ops, 0, sizeof(ops));  	ops.acpi_op_start = 1; -	acpi_bus_scan(device->handle, &ops, NULL); -	return 0; +	return acpi_bus_scan(device->handle, &ops, NULL);  }  EXPORT_SYMBOL(acpi_bus_start); diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index 8e952fdab76..cb2fd01edda 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c @@ -720,12 +720,6 @@ static int acpiphp_bus_add(struct acpiphp_func *func)  			-ret_val);  		goto acpiphp_bus_add_out;  	} -	/* -	 * try to start anyway.  We could have failed to add -	 * simply because this bus had previously been added -	 * on another add.  Don't bother with the return value -	 * we just keep going. -	 */  	ret_val = acpi_bus_start(device);  acpiphp_bus_add_out:  |