diff options
Diffstat (limited to 'sys/kern/kern_devconf.c')
-rw-r--r-- | sys/kern/kern_devconf.c | 9 |
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; |