From: Jan Beulich Date: Thu, 6 Feb 2020 15:22:28 +0000 (+0100) Subject: x86/HVM: introduce "curr" into hvmemul_rep_{mov,sto}s() X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=38d106d7b09a6c024b7b443ee79ff1e1db5105c4;p=people%2Fdwmw2%2Fxen.git x86/HVM: introduce "curr" into hvmemul_rep_{mov,sto}s() There are a number of uses of "current" already, and more may appear down the road. Latch into a local variable. At this occasion also drop stray casts from code getting touched anyway. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper Reviewed-by: Paul Durrant --- diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c index a3aa33a44f..870af32fc7 100644 --- a/xen/arch/x86/hvm/emulate.c +++ b/xen/arch/x86/hvm/emulate.c @@ -1747,7 +1747,8 @@ static int hvmemul_rep_movs( { struct hvm_emulate_ctxt *hvmemul_ctxt = container_of(ctxt, struct hvm_emulate_ctxt, ctxt); - struct hvm_vcpu_io *vio = ¤t->arch.hvm.hvm_io; + struct vcpu *curr = current; + struct hvm_vcpu_io *vio = &curr->arch.hvm.hvm_io; unsigned long saddr, daddr, bytes; paddr_t sgpa, dgpa; uint32_t pfec = PFEC_page_present; @@ -1807,8 +1808,8 @@ static int hvmemul_rep_movs( } /* Check for MMIO ops */ - (void) get_gfn_query_unlocked(current->domain, sgpa >> PAGE_SHIFT, &sp2mt); - (void) get_gfn_query_unlocked(current->domain, dgpa >> PAGE_SHIFT, &dp2mt); + get_gfn_query_unlocked(curr->domain, sgpa >> PAGE_SHIFT, &sp2mt); + get_gfn_query_unlocked(curr->domain, dgpa >> PAGE_SHIFT, &dp2mt); if ( sp2mt == p2m_mmio_direct || dp2mt == p2m_mmio_direct || (sp2mt == p2m_mmio_dm && dp2mt == p2m_mmio_dm) ) @@ -1873,7 +1874,7 @@ static int hvmemul_rep_movs( rc = hvm_copy_from_guest_phys(buf, sgpa, bytes); if ( rc == HVMTRANS_okay ) - rc = hvm_copy_to_guest_phys(dgpa, buf, bytes, current); + rc = hvm_copy_to_guest_phys(dgpa, buf, bytes, curr); xfree(buf); @@ -1910,7 +1911,8 @@ static int hvmemul_rep_stos( { struct hvm_emulate_ctxt *hvmemul_ctxt = container_of(ctxt, struct hvm_emulate_ctxt, ctxt); - struct hvm_vcpu_io *vio = ¤t->arch.hvm.hvm_io; + struct vcpu *curr = current; + struct hvm_vcpu_io *vio = &curr->arch.hvm.hvm_io; unsigned long addr, bytes; paddr_t gpa; p2m_type_t p2mt; @@ -1943,7 +1945,7 @@ static int hvmemul_rep_stos( } /* Check for MMIO op */ - (void)get_gfn_query_unlocked(current->domain, gpa >> PAGE_SHIFT, &p2mt); + get_gfn_query_unlocked(curr->domain, gpa >> PAGE_SHIFT, &p2mt); switch ( p2mt ) { @@ -1992,7 +1994,7 @@ static int hvmemul_rep_stos( if ( df ) gpa -= bytes - bytes_per_rep; - rc = hvm_copy_to_guest_phys(gpa, buf, bytes, current); + rc = hvm_copy_to_guest_phys(gpa, buf, bytes, curr); if ( buf != p_data ) xfree(buf);