summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_mbuf.c
diff options
context:
space:
mode:
authordarrenr <darrenr@FreeBSD.org>2002-09-19 01:21:24 +0000
committerdarrenr <darrenr@FreeBSD.org>2002-09-19 01:21:24 +0000
commit26b0ff18e61984b14bcc7ed2d6c9dbb27d612146 (patch)
treecb300622cfed198abf4556cd856873aa8e07f7ac /sys/kern/uipc_mbuf.c
parentd5e93c10eca27dbd37dc5d11dfdc49ea9aa2c54d (diff)
downloadFreeBSD-src-26b0ff18e61984b14bcc7ed2d6c9dbb27d612146.zip
FreeBSD-src-26b0ff18e61984b14bcc7ed2d6c9dbb27d612146.tar.gz
If M_PKTHDR is set then we don't need to do a loop to find the total length.
Diffstat (limited to 'sys/kern/uipc_mbuf.c')
-rw-r--r--sys/kern/uipc_mbuf.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index cad6d3e..b4bbad0 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -727,6 +727,9 @@ m_length(struct mbuf *m0, struct mbuf **last)
struct mbuf *m;
u_int len;
+ if ((m0->m_flags & M_PKTHDR) != 0)
+ return m->m_pkthdr.len;
+
len = 0;
for (m = m0; m != NULL; m = m->m_next) {
len += m->m_len;
OpenPOWER on IntegriCloud