| 1234567891011121314151617181920212223242526272829303132333435363738 |
- Change the default alingment handling to not be silent failure
- Index: linux-2.6.21.7/arch/arm/mm/alignment.c
- ===================================================================
- --- linux-2.6.21.7.orig/arch/arm/mm/alignment.c
- +++ linux-2.6.21.7/arch/arm/mm/alignment.c
- @@ -797,6 +797,8 @@ static int __init alignment_init(void)
- res->write_proc = proc_alignment_write;
- #endif
-
- + ai_usermode = CONFIG_ALIGNMENT_HANDLING;
- +
- hook_fault_code(1, do_alignment, SIGILL, "alignment exception");
- hook_fault_code(3, do_alignment, SIGILL, "alignment exception");
-
- Index: linux-2.6.21.7/arch/arm/Kconfig
- ===================================================================
- --- linux-2.6.21.7.orig/arch/arm/Kconfig
- +++ linux-2.6.21.7/arch/arm/Kconfig
- @@ -709,6 +709,19 @@ config ALIGNMENT_TRAP
- correct operation of some network protocols. With an IP-only
- configuration it is safe to say N, otherwise say Y.
-
- +config ALIGNMENT_HANDLING
- + hex "Userspace alignment trap handling"
- + default "0x3"
- + depends on ALIGNMENT_TRAP
- + help
- + How should we handle alignment errors in userspace by default? This is a bitfield where:
- + 0 - silently ignore alignment errors (will lead to unexpected results)
- + 1 - report alignment errors through printk (will lead to unexpected results, but you'll know about them)
- + 2 - fix the alignment and make things work properly (performance degradation for un-aligned code)
- + 4 - raise SIGBUS on alignment traps
- + A good number to choose is probably either 3 (work slowly but log message) or 5 (log message and SIGBUS).
- + You can change the behavior at runtime through /proc/cpu/alignment if you have PROC_FS enabled.
- +
- endmenu
-
- menu "Boot options"
|