mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	x86/ibt,ftrace: Add ENDBR to samples/ftrace
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Link: https://lore.kernel.org/r/20220308154318.523421433@infradead.org
This commit is contained in:
		
							parent
							
								
									5891271055
								
							
						
					
					
						commit
						0aec21cfb5
					
				
					 5 changed files with 22 additions and 4 deletions
				
			
		|  | @ -24,20 +24,25 @@ static unsigned long my_ip = (unsigned long)schedule; | |||
| 
 | ||||
| #ifdef CONFIG_X86_64 | ||||
| 
 | ||||
| #include <asm/ibt.h> | ||||
| 
 | ||||
| asm ( | ||||
| "	.pushsection    .text, \"ax\", @progbits\n" | ||||
| "	.type		my_tramp1, @function\n" | ||||
| "	.globl		my_tramp1\n" | ||||
| "   my_tramp1:" | ||||
| 	ASM_ENDBR | ||||
| "	pushq %rbp\n" | ||||
| "	movq %rsp, %rbp\n" | ||||
| "	call my_direct_func1\n" | ||||
| "	leave\n" | ||||
| "	.size		my_tramp1, .-my_tramp1\n" | ||||
| 	ASM_RET | ||||
| 
 | ||||
| "	.type		my_tramp2, @function\n" | ||||
| "	.globl		my_tramp2\n" | ||||
| "   my_tramp2:" | ||||
| 	ASM_ENDBR | ||||
| "	pushq %rbp\n" | ||||
| "	movq %rsp, %rbp\n" | ||||
| "	call my_direct_func2\n" | ||||
|  |  | |||
|  | @ -22,11 +22,14 @@ extern void my_tramp2(void *); | |||
| 
 | ||||
| #ifdef CONFIG_X86_64 | ||||
| 
 | ||||
| #include <asm/ibt.h> | ||||
| 
 | ||||
| asm ( | ||||
| "	.pushsection    .text, \"ax\", @progbits\n" | ||||
| "	.type		my_tramp1, @function\n" | ||||
| "	.globl		my_tramp1\n" | ||||
| "   my_tramp1:" | ||||
| 	ASM_ENDBR | ||||
| "	pushq %rbp\n" | ||||
| "	movq %rsp, %rbp\n" | ||||
| "	pushq %rdi\n" | ||||
|  | @ -34,12 +37,13 @@ asm ( | |||
| "	call my_direct_func1\n" | ||||
| "	popq %rdi\n" | ||||
| "	leave\n" | ||||
| "	ret\n" | ||||
| 	ASM_RET | ||||
| "	.size		my_tramp1, .-my_tramp1\n" | ||||
| 
 | ||||
| "	.type		my_tramp2, @function\n" | ||||
| "\n" | ||||
| "	.globl		my_tramp2\n" | ||||
| "   my_tramp2:" | ||||
| 	ASM_ENDBR | ||||
| "	pushq %rbp\n" | ||||
| "	movq %rsp, %rbp\n" | ||||
| "	pushq %rdi\n" | ||||
|  | @ -47,7 +51,7 @@ asm ( | |||
| "	call my_direct_func2\n" | ||||
| "	popq %rdi\n" | ||||
| "	leave\n" | ||||
| "	ret\n" | ||||
| 	ASM_RET | ||||
| "	.size		my_tramp2, .-my_tramp2\n" | ||||
| "	.popsection\n" | ||||
| ); | ||||
|  |  | |||
|  | @ -17,11 +17,14 @@ extern void my_tramp(void *); | |||
| 
 | ||||
| #ifdef CONFIG_X86_64 | ||||
| 
 | ||||
| #include <asm/ibt.h> | ||||
| 
 | ||||
| asm ( | ||||
| "	.pushsection    .text, \"ax\", @progbits\n" | ||||
| "	.type		my_tramp, @function\n" | ||||
| "	.globl		my_tramp\n" | ||||
| "   my_tramp:" | ||||
| 	ASM_ENDBR | ||||
| "	pushq %rbp\n" | ||||
| "	movq %rsp, %rbp\n" | ||||
| "	pushq %rdi\n" | ||||
|  | @ -29,7 +32,7 @@ asm ( | |||
| "	call my_direct_func\n" | ||||
| "	popq %rdi\n" | ||||
| "	leave\n" | ||||
| "	ret\n" | ||||
| 	ASM_RET | ||||
| "	.size		my_tramp, .-my_tramp\n" | ||||
| "	.popsection\n" | ||||
| ); | ||||
|  |  | |||
|  | @ -19,11 +19,14 @@ extern void my_tramp(void *); | |||
| 
 | ||||
| #ifdef CONFIG_X86_64 | ||||
| 
 | ||||
| #include <asm/ibt.h> | ||||
| 
 | ||||
| asm ( | ||||
| "	.pushsection    .text, \"ax\", @progbits\n" | ||||
| "	.type		my_tramp, @function\n" | ||||
| "	.globl		my_tramp\n" | ||||
| "   my_tramp:" | ||||
| 	ASM_ENDBR | ||||
| "	pushq %rbp\n" | ||||
| "	movq %rsp, %rbp\n" | ||||
| "	pushq %rdi\n" | ||||
|  |  | |||
|  | @ -16,11 +16,14 @@ extern void my_tramp(void *); | |||
| 
 | ||||
| #ifdef CONFIG_X86_64 | ||||
| 
 | ||||
| #include <asm/ibt.h> | ||||
| 
 | ||||
| asm ( | ||||
| "	.pushsection    .text, \"ax\", @progbits\n" | ||||
| "	.type		my_tramp, @function\n" | ||||
| "	.globl		my_tramp\n" | ||||
| "   my_tramp:" | ||||
| 	ASM_ENDBR | ||||
| "	pushq %rbp\n" | ||||
| "	movq %rsp, %rbp\n" | ||||
| "	pushq %rdi\n" | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Peter Zijlstra
						Peter Zijlstra