From owner-cvs-all@FreeBSD.ORG Thu Mar 27 09:39:56 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6FD1237B401; Thu, 27 Mar 2003 09:39:56 -0800 (PST) Received: from angelica.unixdaemons.com (angelica.unixdaemons.com [209.148.64.135]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5E2FD43F85; Thu, 27 Mar 2003 09:39:55 -0800 (PST) (envelope-from bmilekic@unixdaemons.com) Received: from angelica.unixdaemons.com (localhost.unixdaemons.com [127.0.0.1])h2RHF1mq018639; Thu, 27 Mar 2003 12:15:01 -0500 (EST) Received: (from bmilekic@localhost) by angelica.unixdaemons.com (8.12.8/8.12.1/Submit) id h2RHF1pX018638; Thu, 27 Mar 2003 12:15:01 -0500 (EST) (envelope-from bmilekic@unixdaemons.com) X-Authentication-Warning: angelica.unixdaemons.com: bmilekic set sender to bmilekic@unixdaemons.com using -f Date: Thu, 27 Mar 2003 12:15:01 -0500 From: Bosko Milekic To: Maxime Henrion Message-ID: <20030327171501.GA18549@unixdaemons.com> References: <200303260452.h2Q4quap015364@www.ambrisko.com> <20030326114030.U2075@odysseus.silby.com> <20030326183351.GJ57674@elvis.mu.org> <20030326130903.G2075@odysseus.silby.com> <20030327013224.P7674@odysseus.silby.com> <20030327164402.GA15454@unixdaemons.com> <20030327165800.GK57674@elvis.mu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="u3/rZRmxL6MmkK24" Content-Disposition: inline In-Reply-To: <20030327165800.GK57674@elvis.mu.org> User-Agent: Mutt/1.4.1i X-Spam-Status: No, hits=-38.0 required=5.0 tests=AWL,EMAIL_ATTRIBUTION,IN_REP_TO,PATCH_UNIFIED_DIFF, QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES, USER_AGENT_MUTT,X_AUTH_WARNING version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) cc: src-committers@freebsd.org cc: Doug Ambrisko cc: cvs-src@freebsd.org cc: Sam Leffler cc: Mike Silbersack cc: cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/conf options src/sys/netinet ip_output.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Mar 2003 17:39:59 -0000 --u3/rZRmxL6MmkK24 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline See attached. Similar logic may be applied to m_dup_pkthdr(). On Thu, Mar 27, 2003 at 05:58:00PM +0100, Maxime Henrion wrote: > Bosko Milekic wrote: > > > > Can you please still use m_gethdr() or m_getcl() to do the allocations > > in the defragment function? Similarly, for > MCLBYTES, use m_getm(). > > Don't roll your own. > > Please see my reply to Mike for the first version of his patch. He > couldn't do this because m_dup_pkthdr() has a KASSERT() that makes it > panic if we have a cluster attached to the mbuf. > > Cheers, > Maxime > -- Bosko Milekic bmilekic@unixdaemons.com bmilekic@FreeBSD.org --u3/rZRmxL6MmkK24 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="move.diff" --- /usr/src/sys.old/kern/uipc_mbuf.c Wed Mar 5 18:37:41 2003 +++ /usr/src/sys/kern/uipc_mbuf.c Thu Mar 6 18:16:06 2003 @@ -79,14 +79,15 @@ ("m_move_pkthdr: called on non-header")); KASSERT(SLIST_EMPTY(&to->m_pkthdr.tags), ("m_move_pkthdr: to has tags")); -#endif KASSERT((to->m_flags & M_EXT) == 0, ("m_move_pkthdr: to has cluster")); +#endif #ifdef MAC if (to->m_flags & M_PKTHDR) mac_destroy_mbuf(to); #endif - to->m_flags = from->m_flags & M_COPYFLAGS; - to->m_data = to->m_pktdat; + to->m_flags = (from->m_flags & M_COPYFLAGS) | (to->m_flags & M_EXT); + if ((to->m_flags & M_EXT) == 0) + to->m_data = to->m_pktdat; to->m_pkthdr = from->m_pkthdr; /* especially tags */ #ifdef MAC mac_init_mbuf(to, 1); /* XXXMAC no way to fail */ --u3/rZRmxL6MmkK24--