diff options
author | njl <njl@FreeBSD.org> | 2004-10-13 07:10:41 +0000 |
---|---|---|
committer | njl <njl@FreeBSD.org> | 2004-10-13 07:10:41 +0000 |
commit | a39c5fd2f1690fad353b99e47d7815eba91d22f2 (patch) | |
tree | 0e26dd34836ab0dc01bfbe6d35ef6204a15adb2c /sys | |
parent | e35c2bf38ed7bcd4f36b503d6774a863ccd6c28f (diff) | |
download | FreeBSD-src-a39c5fd2f1690fad353b99e47d7815eba91d22f2.zip FreeBSD-src-a39c5fd2f1690fad353b99e47d7815eba91d22f2.tar.gz |
Set flags for devices before probing them. In the non-ISA case, flags set
via hints were not getting passed to the child.
PR: kern/72489
MFC after: 1 day
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/subr_bus.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index 9749d88..5ad739c 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -2074,7 +2074,7 @@ int device_set_devclass(device_t dev, const char *classname) { devclass_t dc; - int error; + int error, flags; if (!classname) { if (dev->devclass) @@ -2093,6 +2093,10 @@ device_set_devclass(device_t dev, const char *classname) error = devclass_add_device(dc, dev); + /* Fetch any hints for the device before it is probed. */ + if (resource_int_value(classname, dev->unit, "flags", &flags) == 0) + dev->devflags = flags; + bus_data_generation_update(); return (error); } |