 849b882b52
			
		
	
	
	849b882b52
	
	
	
		
			
			It appears that gcc may put some code in ".text.unlikely" or ".text.hot" sections. Right now those aren't accounted for in unwind tables. Add them. I found some docs about this at: http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc.pdf Without this, if you have slub_debug turned on, you can get messages that look like this: unwind: Index not found 7f008c50 Signed-off-by: Doug Anderson <dianders@chromium.org> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ASM_ARM_MODULE_H
 | |
| #define _ASM_ARM_MODULE_H
 | |
| 
 | |
| #include <asm-generic/module.h>
 | |
| 
 | |
| struct unwind_table;
 | |
| 
 | |
| #ifdef CONFIG_ARM_UNWIND
 | |
| enum {
 | |
| 	ARM_SEC_INIT,
 | |
| 	ARM_SEC_DEVINIT,
 | |
| 	ARM_SEC_CORE,
 | |
| 	ARM_SEC_EXIT,
 | |
| 	ARM_SEC_DEVEXIT,
 | |
| 	ARM_SEC_HOT,
 | |
| 	ARM_SEC_UNLIKELY,
 | |
| 	ARM_SEC_MAX,
 | |
| };
 | |
| 
 | |
| struct mod_arch_specific {
 | |
| 	struct unwind_table *unwind[ARM_SEC_MAX];
 | |
| };
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * Add the ARM architecture version to the version magic string
 | |
|  */
 | |
| #define MODULE_ARCH_VERMAGIC_ARMVSN "ARMv" __stringify(__LINUX_ARM_ARCH__) " "
 | |
| 
 | |
| /* Add __virt_to_phys patching state as well */
 | |
| #ifdef CONFIG_ARM_PATCH_PHYS_VIRT
 | |
| #define MODULE_ARCH_VERMAGIC_P2V "p2v8 "
 | |
| #else
 | |
| #define MODULE_ARCH_VERMAGIC_P2V ""
 | |
| #endif
 | |
| 
 | |
| /* Add instruction set architecture tag to distinguish ARM/Thumb kernels */
 | |
| #ifdef CONFIG_THUMB2_KERNEL
 | |
| #define MODULE_ARCH_VERMAGIC_ARMTHUMB "thumb2 "
 | |
| #else
 | |
| #define MODULE_ARCH_VERMAGIC_ARMTHUMB ""
 | |
| #endif
 | |
| 
 | |
| #define MODULE_ARCH_VERMAGIC \
 | |
| 	MODULE_ARCH_VERMAGIC_ARMVSN \
 | |
| 	MODULE_ARCH_VERMAGIC_ARMTHUMB \
 | |
| 	MODULE_ARCH_VERMAGIC_P2V
 | |
| 
 | |
| #endif /* _ASM_ARM_MODULE_H */
 |