[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AE90C24D6B3A694183C094C60CF0A2F6026B7038@saturn3.aculab.com>
Date: Thu, 11 Oct 2012 09:21:35 +0100
From: "David Laight" <David.Laight@...LAB.COM>
To: Måns Rullgård <mans@...sr.com>,
"Jon Masters" <jonathan@...masters.org>
Cc: <linux-arm-kernel@...ts.infradead.org>, <netdev@...r.kernel.org>
Subject: RE: alignment faults in 3.6
> -----Original Message-----
> From: netdev-owner@...r.kernel.org [mailto:netdev-owner@...r.kernel.org] On Behalf Of Måns Rullgård
> Sent: 11 October 2012 03:27
> To: Jon Masters
> Cc: linux-arm-kernel@...ts.infradead.org; netdev@...r.kernel.org
> Subject: Re: alignment faults in 3.6
>
> Jon Masters <jonathan@...masters.org> writes:
>
> > Hi everyone,
> >
> > On 10/05/2012 10:33 AM, Rob Herring wrote:
> >> On 10/05/2012 09:05 AM, Russell King - ARM Linux wrote:
> >>> On Fri, Oct 05, 2012 at 07:24:44AM -0500, Rob Herring wrote:
> >>>> On 10/05/2012 03:24 AM, Russell King - ARM Linux wrote:
> >>>>> Does it matter? I'm just relaying the argument against adding __packed
> >>>>> which was used before we were forced (by the networking folk) to implement
> >>>>> the alignment fault handler.
> >>>>
> >>>> It doesn't really matter what will be accepted or not as adding __packed
> >>>> to struct iphdr doesn't fix the problem anyway.
...
> There are exactly two possible solutions:
>
> 1. Change the networking code so those structs are always aligned. This
> might not be (easily) possible.
> 2. Mark the structs __packed and fix any typecasts like the ones seen in
> this thread. This will have an adverse effect in cases where the
> structs are in fact aligned.
>
> Both solutions lie squarely in the networking code. It's time to
> involve that list, or we'll never get anywhere.
It might be enough to use __attribute__((aligned(2))) on some structure
members (actually does 'ldm' need 8 byte alignment?? - in which case
aligned(4) is enough).
One on my bugbears is hardware that will once receive ethernet frames
onto a 4n boundary - it needs to be 4n+2. two bytes of 'junk' will do.
David
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists