mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-12 09:58:36 +00: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
@ -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 New Issue
Block a user