On 11.07.19 12:25, Richard Weinberger wrote:
> On Thu, Jul 11, 2019 at 12:21 PM Jan Kiszka <[email protected]> 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.
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux