Re: [PATCH 12/31] x86/entry/32: Add PTI cr3 switch to non-NMI entry/exit points

From: Joerg Roedel
Date: Thu Mar 01 2018 - 07:03:35 EST


On Tue, Feb 27, 2018 at 02:18:36PM -0500, Waiman Long wrote:
> On 02/09/2018 04:25 AM, Joerg Roedel wrote:
> > SAVE_ALL
> > ENCODE_FRAME_POINTER
> > +
> > + /* Make sure we are running on kernel cr3 */
> > + SWITCH_TO_KERNEL_CR3 scratch_reg=%eax
> > +
> > xorl %edx, %edx # error code 0
> > movl %esp, %eax # pt_regs pointer
> >
>
> The debug exception calls ret_from_exception on exit. If coming from
> userspace, the C function prepare_exit_to_usermode() will be called.
> With the PTI-32 code, it means that function will be called with the
> entry stack instead of the task stack. This can be problematic as macro
> like current won't work anymore.

This is not different from before, no? The debug handler already can be
entered on entry stack before this patch-set.


Joerg