mirror of
https://github.com/opnsense/src.git
synced 2026-06-08 16:22:46 -04:00
cxgbe(4): Empty the clib_db before trying to destroy it.
This fixes a panic on driver unload. Reported by: Jithesh Arakkan @ Chelsio MFC after: 1 week Sponsored by: Chelsio Communications
This commit is contained in:
parent
2290dfb40f
commit
bb877c0620
1 changed files with 13 additions and 0 deletions
|
|
@ -854,8 +854,21 @@ t4_clip_modload(void)
|
|||
void
|
||||
t4_clip_modunload(void)
|
||||
{
|
||||
struct clip_db_entry *cde;
|
||||
int i;
|
||||
|
||||
EVENTHANDLER_DEREGISTER(ifaddr_event_ext, ifaddr_evhandler);
|
||||
taskqueue_drain(taskqueue_thread, &clip_db_task);
|
||||
mtx_lock(&clip_db_lock);
|
||||
for (i = 0; i <= clip_db_mask; i++) {
|
||||
while ((cde = LIST_FIRST(&clip_db[i])) != NULL) {
|
||||
MPASS(cde->tmp_ref == 0);
|
||||
MPASS(cde->adp_ref == 0);
|
||||
LIST_REMOVE(cde, link);
|
||||
free(cde, M_CXGBE);
|
||||
}
|
||||
}
|
||||
mtx_unlock(&clip_db_lock);
|
||||
hashdestroy(clip_db, M_CXGBE, clip_db_mask);
|
||||
mtx_destroy(&clip_db_lock);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue