Date: Mon, 10 Jun 2019 17:43:34 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r348871 - in stable/12/sys/amd64: amd64 include Message-ID: <201906101743.x5AHhYS5062521@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kib Date: Mon Jun 10 17:43:33 2019 New Revision: 348871 URL: https://svnweb.freebsd.org/changeset/base/348871 Log: MFC r348539: amd64 ef_rt_arch_call: Preserve %rflags around call into EFI RT service. Modified: stable/12/sys/amd64/amd64/efirt_support.S stable/12/sys/amd64/amd64/genassym.c stable/12/sys/amd64/include/efi.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/amd64/amd64/efirt_support.S ============================================================================== --- stable/12/sys/amd64/amd64/efirt_support.S Mon Jun 10 17:40:31 2019 (r348870) +++ stable/12/sys/amd64/amd64/efirt_support.S Mon Jun 10 17:43:33 2019 (r348871) @@ -47,6 +47,9 @@ ENTRY(efi_rt_arch_call) movq %r13, EC_R13(%rdi) movq %r14, EC_R14(%rdi) movq %r15, EC_R15(%rdi) + pushfq + popq %rax + movq %rax, EC_RFLAGS(%rdi) movq PCPU(CURTHREAD), %rax movq %rdi, TD_MD+MD_EFIRT_TMP(%rax) movq PCPU(CURPCB), %rsi @@ -98,6 +101,8 @@ efi_rt_arch_call_tail: movq EC_RBP(%rdi), %rbp movq EC_RSP(%rdi), %rsp movq EC_RBX(%rdi), %rbx + pushq EC_RFLAGS(%rdi) + popfq popq %rbp ret Modified: stable/12/sys/amd64/amd64/genassym.c ============================================================================== --- stable/12/sys/amd64/amd64/genassym.c Mon Jun 10 17:40:31 2019 (r348870) +++ stable/12/sys/amd64/amd64/genassym.c Mon Jun 10 17:43:33 2019 (r348871) @@ -272,3 +272,4 @@ ASSYM(EC_R12, offsetof(struct efirt_callinfo, ec_r12)) ASSYM(EC_R13, offsetof(struct efirt_callinfo, ec_r13)); ASSYM(EC_R14, offsetof(struct efirt_callinfo, ec_r14)); ASSYM(EC_R15, offsetof(struct efirt_callinfo, ec_r15)); +ASSYM(EC_RFLAGS, offsetof(struct efirt_callinfo, ec_rflags)); Modified: stable/12/sys/amd64/include/efi.h ============================================================================== --- stable/12/sys/amd64/include/efi.h Mon Jun 10 17:40:31 2019 (r348870) +++ stable/12/sys/amd64/include/efi.h Mon Jun 10 17:43:33 2019 (r348871) @@ -72,6 +72,7 @@ struct efirt_callinfo { register_t ec_r13; register_t ec_r14; register_t ec_r15; + register_t ec_rflags; }; #endif /* __AMD64_INCLUDE_EFI_H_ */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201906101743.x5AHhYS5062521>