On 11.07.19 20:30, Jan Kiszka wrote: > On 11.07.19 12:25, Richard Weinberger wrote: >> On Thu, Jul 11, 2019 at 12:21 PM Jan Kiszka <jan.kis...@siemens.com> wrote: >>> Can't reproduce so far, even with a while-true loop. Can you share your >>> .config? >> >> Sure, see attachment. >> > > This seems to fix the issue here: > > diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S > index 119fd66d111e..8f647c208cf2 100644 > --- a/arch/x86/entry/entry_64.S > +++ b/arch/x86/entry/entry_64.S > @@ -997,8 +997,8 @@ apicinterrupt IRQ_WORK_VECTOR > irq_work_interrupt smp_irq_work_interrupt > \skip_label: > UNWIND_HINT_REGS > DISABLE_INTERRUPTS(CLBR_ANY) > - testl %ebx, %ebx /* %ebx: return to kernel mode */ > - jnz retint_kernel_early > + testb $3, CS(%rsp) > + jz retint_kernel_early > jmp retint_user_early > .endif > 1001: > > Tests welcome! > > Interestingly, 4.14 should have the same problem, but I failed to > reproduce there so far.
Uhh, it's a regression in all our x86 stable trees, due to a backport of an upstream commit. The above is definitely correct and hopefully also the fix for this issue. Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux