summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2016-05-04 23:00:57 +0000
committerjhb <jhb@FreeBSD.org>2016-05-04 23:00:57 +0000
commit76fb86ddfe6fe8cd628ebfb49b50dea38466dcef (patch)
tree7b6f3673b857a88dcf81c1cb6c084a52c7bdf9d2
parent09b44517caee8dcc60f36ba481d3f9f47c6c17ec (diff)
downloadFreeBSD-src-76fb86ddfe6fe8cd628ebfb49b50dea38466dcef.zip
FreeBSD-src-76fb86ddfe6fe8cd628ebfb49b50dea38466dcef.tar.gz
Fix the acpi attachment to always start the worker thread.
The previous change to split the worker thread start out of fdc_attach() did not start the worker thread if the fdc device in the ACPI namespace did not have an _FDE method. This fixes hangs when booting with a floppy controller enabled on certain machines with ACPI. Tested by: joel
-rw-r--r--sys/dev/fdc/fdc_acpi.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/dev/fdc/fdc_acpi.c b/sys/dev/fdc/fdc_acpi.c
index 9c6eb35..afef409 100644
--- a/sys/dev/fdc/fdc_acpi.c
+++ b/sys/dev/fdc/fdc_acpi.c
@@ -135,14 +135,13 @@ fdc_acpi_attach(device_t dev)
obj = buf.Pointer;
error = fdc_acpi_probe_children(bus, dev, obj->Buffer.Pointer);
- if (error == 0)
- fdc_start_worker(dev);
-
out:
if (buf.Pointer)
free(buf.Pointer, M_TEMP);
if (error != 0)
fdc_release_resources(sc);
+ else
+ fdc_start_worker(dev);
return (error);
}
OpenPOWER on IntegriCloud