Re: [PATCH v3 2/3] x86/entry: Clear registers for 64bit exceptions/interrupts

From: Ingo Molnar
Date: Tue Feb 06 2018 - 05:48:48 EST



* Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Mon, Feb 05, 2018 at 05:18:11PM -0800, Dan Williams wrote:
> > @@ -1178,6 +1180,7 @@ ENTRY(paranoid_entry)
> > cld
> > SAVE_C_REGS 8
> > SAVE_EXTRA_REGS 8
> > + CLEAR_REGS_NOSPEC
> > ENCODE_FRAME_POINTER 8
> > movl $1, %ebx
> > movl $MSR_GS_BASE, %ecx
> > @@ -1185,7 +1188,6 @@ ENTRY(paranoid_entry)
> > testl %edx, %edx
> > js 1f /* negative -> in kernel */
> > SWAPGS
> > - xorl %ebx, %ebx
>
> Here, %ebx will be filled with $1 (see code snipped above) *after* the
> call to CLEAR_REGS_NOSPEC. That's what this line has been clearing in the
> past. So I'm not sure whether this line should be removed.

Good point - I have fixed this bug in the tip:x86/pti version of the patch.

Thanks,

Ingo