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 03:15:45 +0000
commit70421fd527e315bbc4850db2d7e80fc008393bce (patch)
treeaac223c5123db628b4490806d838aca9e9d50527
parent9cb5b954606ec8a49b6127d2f58f7ee37ca0bb9c (diff)
downloadsrc-70421fd527e315bbc4850db2d7e80fc008393bce.tar.gz
src-70421fd527e315bbc4850db2d7e80fc008393bce.zip
mbuf: Fix an offset calculation in m_apply_extpg_one()
We were not including the requested starting offset in the page offset. 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)
-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);