`evqueue' is simple circular buffer. Its pretty enough to set head equal to tail to make it empty.
Index: sys/dev/hotplug.c =================================================================== RCS file: /cvs/src/sys/dev/hotplug.c,v retrieving revision 1.24 diff -u -p -r1.24 hotplug.c --- sys/dev/hotplug.c 22 Sep 2023 22:12:32 -0000 1.24 +++ sys/dev/hotplug.c 23 Sep 2023 11:33:14 -0000 @@ -148,11 +148,10 @@ hotplugopen(dev_t dev, int flag, int mod int hotplugclose(dev_t dev, int flag, int mode, struct proc *p) { - struct hotplug_event he; - mtx_enter(&hotplug_mtx); - while (hotplug_get_event(&he) == 0) - continue; + evqueue_head = 0; + evqueue_tail = 0; + evqueue_count = 0; mtx_leave(&hotplug_mtx); klist_invalidate(&hotplug_klist); opened = 0;