Date: Mon, 26 Aug 2013 15:08:08 -0700 From: Thomas Skibo <ThomasSkibo@sbcglobal.net> To: Andre Oppermann <andre@freebsd.org> Cc: freebsd-arm <freebsd-arm@FreeBSD.org>, Ian Lepore <ian@FreeBSD.org> Subject: Re: ARM network trouble after recent mbuf changes Message-ID: <521BD1C8.8000500@sbcglobal.net> In-Reply-To: <521BC2F3.4050600@freebsd.org> References: <1377550636.1111.156.camel@revolution.hippie.lan> <521BC2F3.4050600@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 8/26/13 2:04 PM, Andre Oppermann wrote: > On 26.08.2013 22:57, Ian Lepore wrote: >> >> Could this be something related to how bitfields are handled in EABI? > > It could be. We do use bitfields since forever in ip.h for the IPv4 header > too. I think the bitfields are fine and it's doing what you expect: struct m_hdr is five words long. I think what's happening is that the compiler pads the struct pkthdr in an mbuf to 64 bits. Because MLEN doesn't take into account that padding, it is too big by 4. My work-around fixes it by making struct m_hdr six words instead of five. > > Besides that, do all the ARM system with this problem use the same network > interface type? > The same driver? No. Zynq/Zedboard has a unique ethernet driver and it's seeing the problem I tried your patch (adding __packed to a few structs) and it didn't work. Maybe pack struct mbuf ? --Thomas -- -------- Thomas Skibo ThomasSkibo@sbcglobal.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?521BD1C8.8000500>