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
This commit is contained in:
@@ -135,14 +135,13 @@ fdc_acpi_attach(device_t dev)
|
|||||||
obj = buf.Pointer;
|
obj = buf.Pointer;
|
||||||
error = fdc_acpi_probe_children(bus, dev, obj->Buffer.Pointer);
|
error = fdc_acpi_probe_children(bus, dev, obj->Buffer.Pointer);
|
||||||
|
|
||||||
if (error == 0)
|
|
||||||
fdc_start_worker(dev);
|
|
||||||
|
|
||||||
out:
|
out:
|
||||||
if (buf.Pointer)
|
if (buf.Pointer)
|
||||||
free(buf.Pointer, M_TEMP);
|
free(buf.Pointer, M_TEMP);
|
||||||
if (error != 0)
|
if (error != 0)
|
||||||
fdc_release_resources(sc);
|
fdc_release_resources(sc);
|
||||||
|
else
|
||||||
|
fdc_start_worker(dev);
|
||||||
|
|
||||||
return (error);
|
return (error);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user