mirror of
https://github.com/opnsense/src.git
synced 2026-05-04 17:05:14 -04:00
Add a kernel function to delist our kernel character devices, so that
the device name can be re-used right away in case we are destroying the character devices in the background. MFC after: 4 days Reported by: dchagin@
This commit is contained in:
parent
c24341d2e3
commit
07dbde6777
3 changed files with 22 additions and 1 deletions
|
|
@ -2019,7 +2019,10 @@ usb_destroy_dev(struct usb_fs_privdata *pd)
|
|||
usb_destroy_dev_sync(pd);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* make sure we can re-use the device name */
|
||||
delist_dev(pd->cdev);
|
||||
|
||||
USB_BUS_LOCK(bus);
|
||||
LIST_INSERT_HEAD(&bus->pd_cleanup_list, pd, pd_next);
|
||||
/* get cleanup going */
|
||||
|
|
|
|||
|
|
@ -1114,6 +1114,23 @@ destroy_devl(struct cdev *dev)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
delist_dev_locked(struct cdev *dev)
|
||||
{
|
||||
struct cdev *child;
|
||||
devfs_destroy(dev);
|
||||
LIST_FOREACH(child, &dev->si_children, si_siblings)
|
||||
delist_dev_locked(child);
|
||||
}
|
||||
|
||||
void
|
||||
delist_dev(struct cdev *dev)
|
||||
{
|
||||
dev_lock();
|
||||
delist_dev_locked(dev);
|
||||
dev_unlock();
|
||||
}
|
||||
|
||||
void
|
||||
destroy_dev(struct cdev *dev)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -245,6 +245,7 @@ void clone_cleanup(struct clonedevs **);
|
|||
int clone_create(struct clonedevs **, struct cdevsw *, int *unit, struct cdev **dev, int extra);
|
||||
|
||||
int count_dev(struct cdev *_dev);
|
||||
void delist_dev(struct cdev *_dev);
|
||||
void destroy_dev(struct cdev *_dev);
|
||||
int destroy_dev_sched(struct cdev *dev);
|
||||
int destroy_dev_sched_cb(struct cdev *dev, void (*cb)(void *), void *arg);
|
||||
|
|
|
|||
Loading…
Reference in a new issue