Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Aug 2013 15:22:41 -0700
From:      Thomas Skibo <ThomasSkibo@sbcglobal.net>
To:        Andre Oppermann <andre@freebsd.org>
Cc:        freebsd-arm <freebsd-arm@FreeBSD.org>
Subject:   Re: ARM network trouble after recent mbuf changes
Message-ID:  <521BD531.4090104@sbcglobal.net>
In-Reply-To: <521BC472.7040804@freebsd.org>
References:  <1377550636.1111.156.camel@revolution.hippie.lan> <521BC472.7040804@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On 8/26/13 2:11 PM, Andre Oppermann wrote:
>
> Can you try this patch see check if it makes a difference on the bitfield?
>

Actually, this works for me.  But, I'm worried that somewhere else 
something is going to trip over a struct pkthdr not being 64-bit 
aligned.  There are several 64-bit fields in there.


--Thomas

root@ashbury:/usr/src/sys/sys # svn diff mbuf.h
Index: mbuf.h
===================================================================
--- mbuf.h	(revision 254889)
+++ mbuf.h	(working copy)
@@ -94,7 +94,7 @@
  	int32_t		 mh_len;	/* amount of data in this mbuf */
  	uint32_t	 mh_type:8,	/* type of data in this mbuf */
  			 mh_flags:24;	/* flags; see below */
-};
+} __packed;

  /*
   * Packet tag structure (see below for details).
@@ -169,7 +169,7 @@
  			    (struct mbuf *, void *, void *);
  	void		*ext_arg1;	/* optional argument pointer */
  	void		*ext_arg2;	/* optional argument pointer */
-};
+} __packed;

  /*
   * The core of the mbuf object along with some shortcut defines for 
practical
@@ -187,7 +187,7 @@
  		} MH;
  		char	M_databuf[MLEN];		/* !M_PKTHDR, !M_EXT */
  	} M_dat;
-};
+} __packed;
  #define	m_next		m_hdr.mh_next
  #define	m_len		m_hdr.mh_len


-- 
--------
Thomas Skibo
ThomasSkibo@sbcglobal.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?521BD531.4090104>