mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	x86: Introduce ia32_enabled()
IA32 support on 64bit kernels depends on whether CONFIG_IA32_EMULATION is selected or not. As it is a compile time option it doesn't provide the flexibility to have distributions set their own policy for IA32 support and give the user the flexibility to override it. As a first step introduce ia32_enabled() which abstracts whether IA32 compat is turned on or off. Upcoming patches will implement the ability to set IA32 compat state at boot time. Signed-off-by: Nikolay Borisov <nik.borisov@suse.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/20230623111409.3047467-2-nik.borisov@suse.com
This commit is contained in:
		
							parent
							
								
									0bb80ecc33
								
							
						
					
					
						commit
						1da5c9bc11
					
				
					 2 changed files with 19 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -96,6 +96,10 @@ static __always_inline int syscall_32_enter(struct pt_regs *regs)
 | 
			
		|||
	return (int)regs->orig_ax;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_IA32_EMULATION
 | 
			
		||||
bool __ia32_enabled __ro_after_init = true;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Invoke a 32-bit syscall.  Called with IRQs on in CONTEXT_KERNEL.
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,6 +68,20 @@ extern void ia32_pick_mmap_layout(struct mm_struct *mm);
 | 
			
		|||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_IA32_EMULATION */
 | 
			
		||||
extern bool __ia32_enabled;
 | 
			
		||||
 | 
			
		||||
static inline bool ia32_enabled(void)
 | 
			
		||||
{
 | 
			
		||||
	return __ia32_enabled;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#else /* !CONFIG_IA32_EMULATION */
 | 
			
		||||
 | 
			
		||||
static inline bool ia32_enabled(void)
 | 
			
		||||
{
 | 
			
		||||
	return IS_ENABLED(CONFIG_X86_32);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* _ASM_X86_IA32_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue