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
