Re: [PATCH v10 04/11] x86/entry/64: Adapt assembly for PIE support

From: Peter Zijlstra
Date: Thu Dec 05 2019 - 04:04:25 EST


On Wed, Dec 04, 2019 at 04:09:41PM -0800, Thomas Garnier wrote:

> @@ -1625,7 +1627,11 @@ first_nmi:
> addq $8, (%rsp) /* Fix up RSP */
> pushfq /* RFLAGS */
> pushq $__KERNEL_CS /* CS */
> - pushq $1f /* RIP */
> + pushq $0 /* Future return address */

We're building an IRET frame, the IRET frame does not have a 'future
return address' field.

> + pushq %rdx /* Save RAX */

fail..

> + leaq 1f(%rip), %rdx /* RIP */

nonsensical comment

> + movq %rdx, 8(%rsp) /* Put 1f on return address */
> + popq %rdx /* Restore RAX */

fail..

> iretq /* continues at repeat_nmi below */
> UNWIND_HINT_IRET_REGS
> 1:
> --
> 2.24.0.393.g34dc348eaf-goog
>