Thread (33 messages) 33 messages, 7 authors, 2011-05-27
STALE5534d

[PATCH] ARM: Do not allow unaligned accesses when CONFIG_ALIGNMENT_TRAP

From: catalin.marinas@arm.com (Catalin Marinas)
Date: 2011-05-23 14:41:53

2011/5/23 M?ns Rullg?rd [off-list ref]:
Catalin Marinas [off-list ref] writes:
quoted
On Mon, 2011-05-23 at 14:21 +0100, Russell King - ARM Linux wrote:
quoted
On Mon, May 23, 2011 at 12:16:48PM +0100, Catalin Marinas wrote:
quoted
Newer versions of gcc generate unaligned accesses by default, causing
kernel panics when CONFIG_ALIGNMENT_TRAP is enabled. This patch adds the
-mno-unaligned-access option to gcc.
This description doesn't make sense. ?If we have alignment traps enabled,
then we _expect_ to fix up unaligned loads and stores.

Therefore there should be no panic if CONFIG_ALIGNMENT_TRAP is enabled.

So what's the _actual_ problem that this is trying to address? ?What's
the panic/oops look like? ?And that information should be in the commit
description _anyway_.
OK, not clear from my commit log. See below for details (I'll add them
to the log):

http://www.codesourcery.com/archives/arm-gnu/msg04202.html

Basically the fault happens before we call alignment_init(). There are
other ways to fix this issue (like initialising the alignment handler
earlier).
The reset value of SCTLR.A is 0 on ARMv7. ?Something must be setting it
to 1 early, before the alignment trap handler is initialised. ?This
something is what needs to be changed.
It is set to 1 in __enable_mmu in head.S.

-- 
Catalin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help