summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_devconf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/kern_devconf.c')
-rw-r--r--sys/kern/kern_devconf.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/kern/kern_devconf.c b/sys/kern/kern_devconf.c
index f5e74d8..39f728c 100644
--- a/sys/kern/kern_devconf.c
+++ b/sys/kern/kern_devconf.c
@@ -73,7 +73,8 @@ dev_detach(struct kern_devconf *kdc)
/*
* NB: the device must do a dev_detach inside its goaway routine, if it
- * succeeds.
+ * succeeds. If no routine is specified, we assume no special treatment is
+ * required.
*/
int
dev_goawayall(int force)
@@ -82,6 +83,12 @@ dev_goawayall(int force)
struct kern_devconf *kdc = dc_list;
while(kdc) {
+ if(!kdc->kdc_goaway) {
+ dev_detach(kdc);
+ kdc = dc_list;
+ continue;
+ }
+
if(kdc->kdc_goaway(kdc, force)) {
rv++;
kdc = kdc->kdc_next;
OpenPOWER on IntegriCloud