Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/uipc_mbuf.c
Show First 20 Lines • Show All 1,615 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
struct mbuf_ext_pgs *ext_pgs; | struct mbuf_ext_pgs *ext_pgs; | ||||
vm_page_t pg; | vm_page_t pg; | ||||
MBUF_EXT_PGS_ASSERT(m); | MBUF_EXT_PGS_ASSERT(m); | ||||
ext_pgs = m->m_ext.ext_pgs; | ext_pgs = m->m_ext.ext_pgs; | ||||
for (int i = 0; i < ext_pgs->npgs; i++) { | for (int i = 0; i < ext_pgs->npgs; i++) { | ||||
pg = PHYS_TO_VM_PAGE(ext_pgs->pa[i]); | pg = PHYS_TO_VM_PAGE(ext_pgs->pa[i]); | ||||
/* | |||||
* Note: page is not locked, as it has no | |||||
* object and is not on any queues. | |||||
*/ | |||||
vm_page_unwire_noq(pg); | vm_page_unwire_noq(pg); | ||||
vm_page_free(pg); | vm_page_free(pg); | ||||
} | } | ||||
} | } | ||||
static struct mbuf * | static struct mbuf * | ||||
m_uiotombuf_nomap(struct uio *uio, int how, int len, int maxseg, int flags) | m_uiotombuf_nomap(struct uio *uio, int how, int len, int maxseg, int flags) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 491 Lines • Show Last 20 Lines |