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

Reply via email to