And then rebuild and install a new kernel:
KK=`sysctl -n kern.osversion | cut -d# -f1`
cd /usr/src/sys/arch/`machine`/compile/$KK
make obj
make config
make
make install
Index: sys/kern/uipc_mbuf.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_mbuf.c,v
diff -u -p -r1.287 uipc_mbuf.c
--- sys/kern/uipc_mbuf.c 23 Jun 2023 04:36:49 -0000 1.287
+++ sys/kern/uipc_mbuf.c 20 Oct 2023 16:38:19 -0000
@@ -1080,9 +1080,7 @@ m_split(struct mbuf *m0, int len0, int w
n->m_len = 0;
return (n);
}
- if (m->m_flags & M_EXT)
- goto extpacket;
- if (remain > MHLEN) {
+ if ((m->m_flags & M_EXT) == 0 && remain > MHLEN) {
/* m can't be the lead packet */
m_align(n, 0);
n->m_next = m_split(m, len, wait);
@@ -1094,8 +1092,7 @@ m_split(struct mbuf *m0, int len0, int w
n->m_len = 0;
return (n);
}
- } else
- m_align(n, remain);
+ }
} else if (remain == 0) {
n = m->m_next;
m->m_next = NULL;
@@ -1104,14 +1101,13 @@ m_split(struct mbuf *m0, int len0, int w
MGET(n, wait, m->m_type);
if (n == NULL)
return (NULL);
- m_align(n, remain);
}
-extpacket:
if (m->m_flags & M_EXT) {
n->m_ext = m->m_ext;
MCLADDREFERENCE(m, n);
n->m_data = m->m_data + len;
} else {
+ m_align(n, remain);
memcpy(mtod(n, caddr_t), mtod(m, caddr_t) + len, remain);
}
n->m_len = remain;