Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/uipc_ktls.c
Show First 20 Lines • Show All 2,095 Lines • ▼ Show 20 Lines | if ((state->cbuf = ktls_buffer_alloc(wq, m)) != NULL) { | ||||
state->dst_iov[0].iov_base = (char *)state->cbuf + | state->dst_iov[0].iov_base = (char *)state->cbuf + | ||||
m->m_epg_1st_off; | m->m_epg_1st_off; | ||||
state->dst_iov[0].iov_len = len; | state->dst_iov[0].iov_len = len; | ||||
state->parray[0] = DMAP_TO_PHYS((vm_offset_t)state->cbuf); | state->parray[0] = DMAP_TO_PHYS((vm_offset_t)state->cbuf); | ||||
i = 1; | i = 1; | ||||
} else { | } else { | ||||
off = m->m_epg_1st_off; | off = m->m_epg_1st_off; | ||||
for (i = 0; i < m->m_epg_npgs; i++, off = 0) { | for (i = 0; i < m->m_epg_npgs; i++, off = 0) { | ||||
do { | pg = vm_page_alloc_noobj(VM_ALLOC_NODUMP | | ||||
pg = vm_page_alloc(NULL, 0, VM_ALLOC_NORMAL | | VM_ALLOC_WIRED | VM_ALLOC_WAITOK); | ||||
VM_ALLOC_NOOBJ | VM_ALLOC_NODUMP | | |||||
VM_ALLOC_WIRED | VM_ALLOC_WAITFAIL); | |||||
} while (pg == NULL); | |||||
len = m_epg_pagelen(m, i, off); | len = m_epg_pagelen(m, i, off); | ||||
state->parray[i] = VM_PAGE_TO_PHYS(pg); | state->parray[i] = VM_PAGE_TO_PHYS(pg); | ||||
state->dst_iov[i].iov_base = | state->dst_iov[i].iov_base = | ||||
(char *)PHYS_TO_DMAP(state->parray[i]) + off; | (char *)PHYS_TO_DMAP(state->parray[i]) + off; | ||||
state->dst_iov[i].iov_len = len; | state->dst_iov[i].iov_len = len; | ||||
} | } | ||||
} | } | ||||
KASSERT(i + 1 <= nitems(state->dst_iov), ("dst_iov is too small")); | KASSERT(i + 1 <= nitems(state->dst_iov), ("dst_iov is too small")); | ||||
▲ Show 20 Lines • Show All 606 Lines • Show Last 20 Lines |