diff options
author | jhb <jhb@FreeBSD.org> | 2016-05-04 23:00:57 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2016-05-04 23:00:57 +0000 |
commit | 76fb86ddfe6fe8cd628ebfb49b50dea38466dcef (patch) | |
tree | 7b6f3673b857a88dcf81c1cb6c084a52c7bdf9d2 | |
parent | 09b44517caee8dcc60f36ba481d3f9f47c6c17ec (diff) | |
download | FreeBSD-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.c | 5 |
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); } |