mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
Don't bother with acquiring/releasing Giant around kmem_malloc() and
kmem_free() for now. Kmem_malloc() and kmem_free() now have appropriate assertions in place, and these checks aren't feasible until more of the networking code is locked down. Also, the extra assertions here should already be caught by the WITNESS code as lock order violations should mutex operations on Giant be reintroduced here later.
This commit is contained in:
parent
297c46b68c
commit
5dbc7fe2d7
1 changed files with 0 additions and 40 deletions
|
|
@ -205,25 +205,11 @@ m_alloc_ref(nmb, how)
|
|||
|
||||
nbytes = round_page(nmb * sizeof(union mext_refcnt));
|
||||
mtx_exit(&mcntfree.m_mtx, MTX_DEF);
|
||||
#ifdef WITNESS
|
||||
/*
|
||||
* XXX: Make sure we don't create lock order problems.
|
||||
* XXX: We'll grab Giant, but for that to be OK, make sure
|
||||
* XXX: that either Giant is already held OR make sure that
|
||||
* XXX: no other locks are held coming in.
|
||||
* XXX: Revisit once most of the net stuff gets locks added.
|
||||
*/
|
||||
KASSERT(mtx_owned(&Giant) || witness_list(CURPROC) == 0,
|
||||
("m_alloc_ref: Giant must be owned or no locks held"));
|
||||
#endif
|
||||
mtx_enter(&Giant, MTX_DEF);
|
||||
if ((p = (caddr_t)kmem_malloc(mb_map, nbytes, how == M_TRYWAIT ?
|
||||
M_WAITOK : M_NOWAIT)) == NULL) {
|
||||
mtx_exit(&Giant, MTX_DEF);
|
||||
mtx_enter(&mcntfree.m_mtx, MTX_DEF);
|
||||
return (0);
|
||||
}
|
||||
mtx_exit(&Giant, MTX_DEF);
|
||||
nmb = nbytes / sizeof(union mext_refcnt);
|
||||
|
||||
/*
|
||||
|
|
@ -275,24 +261,11 @@ m_mballoc(nmb, how)
|
|||
nbytes = round_page(nmb * MSIZE);
|
||||
|
||||
mtx_exit(&mmbfree.m_mtx, MTX_DEF);
|
||||
#ifdef WITNESS
|
||||
/*
|
||||
* XXX: Make sure we don't create lock order problems.
|
||||
* XXX: We'll grab Giant, but for that to be OK, make sure
|
||||
* XXX: that either Giant is already held OR make sure that
|
||||
* XXX: no other locks are held coming in.
|
||||
* XXX: Revisit once most of the net stuff gets locks added.
|
||||
*/
|
||||
KASSERT(mtx_owned(&Giant) || witness_list(CURPROC) == 0,
|
||||
("m_mballoc: Giant must be owned or no locks held"));
|
||||
#endif
|
||||
mtx_enter(&Giant, MTX_DEF);
|
||||
p = (caddr_t)kmem_malloc(mb_map, nbytes, M_NOWAIT);
|
||||
if (p == 0 && how == M_TRYWAIT) {
|
||||
atomic_add_long(&mbstat.m_wait, 1);
|
||||
p = (caddr_t)kmem_malloc(mb_map, nbytes, M_WAITOK);
|
||||
}
|
||||
mtx_exit(&Giant, MTX_DEF);
|
||||
mtx_enter(&mmbfree.m_mtx, MTX_DEF);
|
||||
|
||||
/*
|
||||
|
|
@ -409,21 +382,8 @@ m_clalloc(ncl, how)
|
|||
|
||||
npg = ncl;
|
||||
mtx_exit(&mclfree.m_mtx, MTX_DEF);
|
||||
#ifdef WITNESS
|
||||
/*
|
||||
* XXX: Make sure we don't create lock order problems.
|
||||
* XXX: We'll grab Giant, but for that to be OK, make sure
|
||||
* XXX: that either Giant is already held OR make sure that
|
||||
* XXX: no other locks are held coming in.
|
||||
* XXX: Revisit once most of the net stuff gets locks added.
|
||||
*/
|
||||
KASSERT(mtx_owned(&Giant) || witness_list(CURPROC) == 0,
|
||||
("m_clalloc: Giant must be owned or no locks held"));
|
||||
#endif
|
||||
mtx_enter(&Giant, MTX_DEF);
|
||||
p = (caddr_t)kmem_malloc(mb_map, ctob(npg),
|
||||
how == M_TRYWAIT ? M_WAITOK : M_NOWAIT);
|
||||
mtx_exit(&Giant, MTX_DEF);
|
||||
ncl = ncl * PAGE_SIZE / MCLBYTES;
|
||||
mtx_enter(&mclfree.m_mtx, MTX_DEF);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue