Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F115863419
D32056.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D32056.diff
View Options
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -2083,10 +2083,9 @@
panic("device_probe_child: parent device has no devclass");
/*
- * If the state is already probed, then return. However, don't
- * return if we can rebid this object.
+ * If the state is already probed, then return.
*/
- if (child->state == DS_ALIVE && (child->flags & DF_REBID) == 0)
+ if (child->state == DS_ALIVE)
return (0);
for (; dc; dc = dc->parent) {
@@ -2188,29 +2187,7 @@
/*
* If we found a driver, change state and initialise the devclass.
*/
- /* XXX What happens if we rebid and got no best? */
if (best) {
- /*
- * If this device was attached, and we were asked to
- * rescan, and it is a different driver, then we have
- * to detach the old driver and reattach this new one.
- * Note, we don't have to check for DF_REBID here
- * because if the state is > DS_ALIVE, we know it must
- * be.
- *
- * This assumes that all DF_REBID drivers can have
- * their probe routine called at any time and that
- * they are idempotent as well as completely benign in
- * normal operations.
- *
- * We also have to make sure that the detach
- * succeeded, otherwise we fail the operation (or
- * maybe it should just fail silently? I'm torn).
- */
- if (child->state > DS_ALIVE && best->driver != child->driver)
- if ((result = device_detach(dev)) != 0)
- return (result);
-
/* Set the winning driver, devclass, and flags. */
if (!child->devclass) {
result = device_set_devclass(child, best->driver->name);
@@ -2229,11 +2206,7 @@
* sure that we have the right description.
*/
DEVICE_PROBE(child);
-#if 0
- child->flags |= DF_REBID;
-#endif
- } else
- child->flags &= ~DF_REBID;
+ }
child->state = DS_ALIVE;
bus_data_generation_update();
@@ -2921,7 +2894,7 @@
GIANT_REQUIRED;
- if (dev->state >= DS_ALIVE && (dev->flags & DF_REBID) == 0)
+ if (dev->state >= DS_ALIVE)
return (-1);
if (!(dev->flags & DF_ENABLED)) {
@@ -4145,8 +4118,7 @@
DEVICE_IDENTIFY(driver, dev);
TAILQ_FOREACH(child, &dev->children, link) {
- if (child->state == DS_NOTPRESENT ||
- (child->flags & DF_REBID))
+ if (child->state == DS_NOTPRESENT)
device_probe_and_attach(child);
}
}
@@ -5334,7 +5306,6 @@
(dev->flags&DF_FIXEDCLASS? "fixed,":""),
(dev->flags&DF_WILDCARD? "wildcard,":""),
(dev->flags&DF_DESCMALLOCED? "descmalloced,":""),
- (dev->flags&DF_REBID? "rebiddable,":""),
(dev->flags&DF_SUSPENDED? "suspended,":""),
(dev->ivars? "":"no "),
(dev->softc? "":"no "),
@@ -5736,7 +5707,7 @@
/* Perform the requested operation. */
switch (cmd) {
case DEV_ATTACH:
- if (device_is_attached(dev) && (dev->flags & DF_REBID) == 0)
+ if (device_is_attached(dev))
error = EBUSY;
else if (!device_is_enabled(dev))
error = ENXIO;
diff --git a/sys/sys/bus.h b/sys/sys/bus.h
--- a/sys/sys/bus.h
+++ b/sys/sys/bus.h
@@ -90,7 +90,6 @@
#define DF_QUIET 0x10 /* don't print verbose attach message */
#define DF_DONENOMATCH 0x20 /* don't execute DEVICE_NOMATCH again */
#define DF_EXTERNALSOFTC 0x40 /* softc not allocated by us */
-#define DF_REBID 0x80 /* Can rebid after attach */
#define DF_SUSPENDED 0x100 /* Device is suspended. */
#define DF_QUIET_CHILDREN 0x200 /* Default to quiet for all my children */
#define DF_ATTACHED_ONCE 0x400 /* Has been attached at least once */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Apr 30, 5:40 PM (15 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17861847
Default Alt Text
D32056.diff (3 KB)
Attached To
Mode
D32056: bus: retire DF_REBID
Attached
Detach File
Event Timeline
Log In to Comment