mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Change the default alingment handling to not be silent failure
 | 
						|
--- a/arch/arm/mm/alignment.c
 | 
						|
+++ b/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");
 | 
						|
 
 | 
						|
--- a/arch/arm/Kconfig
 | 
						|
+++ b/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"
 |