aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2021-11-10 21:57:12 +0000
committerMark Johnston <markj@FreeBSD.org>2023-03-24 23:56:47 +0000
commitd7ae385428ae8df4b5a39f752b389a9375597748 (patch)
treea7c227fa105680dcbc274fc038413704063d4439
parent25b824aa0d26a6aa0073c1c5cc4050276bf1e790 (diff)
downloadsrc-d7ae385428ae8df4b5a39f752b389a9375597748.tar.gz
src-d7ae385428ae8df4b5a39f752b389a9375597748.zip
mbuf: Fix an offset calculation in m_apply_extpg_one()
We were not including the requested starting offset in the page offset. Approved by: re (cperciva) Reviewed by: jhb Fixes: 3c7a01d773ac ("Extend m_apply() to support unmapped mbufs.") Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D32922 (cherry picked from commit ac2b54441742b3148de72e3b29aa0f00d29bb825) (cherry picked from commit 70421fd527e315bbc4850db2d7e80fc008393bce)
-rw-r--r--sys/kern/uipc_mbuf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index 13c98d0895fa..abe292013d28 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -1293,7 +1293,7 @@ m_apply_extpg_one(struct mbuf *m, int off, int len,
pglen = m_epg_pagelen(m, i, pgoff);
if (off < pglen) {
count = min(pglen - off, len);
- p = (void *)PHYS_TO_DMAP(m->m_epg_pa[i] + pgoff);
+ p = (void *)PHYS_TO_DMAP(m->m_epg_pa[i] + pgoff + off);
rval = f(arg, p, count);
if (rval)
return (rval);