On Tue, Jan 11, 2022, Peter Zijlstra wrote: > On Thu, Jan 06, 2022 at 04:35:23PM +0800, kernel test robot wrote: > > > > > > Greeting, > > > > FYI, we noticed the following commit (built with clang-14): > > > > commit: aa93e2ad7464ffb90155a5ffdde963816f86d5dc ("x86/entry_32: Remove .fixup usage") > > https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git x86/core > > > > in testcase: kernel-selftests > > version: > > with following parameters: > > > > group: x86 > > > > It would be very useful if this thing would also say which of the many > x86 selftests fails... it appears to be: ldt_gdt_32. > > The below fixes it, but I'm still not entirely sure what the actual > problem is, although Andy did find a bug in that the exception handler > should do: *(ss:esp) = 0, adding ss-base (using insn_get_seg_base()) > doesn't seem to cure things. Because I was curious... The issue is that PARANOID_EXIT_TO_KERNEL_MODE in the handle_exception_return path overwrites the entry stack data with the task stack data, restoring the "bad" segment value.