[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190125190715.GG22211@lunn.ch>
Date: Fri, 25 Jan 2019 20:07:15 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Heiner Kallweit <hkallweit1@...il.com>
Cc: Thierry Reding <thierry.reding@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Realtek linux nic maintainers <nic_swsd@...ltek.com>,
netdev@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] r8169: Load MAC address from device tree if present
> Andrew, for my understanding: What do you think is wrong with the
> alignment requirement? It was introduced because we do a 32 bit access
> to the start address of the array and want to avoid an unaligned access.
Hi Heiner
Because you are doing pointer aliasing, the compiler will by default
generate bad code, doing unaligned access. Adding the attribute works
around this. But it is just a work around. Since this is very slow
path code, i would just avoid the pointer aliasing, write a bit more C
code as Thierry suggested, and the optimiser will probably figure out
what is going on and produce reasonable code.
Also, in general, by avoiding pointer aliasing, you allow static code
checkers to work better. They are more likely to discover buffer
overruns, etc.
Andrew
Powered by blists - more mailing lists