svn commit: r361949 - projects/nfs-over-tls/sys/kern
Rick Macklem
rmacklem at FreeBSD.org
Tue Jun 9 01:06:46 UTC 2020
Author: rmacklem
Date: Tue Jun 9 01:06:45 2020
New Revision: 361949
URL: https://svnweb.freebsd.org/changeset/base/361949
Log:
Modify mb_mapped_to_unmapped() as suggested by gallatin at .
Modified:
projects/nfs-over-tls/sys/kern/kern_mbuf.c
Modified: projects/nfs-over-tls/sys/kern/kern_mbuf.c
==============================================================================
--- projects/nfs-over-tls/sys/kern/kern_mbuf.c Tue Jun 9 00:27:54 2020 (r361948)
+++ projects/nfs-over-tls/sys/kern/kern_mbuf.c Tue Jun 9 01:06:45 2020 (r361949)
@@ -1583,37 +1583,35 @@ struct mbuf *
mb_mapped_to_unmapped(struct mbuf *mp, int len, int mlen, int how,
struct mbuf **mlast)
{
- struct mbuf *m, *mout = NULL;
- char *pgpos = NULL, *mbpos;
- int i = 0, mblen, mbufsiz, pglen, xfer;
+ struct mbuf *m, *mout;
+ char *pgpos, *mbpos;
+ int i, mblen, mbufsiz, pglen, xfer;
if (len == 0)
return (NULL);
- m = NULL;
- pglen = mblen = 0;
+ mbufsiz = min(mlen, len);
+ m = mout = mb_alloc_ext_plus_pages(mbufsiz, how);
+ if (m == NULL)
+ return (m);
+ pgpos = (char *)(void *)PHYS_TO_DMAP(m->m_epg_pa[0]);
+ pglen = PAGE_SIZE;
+ mblen = 0;
+ i = 0;
do {
if (pglen == 0) {
- if (m == NULL || ++i == m->m_epg_npgs) {
+ if (++i == m->m_epg_npgs) {
+ m->m_epg_last_len = PAGE_SIZE;
mbufsiz = min(mlen, len);
+ m->m_next = mb_alloc_ext_plus_pages(mbufsiz,
+ how);
+ m = m->m_next;
if (m == NULL) {
- m = mout = mb_alloc_ext_plus_pages(
- mbufsiz, how);
- if (m == NULL)
- return (m);
- } else {
- m->m_epg_last_len = PAGE_SIZE;
- m->m_next = mb_alloc_ext_plus_pages(
- mbufsiz, how);
- m = m->m_next;
- if (m == NULL) {
- m_freem(mout);
- return (m);
- }
+ m_freem(mout);
+ return (m);
}
i = 0;
}
- pgpos = (char *)(void *)
- PHYS_TO_DMAP(m->m_epg_pa[i]);
+ pgpos = (char *)(void *)PHYS_TO_DMAP(m->m_epg_pa[i]);
pglen = PAGE_SIZE;
}
while (mblen == 0) {
@@ -1628,7 +1626,7 @@ mb_mapped_to_unmapped(struct mbuf *mp, int len, int ml
mp = mp->m_next;
}
xfer = min(mblen, pglen);
- bcopy(mbpos, pgpos, xfer);
+ memcpy(pgpos, mbpos, xfer);
pgpos += xfer;
mbpos += xfer;
pglen -= xfer;
More information about the svn-src-projects
mailing list