summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2004-10-13 07:10:41 +0000
committernjl <njl@FreeBSD.org>2004-10-13 07:10:41 +0000
commita39c5fd2f1690fad353b99e47d7815eba91d22f2 (patch)
tree0e26dd34836ab0dc01bfbe6d35ef6204a15adb2c
parente35c2bf38ed7bcd4f36b503d6774a863ccd6c28f (diff)
downloadFreeBSD-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
-rw-r--r--sys/kern/subr_bus.c6
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);
}
OpenPOWER on IntegriCloud