Messages in this thread Patch in this message | | | Date | Sun, 8 Jan 2023 20:55:06 +0100 | From | Borislav Petkov <> | Subject | Re: [PATCH] x86: Disable kernel stack offset randomization for !TSC |
| |
On Sun, Jan 08, 2023 at 07:42:54PM +0000, Maciej W. Rozycki wrote: > For x86 kernel stack offset randomization uses the RDTSC instruction, > which causes an invalid opcode exception with hardware that does not > implement this instruction:
Out of pure curiosity, what hw is that?
Also, I guess the fix should be something like this instead:
--- diff --git a/arch/x86/include/asm/entry-common.h b/arch/x86/include/asm/entry-common.h index 117903881fe4..57b372ca6ce7 100644 --- a/arch/x86/include/asm/entry-common.h +++ b/arch/x86/include/asm/entry-common.h @@ -85,7 +85,8 @@ static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs, * Therefore, final stack offset entropy will be 5 (x86_64) or * 6 (ia32) bits. */ - choose_random_kstack_offset(rdtsc() & 0xFF); + if (cpu_feature_enabled(X86_FEATURE_TSC)) + choose_random_kstack_offset(rdtsc() & 0xFF); } #define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare
-- Regards/Gruss, Boris.
https://people.kernel.org/tglx/notes-about-netiquette
| |