diff options
Diffstat (limited to 'drivers/acpi/scan.c')
-rw-r--r-- | drivers/acpi/scan.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 192691880d55..2433569b02ef 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
@@ -1857,15 +1857,20 @@ static void acpi_bus_attach(struct acpi_device *device) | |||
1857 | return; | 1857 | return; |
1858 | 1858 | ||
1859 | device->flags.match_driver = true; | 1859 | device->flags.match_driver = true; |
1860 | if (!ret) { | 1860 | if (ret > 0) { |
1861 | ret = device_attach(&device->dev); | 1861 | acpi_device_set_enumerated(device); |
1862 | if (ret < 0) | 1862 | goto ok; |
1863 | return; | ||
1864 | |||
1865 | if (!ret && device->pnp.type.platform_id) | ||
1866 | acpi_default_enumeration(device); | ||
1867 | } | 1863 | } |
1868 | 1864 | ||
1865 | ret = device_attach(&device->dev); | ||
1866 | if (ret < 0) | ||
1867 | return; | ||
1868 | |||
1869 | if (ret > 0 || !device->pnp.type.platform_id) | ||
1870 | acpi_device_set_enumerated(device); | ||
1871 | else | ||
1872 | acpi_default_enumeration(device); | ||
1873 | |||
1869 | ok: | 1874 | ok: |
1870 | list_for_each_entry(child, &device->children, node) | 1875 | list_for_each_entry(child, &device->children, node) |
1871 | acpi_bus_attach(child); | 1876 | acpi_bus_attach(child); |