From owner-freebsd-arm@FreeBSD.ORG Tue Aug 27 15:41:04 2013 Return-Path: Delivered-To: freebsd-arm@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 250876B4; Tue, 27 Aug 2013 15:41:04 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from nibbler.fubar.geek.nz (nibbler.fubar.geek.nz [199.48.134.198]) by mx1.freebsd.org (Postfix) with ESMTP id 069F32024; Tue, 27 Aug 2013 15:41:03 +0000 (UTC) Received: from bender (global-1-18.nat.csx.cam.ac.uk [131.111.184.18]) by nibbler.fubar.geek.nz (Postfix) with ESMTPSA id 0D4005DFF7; Tue, 27 Aug 2013 15:41:01 +0000 (UTC) Date: Tue, 27 Aug 2013 16:40:55 +0100 From: Andrew Turner To: Warner Losh Subject: Re: ARM network trouble after recent mbuf changes Message-ID: <20130827164055.4a757a13@bender> In-Reply-To: References: <1377550636.1111.156.camel@revolution.hippie.lan> <521BC472.7040804@freebsd.org> <521BD531.4090104@sbcglobal.net> <521C4CD9.4050308@freebsd.org> <20130827102810.37e2dfc7@bender> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-arm , Andre Oppermann X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 15:41:04 -0000 On Tue, 27 Aug 2013 07:26:03 -0600 Warner Losh wrote: > > On Aug 27, 2013, at 3:28 AM, Andrew Turner wrote: > > > On Tue, 27 Aug 2013 08:53:13 +0200 > > Andre Oppermann wrote: > >> Please try the patch below to confirm. If it fixes your problem > >> for now I'm going to commit as an immediate fix while searching > >> for a better long term stable solution. > >> > > > > I tried this with a CTASSERT to check if struct m_hdr is the correct > > length. In this test the size is incorrect. It appears __ILP32__ is > > not defined on ARM. > > > > I have tested a fix suggested by Hans Petter Selasky where we mark > > m_hdr with __aligned(8). With this change I can netboot a > > PandaBoard. > > Isn't that a bug with our arm compiler then? No, on ARM EABI the definition of the size of a struct is to be the smallest multiple of its alignment. As we are increasing the alignment to 8-byte and the struct without this alignment is not a multiple of 8-bytes adding this alignment will pad to struct to use the unused 4 bytes between this and the next struct. Andrew > > Warner > >