diff options
author | mav <mav@FreeBSD.org> | 2010-06-07 18:47:53 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2010-06-07 18:47:53 +0000 |
commit | 4363e5b2cea772fcf25cfac48f720716f6fc9346 (patch) | |
tree | ccfdee33ef210f97cb3964a429badfb45e5ad4e1 /sys | |
parent | 79f1540a6e376aeac8e821beeeed9ee73efe6068 (diff) | |
download | FreeBSD-src-4363e5b2cea772fcf25cfac48f720716f6fc9346.zip FreeBSD-src-4363e5b2cea772fcf25cfac48f720716f6fc9346.tar.gz |
Call BUS_PROBE_NOMATCH() when device detached due to driver unload.
This allows bus to power-down device when driver unloaded on-flight.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/subr_bus.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index 9d3292a..8b933bd 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -1166,6 +1166,9 @@ devclass_delete_driver(devclass_t busclass, driver_t *driver) if ((error = device_detach(dev)) != 0) return (error); device_set_driver(dev, NULL); + BUS_PROBE_NOMATCH(dev->parent, dev); + devnomatch(dev); + dev->flags |= DF_DONENOMATCH; } } } @@ -2660,6 +2663,7 @@ device_attach(device_t dev) } device_sysctl_update(dev); dev->state = DS_ATTACHED; + dev->flags &= ~DF_DONENOMATCH; devadded(dev); return (0); } |