Skip site navigation (1)Skip section navigation (2)
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>