mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	x86/retpoline: Cleanup some #ifdefery
On it's own not much of a cleanup but it prepares for more/similar code. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Borislav Petkov <bp@suse.de> Reviewed-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Borislav Petkov <bp@suse.de>
This commit is contained in:
		
							parent
							
								
									a883d624ae
								
							
						
					
					
						commit
						369ae6ffc4
					
				
					 3 changed files with 14 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -50,6 +50,13 @@
 | 
			
		|||
# define DISABLE_PTI		(1 << (X86_FEATURE_PTI & 31))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_RETPOLINE
 | 
			
		||||
# define DISABLE_RETPOLINE	0
 | 
			
		||||
#else
 | 
			
		||||
# define DISABLE_RETPOLINE	((1 << (X86_FEATURE_RETPOLINE & 31)) | \
 | 
			
		||||
				 (1 << (X86_FEATURE_RETPOLINE_LFENCE & 31)))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_INTEL_IOMMU_SVM
 | 
			
		||||
# define DISABLE_ENQCMD		0
 | 
			
		||||
#else
 | 
			
		||||
| 
						 | 
				
			
			@ -82,7 +89,7 @@
 | 
			
		|||
#define DISABLED_MASK8	(DISABLE_TDX_GUEST)
 | 
			
		||||
#define DISABLED_MASK9	(DISABLE_SGX)
 | 
			
		||||
#define DISABLED_MASK10	0
 | 
			
		||||
#define DISABLED_MASK11	0
 | 
			
		||||
#define DISABLED_MASK11	(DISABLE_RETPOLINE)
 | 
			
		||||
#define DISABLED_MASK12	0
 | 
			
		||||
#define DISABLED_MASK13	0
 | 
			
		||||
#define DISABLED_MASK14	0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -120,17 +120,16 @@
 | 
			
		|||
	_ASM_PTR " 999b\n\t"					\
 | 
			
		||||
	".popsection\n\t"
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_RETPOLINE
 | 
			
		||||
 | 
			
		||||
typedef u8 retpoline_thunk_t[RETPOLINE_THUNK_SIZE];
 | 
			
		||||
extern retpoline_thunk_t __x86_indirect_thunk_array[];
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_RETPOLINE
 | 
			
		||||
 | 
			
		||||
#define GEN(reg) \
 | 
			
		||||
	extern retpoline_thunk_t __x86_indirect_thunk_ ## reg;
 | 
			
		||||
#include <asm/GEN-for-each-reg.h>
 | 
			
		||||
#undef GEN
 | 
			
		||||
 | 
			
		||||
extern retpoline_thunk_t __x86_indirect_thunk_array[];
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_X86_64
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -412,16 +412,15 @@ static void emit_indirect_jump(u8 **pprog, int reg, u8 *ip)
 | 
			
		|||
{
 | 
			
		||||
	u8 *prog = *pprog;
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_RETPOLINE
 | 
			
		||||
	if (cpu_feature_enabled(X86_FEATURE_RETPOLINE_LFENCE)) {
 | 
			
		||||
		EMIT_LFENCE();
 | 
			
		||||
		EMIT2(0xFF, 0xE0 + reg);
 | 
			
		||||
	} else if (cpu_feature_enabled(X86_FEATURE_RETPOLINE)) {
 | 
			
		||||
		OPTIMIZER_HIDE_VAR(reg);
 | 
			
		||||
		emit_jump(&prog, &__x86_indirect_thunk_array[reg], ip);
 | 
			
		||||
	} else
 | 
			
		||||
#endif
 | 
			
		||||
	EMIT2(0xFF, 0xE0 + reg);
 | 
			
		||||
	} else {
 | 
			
		||||
		EMIT2(0xFF, 0xE0 + reg);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	*pprog = prog;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue