diff options
author | Mark Johnston <markj@FreeBSD.org> | 2021-11-10 21:57:12 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2023-03-24 03:15:45 +0000 |
commit | 70421fd527e315bbc4850db2d7e80fc008393bce (patch) | |
tree | aac223c5123db628b4490806d838aca9e9d50527 | |
parent | 9cb5b954606ec8a49b6127d2f58f7ee37ca0bb9c (diff) | |
download | src-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.c | 2 |
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); |