Author: glebius
Date: Fri Mar 15 12:33:23 2013
New Revision: 248320
URL: http://svnweb.freebsd.org/changeset/base/248320

Log:
  Use m_getcl() instead of hand made allocation.
  
  Sponsored by: Nginx, Inc.

Modified:
  head/sys/netinet6/ip6_input.c

Modified: head/sys/netinet6/ip6_input.c
==============================================================================
--- head/sys/netinet6/ip6_input.c       Fri Mar 15 11:16:12 2013        
(r248319)
+++ head/sys/netinet6/ip6_input.c       Fri Mar 15 12:33:23 2013        
(r248320)
@@ -497,21 +497,16 @@ ip6_input(struct mbuf *m)
        if (m && m->m_next != NULL && m->m_pkthdr.len < MCLBYTES) {
                struct mbuf *n;
 
-               MGETHDR(n, M_NOWAIT, MT_HEADER);
-               if (n)
-                       M_MOVE_PKTHDR(n, m);
-               if (n && n->m_pkthdr.len > MHLEN) {
-                       MCLGET(n, M_NOWAIT);
-                       if ((n->m_flags & M_EXT) == 0) {
-                               m_freem(n);
-                               n = NULL;
-                       }
-               }
+               if (m->m_pkthdr.len > MHLEN)
+                       n = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR);
+               else
+                       n = m_gethdr(M_NOWAIT, MT_DATA);
                if (n == NULL) {
                        m_freem(m);
                        return; /* ENOBUFS */
                }
 
+               M_MOVE_PKTHDR(n, m);
                m_copydata(m, 0, n->m_pkthdr.len, mtod(n, caddr_t));
                n->m_len = n->m_pkthdr.len;
                m_freem(m);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to