[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] x86/HVM: improve local variable use in hvm_hap_nested_page_fault()
commit 8322753096da613e6649673f5f3c86725155559c Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Thu Apr 10 10:56:49 2025 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Thu Apr 10 10:56:49 2025 +0200 x86/HVM: improve local variable use in hvm_hap_nested_page_fault() First, gfn can be set just once, rather than (conditionally) twice. And then gfn can be used in two function calls, rather than re- calculating the value there. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/arch/x86/hvm/hvm.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 5950f3160f..6f1174c512 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -1794,7 +1794,7 @@ void hvm_inject_event(const struct x86_event *event) int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla, struct npfec npfec) { - unsigned long gfn = gpa >> PAGE_SHIFT; + unsigned long gfn; p2m_type_t p2mt; p2m_access_t p2ma; mfn_t mfn; @@ -1841,12 +1841,13 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla, hvm_inject_hw_exception(X86_EXC_GP, 0); return 1; case NESTEDHVM_PAGEFAULT_L0_ERROR: - /* gpa is now translated to l1 guest address, update gfn. */ - gfn = gpa >> PAGE_SHIFT; + /* gpa is now translated to l1 guest address. */ break; } } + gfn = gpa >> PAGE_SHIFT; + /* * No need to do the P2M lookup for internally handled MMIO, benefiting * - 32-bit WinXP (& older Windows) on AMD CPUs for LAPIC accesses, @@ -1854,7 +1855,7 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla, */ if ( !nestedhvm_vcpu_in_guestmode(curr) && hvm_mmio_internal(gpa) ) { - if ( !handle_mmio_with_translation(gla, gpa >> PAGE_SHIFT, npfec) ) + if ( !handle_mmio_with_translation(gla, gfn, npfec) ) hvm_inject_hw_exception(X86_EXC_GP, 0); rc = 1; goto out; @@ -1982,7 +1983,7 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla, (npfec.write_access && (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) ) { - if ( !handle_mmio_with_translation(gla, gpa >> PAGE_SHIFT, npfec) ) + if ( !handle_mmio_with_translation(gla, gfn, npfec) ) hvm_inject_hw_exception(X86_EXC_GP, 0); rc = 1; goto out_put_gfn; -- generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |