On 02/11/18 15:55, Wei Liu wrote:
> @@ -553,8 +523,43 @@ ENTRY(dom_crash_sync_extable)
>          jmp   asm_domain_crash_synchronous /* Does not return */
>          .popsection
>  
> +/* --- CODE BELOW THIS LINE (MOSTLY) NOT GUEST RELATED --- */
> +
> +        .text
> +
> +        ALIGN

No need for an ALIGN here.  There is one inside ENTRY().

Otherwise, Reviewed-by: Andrew Cooper <[email protected]>

> +/* No special register assumptions. */
> +ENTRY(ret_from_intr)
> +        GET_CURRENT(bx)
> +        testb $3, UREGS_cs(%rsp)
> +        jz    restore_all_xen
> +        movq  VCPU_domain(%rbx), %rax
> +        cmpb  $0, DOMAIN_is_32bit_pv(%rax)
> +        je    test_all_events
> +        jmp   compat_test_all_events
> +
>          .section .text.entry, "ax", @progbits
>  
> +        ALIGN
> +/* No special register assumptions. */
> +restore_all_xen:
> +        /*
> +         * Check whether we need to switch to the per-CPU page tables, in
> +         * case we return to late PV exit code (from an NMI or #MC).
> +         */
> +        GET_STACK_END(bx)
> +        cmpb  $0, STACK_CPUINFO_FIELD(use_pv_cr3)(%rbx)
> +UNLIKELY_START(ne, exit_cr3)
> +        mov   STACK_CPUINFO_FIELD(pv_cr3)(%rbx), %rax
> +        mov   %rax, %cr3
> +UNLIKELY_END(exit_cr3)
> +
> +        /* WARNING! `ret`, `call *`, `jmp *` not safe beyond this point. */
> +        SPEC_CTRL_EXIT_TO_XEN_IST /* Req: %rbx=end, Clob: acd */
> +
> +        RESTORE_ALL adj=8
> +        iretq
> +
>  ENTRY(common_interrupt)
>          SAVE_ALL CLAC
>  


_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to