svn commit: r193363 - user/kmacy/releng_7_2_fcs/sys/dev/cxgb
Robert Watson
rwatson at FreeBSD.org
Wed Jun 3 07:31:00 UTC 2009
On Wed, 3 Jun 2009, Kip Macy wrote:
> clear next pointers and set M_PKTHDR when needed
Without looking at the context in detail, in general, you need to allocate
mbufs intended to be headers as that from inception, or use M_MOVE_PKTHDR().
MAC, for example, allocates an mbuf tag with each PKTHDR mbuf so that there's
always storage for the MAC label on a packet, and if you hand assign the
M_PKTHDR flag to mbufs, that alloation will be missed. This is only a problem
if you later inject that header into the stack, but that's usually the point
of adding headers so I'm guessing that can happen here? :-)
Robert N M Watson
Computer Laboratory
University of Cambridge
>
> Modified:
> user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
>
> Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
> ==============================================================================
> --- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Wed Jun 3 01:59:42 2009 (r193362)
> +++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Wed Jun 3 02:06:49 2009 (r193363)
> @@ -2678,6 +2678,8 @@ get_packet(adapter_t *adap, unsigned int
> flags = M_PKTHDR;
> if (fl->zone != zone_pack)
> m_cljset(m0, cl, fl->type);
> + m0->m_flags |= flags;
> + m0->m_next = m0->m_nextpkt = NULL;
> m0->m_pkthdr.len = m0->m_len = len;
> }
> switch(sopeop) {
>
More information about the svn-src-user
mailing list