[--snip--]
Ah, ok. Thanks for the clarification.
Doesn't it help that we traverse the list under dpm_list_mtx? Anyone who
removes an entry is required to take dpm_list_mtx that we're holding while
the list is traversed except when the callbacks are invoked.
The only problem I see is when the device currently being handled is removed
from the list by a concurrent thread. Is that you were referring to?
Rafael
--