summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_mbuf.c
diff options
context:
space:
mode:
authorbmilekic <bmilekic@FreeBSD.org>2003-02-20 03:01:04 +0000
committerbmilekic <bmilekic@FreeBSD.org>2003-02-20 03:01:04 +0000
commit78e7b5f0c627b0eaddebab0af4773e0356c27b3b (patch)
tree4f0776f26488bb7b9effb0dd4ae7898885fdb480 /sys/kern/subr_mbuf.c
parenteeab6579735293780ab11332990cfd7c898d7b84 (diff)
downloadFreeBSD-src-78e7b5f0c627b0eaddebab0af4773e0356c27b3b.zip
FreeBSD-src-78e7b5f0c627b0eaddebab0af4773e0356c27b3b.tar.gz
Fix a serious bug when computing the index for the
reference counter array for mbuf clusters. I don't know how this got past early testing nor how it survived so long without getting caught. If anyone was seeing really really bizarre memory corruption in a few mbufs this would be why.
Diffstat (limited to 'sys/kern/subr_mbuf.c')
-rw-r--r--sys/kern/subr_mbuf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/subr_mbuf.c b/sys/kern/subr_mbuf.c
index 0713b7b..171ccae 100644
--- a/sys/kern/subr_mbuf.c
+++ b/sys/kern/subr_mbuf.c
@@ -1059,7 +1059,7 @@ mb_reclaim(void)
} while (0)
#define cl2ref(cl) \
- (((uintptr_t)(cl) - (uintptr_t)cl_refcntmap) >> MCLSHIFT)
+ (((uintptr_t)(cl) - (uintptr_t)mb_list_clust.ml_mapbase) >> MCLSHIFT)
#define _mext_dealloc_ref(m) \
if ((m)->m_ext.ext_type != EXT_EXTREF) \
OpenPOWER on IntegriCloud