create release branch for 8.09
[openwrt/svn-archive/archive.git] / target / linux / pxa / patches-2.6.21 / 032-misalignment-handling.patch
1 Change the default alingment handling to not be silent failure
2 Index: linux-2.6.21.7/arch/arm/mm/alignment.c
3 ===================================================================
4 --- linux-2.6.21.7.orig/arch/arm/mm/alignment.c
5 +++ linux-2.6.21.7/arch/arm/mm/alignment.c
6 @@ -797,6 +797,8 @@ static int __init alignment_init(void)
7 res->write_proc = proc_alignment_write;
8 #endif
9
10 + ai_usermode = CONFIG_ALIGNMENT_HANDLING;
11 +
12 hook_fault_code(1, do_alignment, SIGILL, "alignment exception");
13 hook_fault_code(3, do_alignment, SIGILL, "alignment exception");
14
15 Index: linux-2.6.21.7/arch/arm/Kconfig
16 ===================================================================
17 --- linux-2.6.21.7.orig/arch/arm/Kconfig
18 +++ linux-2.6.21.7/arch/arm/Kconfig
19 @@ -709,6 +709,19 @@ config ALIGNMENT_TRAP
20 correct operation of some network protocols. With an IP-only
21 configuration it is safe to say N, otherwise say Y.
22
23 +config ALIGNMENT_HANDLING
24 + hex "Userspace alignment trap handling"
25 + default "0x3"
26 + depends on ALIGNMENT_TRAP
27 + help
28 + How should we handle alignment errors in userspace by default? This is a bitfield where:
29 + 0 - silently ignore alignment errors (will lead to unexpected results)
30 + 1 - report alignment errors through printk (will lead to unexpected results, but you'll know about them)
31 + 2 - fix the alignment and make things work properly (performance degradation for un-aligned code)
32 + 4 - raise SIGBUS on alignment traps
33 + A good number to choose is probably either 3 (work slowly but log message) or 5 (log message and SIGBUS).
34 + You can change the behavior at runtime through /proc/cpu/alignment if you have PROC_FS enabled.
35 +
36 endmenu
37
38 menu "Boot options"