Date: Wed, 18 Sep 2002 17:07:10 +0200 From: Poul-Henning Kamp <phk@freebsd.org> To: arch@freebsd.org Subject: Trivial mbuf patch for review. Message-ID: <3185.1032361630@critter.freebsd.dk>
next in thread | raw e-mail | index | archive | help
This patch is a no-op which replaces local mbuf-chain counting loops with calls to m_length() and in one case m_fixhdr(). Index: kern/uipc_socket2.c =================================================================== RCS file: /home/ncvs/src/sys/kern/uipc_socket2.c,v retrieving revision 1.103 diff -u -r1.103 uipc_socket2.c --- kern/uipc_socket2.c 16 Aug 2002 18:41:48 -0000 1.103 +++ kern/uipc_socket2.c 18 Sep 2002 14:08:34 -0000 @@ -498,11 +498,11 @@ #ifdef SOCKBUF_DEBUG void sbcheck(sb) - register struct sockbuf *sb; + struct sockbuf *sb; { - register struct mbuf *m; - register struct mbuf *n = 0; - register u_long len = 0, mbcnt = 0; + struct mbuf *m; + struct mbuf *n = 0; + u_long len = 0, mbcnt = 0; for (m = sb->sb_mb; m; m = n) { n = m->m_nextpkt; @@ -610,22 +610,18 @@ */ int sbappendaddr(sb, asa, m0, control) - register struct sockbuf *sb; + struct sockbuf *sb; struct sockaddr *asa; struct mbuf *m0, *control; { - register struct mbuf *m, *n; + struct mbuf *m, *n; int space = asa->sa_len; if (m0 && (m0->m_flags & M_PKTHDR) == 0) panic("sbappendaddr"); if (m0) space += m0->m_pkthdr.len; - for (n = control; n; n = n->m_next) { - space += n->m_len; - if (n->m_next == 0) /* keep pointer to last control buf */ - break; - } + space += m_length(control, &n); if (space > sbspace(sb)) return (0); if (asa->sa_len > MLEN) @@ -657,19 +653,12 @@ struct sockbuf *sb; struct mbuf *control, *m0; { - register struct mbuf *m, *n; - int space = 0; + struct mbuf *m, *n; + int space; if (control == 0) panic("sbappendcontrol"); - for (m = control; ; m = m->m_next) { - space += m->m_len; - if (m->m_next == 0) - break; - } - n = m; /* save pointer to last control buffer */ - for (m = m0; m; m = m->m_next) - space += m->m_len; + space = m_length(control, &n) + m_length(m0, NULL); if (space > sbspace(sb)) return (0); n->m_next = m0; /* concatenate data to control */ Index: net/bpf.c =================================================================== RCS file: /home/ncvs/src/sys/net/bpf.c,v retrieving revision 1.94 diff -u -r1.94 bpf.c --- net/bpf.c 31 Jul 2002 16:11:32 -0000 1.94 +++ net/bpf.c 18 Sep 2002 14:18:31 -0000 @@ -1123,11 +1123,8 @@ struct bpf_if *bp = ifp->if_bpf; struct bpf_d *d; u_int pktlen, slen; - struct mbuf *m0; - pktlen = 0; - for (m0 = m; m0 != 0; m0 = m0->m_next) - pktlen += m0->m_len; + pktlen = m_length(m, NULL); BPFIF_LOCK(bp); for (d = bp->bif_dlist; d != 0; d = d->bd_next) { Index: net/if_ppp.c =================================================================== RCS file: /home/ncvs/src/sys/net/if_ppp.c,v retrieving revision 1.83 diff -u -r1.83 if_ppp.c --- net/if_ppp.c 19 Aug 2002 19:22:41 -0000 1.83 +++ net/if_ppp.c 18 Sep 2002 14:19:07 -0000 @@ -758,7 +758,6 @@ struct ifqueue *ifq; enum NPmode mode; int len; - struct mbuf *m; #ifdef MAC error = mac_check_ifnet_transmit(ifp, m0); @@ -851,9 +850,7 @@ *cp++ = protocol & 0xff; m0->m_len += PPP_HDRLEN; - len = 0; - for (m = m0; m != 0; m = m->m_next) - len += m->m_len; + len = m_length(m0, NULL); if (sc->sc_flags & SC_LOG_OUTPKT) { printf("ppp%d output: ", ifp->if_unit); @@ -1087,9 +1084,7 @@ struct mbuf *mcomp = NULL; int slen, clen; - slen = 0; - for (mp = m; mp != NULL; mp = mp->m_next) - slen += mp->m_len; + slen = m_length(m, NULL); clen = (*sc->sc_xcomp->compress) (sc->sc_xc_state, &mcomp, m, slen, sc->sc_if.if_mtu + PPP_HDRLEN); if (mcomp != NULL) { @@ -1324,9 +1319,7 @@ sc->sc_stats.ppp_ipackets++; if (sc->sc_flags & SC_LOG_INPKT) { - ilen = 0; - for (mp = m; mp != NULL; mp = mp->m_next) - ilen += mp->m_len; + ilen = m_length(m, NULL); printf("ppp%d: got %d bytes\n", ifp->if_unit, ilen); pppdumpm(m); } @@ -1389,9 +1382,7 @@ } #endif - ilen = 0; - for (mp = m; mp != NULL; mp = mp->m_next) - ilen += mp->m_len; + ilen = m_length(m, NULL); #ifdef VJC if (sc->sc_flags & SC_VJ_RESET) { Index: netinet/ip_input.c =================================================================== RCS file: /home/ncvs/src/sys/netinet/ip_input.c,v retrieving revision 1.208 diff -u -r1.208 ip_input.c --- netinet/ip_input.c 17 Sep 2002 11:20:02 -0000 1.208 +++ netinet/ip_input.c 18 Sep 2002 13:47:10 -0000 @@ -1071,12 +1071,8 @@ m->m_len += (IP_VHL_HL(ip->ip_vhl) << 2); m->m_data -= (IP_VHL_HL(ip->ip_vhl) << 2); /* some debugging cruft by sklower, below, will go away soon */ - if (m->m_flags & M_PKTHDR) { /* XXX this should be done elsewhere */ - register int plen = 0; - for (t = m; t; t = t->m_next) - plen += t->m_len; - m->m_pkthdr.len = plen; - } + if (m->m_flags & M_PKTHDR) /* XXX this should be done elsewhere */ + m_fixhdr(m); return (m); dropfrag: Index: netns/idp_usrreq.c =================================================================== RCS file: /home/ncvs/src/sys/netns/idp_usrreq.c,v retrieving revision 1.12 diff -u -r1.12 idp_usrreq.c --- netns/idp_usrreq.c 31 May 2002 11:52:34 -0000 1.12 +++ netns/idp_usrreq.c 18 Sep 2002 14:14:06 -0000 @@ -144,18 +144,12 @@ register struct mbuf *m; register struct idp *idp; register struct socket *so; - register int len = 0; + register int len; register struct route *ro; struct mbuf *mprev; extern int idpcksum; - /* - * Calculate data length. - */ - for (m = m0; m; m = m->m_next) { - mprev = m; - len += m->m_len; - } + len = m_length(m0, &mprev); /* * Make sure packet is actually of even length. */ Index: netns/spp_usrreq.c =================================================================== RCS file: /home/ncvs/src/sys/netns/spp_usrreq.c,v retrieving revision 1.16 diff -u -r1.16 spp_usrreq.c --- netns/spp_usrreq.c 25 Aug 2002 13:17:35 -0000 1.16 +++ netns/spp_usrreq.c 18 Sep 2002 14:13:27 -0000 @@ -687,8 +687,7 @@ firstbad = m; /*for (;;) {*/ /* calculate length */ - for (m0 = m, len = 0; m ; m = m->m_next) - len += m->m_len; + len = m_length(m); if (len > cb->s_mtu) { } /* FINISH THIS Index: netsmb/smb_rq.c =================================================================== RCS file: /home/ncvs/src/sys/netsmb/smb_rq.c,v retrieving revision 1.7 diff -u -r1.7 smb_rq.c --- netsmb/smb_rq.c 16 Sep 2002 09:51:58 -0000 1.7 +++ netsmb/smb_rq.c 18 Sep 2002 14:12:50 -0000 @@ -421,9 +421,7 @@ m0 = m_split(mtop, offset, M_TRYWAIT); if (m0 == NULL) return EBADRPC; - for(len = 0, m = m0; m->m_next; m = m->m_next) - len += m->m_len; - len += m->m_len; + len = m_length(m0, &m); m->m_len -= len - count; if (mdp->md_top == NULL) { md_initm(mdp, m0); Index: nfsclient/nfs_socket.c =================================================================== RCS file: /home/ncvs/src/sys/nfsclient/nfs_socket.c,v retrieving revision 1.86 diff -u -r1.86 nfs_socket.c --- nfsclient/nfs_socket.c 8 Sep 2002 15:11:18 -0000 1.86 +++ nfsclient/nfs_socket.c 18 Sep 2002 14:19:42 -0000 @@ -869,13 +869,7 @@ rep->r_vp = vp; rep->r_td = td; rep->r_procnum = procnum; - i = 0; - m = mrest; - while (m) { - i += m->m_len; - m = m->m_next; - } - mrest_len = i; + mrest_len = i = m_length(mrest, NULL); /* * Get the RPC header with authorization. Index: nfsserver/nfs_syscalls.c =================================================================== RCS file: /home/ncvs/src/sys/nfsserver/nfs_syscalls.c,v retrieving revision 1.80 diff -u -r1.80 nfs_syscalls.c --- nfsserver/nfs_syscalls.c 24 Jul 2002 23:10:34 -0000 1.80 +++ nfsserver/nfs_syscalls.c 18 Sep 2002 14:11:36 -0000 @@ -451,12 +451,7 @@ nfsrv_updatecache(nd, TRUE, mreq); nd->nd_mrep = NULL; case RC_REPLY: - m = mreq; - siz = 0; - while (m) { - siz += m->m_len; - m = m->m_next; - } + siz = m_length(mreq, NULL); if (siz <= 0 || siz > NFS_MAXPACKET) { printf("mbuf siz=%d\n",siz); panic("Bad nfs svc reply"); -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3185.1032361630>