ARM: 9145/1: patch: fix BE32 compilation
On BE32 kernels, the __opcode_to_mem_thumb32() interface is intentionally
not defined, but it is referenced whenever runtime patching is enabled
for the kernel, which may be for ftrace, jump label, kprobes or kgdb:
arch/arm/kernel/patch.c: In function '__patch_text_real':
arch/arm/kernel/patch.c:94:32: error: implicit declaration of function '__opcode_to_mem_thumb32' [-Werror=implicit-function-declaration]
   94 |                         insn = __opcode_to_mem_thumb32(insn);
      |                                ^~~~~~~~~~~~~~~~~~~~~~~
Since BE32 kernels never run Thumb2 code, we never end up using the
result of this call, so providing an extern declaration without
a definition makes it build correctly.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
			
			
This commit is contained in:
		
							parent
							
								
									ecb108e3e3
								
							
						
					
					
						commit
						ae3d6978aa
					
				| @ -110,12 +110,17 @@ extern asmlinkage unsigned int arm_check_condition(u32 opcode, u32 psr); | ||||
| #define __opcode_to_mem_thumb16(x) ___opcode_identity16(x) | ||||
| #define ___asm_opcode_to_mem_arm(x) ___asm_opcode_identity32(x) | ||||
| #define ___asm_opcode_to_mem_thumb16(x) ___asm_opcode_identity16(x) | ||||
| #ifndef CONFIG_CPU_ENDIAN_BE32 | ||||
| #ifdef CONFIG_CPU_ENDIAN_BE32 | ||||
| #ifndef __ASSEMBLY__ | ||||
| /*
 | ||||
|  * On BE32 systems, using 32-bit accesses to store Thumb instructions will not | ||||
|  * work in all cases, due to alignment constraints.  For now, a correct | ||||
|  * version is not provided for BE32. | ||||
|  * version is not provided for BE32, but the prototype needs to be there | ||||
|  * to compile patch.c. | ||||
|  */ | ||||
| extern __u32 __opcode_to_mem_thumb32(__u32); | ||||
| #endif | ||||
| #else | ||||
| #define __opcode_to_mem_thumb32(x) ___opcode_swahw32(x) | ||||
| #define ___asm_opcode_to_mem_thumb32(x) ___asm_opcode_swahw32(x) | ||||
| #endif | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user