On Wed, 20 Jul 2016, Julien Grall wrote:
> p2m_restore_state is the last caller of p2m_load_VTTBR and already check
> if the vCPU does not belong to the idle domain.
> 
> Note that it is likely possible to remove some isb in the function
> p2m_restore_state, however this is not the purpose of this patch. So the
> numerous isb have been left.
> 
> Signed-off-by: Julien Grall <julien.gr...@arm.com>

Reviewed-by: Stefano Stabellini <sstabell...@kernel.org>


>  xen/arch/arm/p2m.c | 16 ++--------------
>  1 file changed, 2 insertions(+), 14 deletions(-)
> 
> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
> index 015c1e8..c756e0c 100644
> --- a/xen/arch/arm/p2m.c
> +++ b/xen/arch/arm/p2m.c
> @@ -105,19 +105,6 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
>                   P2M_ROOT_LEVEL, P2M_ROOT_PAGES);
>  }
>  
> -static void p2m_load_VTTBR(struct domain *d)
> -{
> -    struct p2m_domain *p2m = &d->arch.p2m;
> -
> -    if ( is_idle_domain(d) )
> -        return;
> -
> -    ASSERT(p2m->vttbr);
> -
> -    WRITE_SYSREG64(p2m->vttbr, VTTBR_EL2);
> -    isb(); /* Ensure update is visible */
> -}
> -
>  void p2m_save_state(struct vcpu *p)
>  {
>      p->arch.sctlr = READ_SYSREG(SCTLR_EL1);
> @@ -126,6 +113,7 @@ void p2m_save_state(struct vcpu *p)
>  void p2m_restore_state(struct vcpu *n)
>  {
>      register_t hcr;
> +    struct p2m_domain *p2m = &n->domain->arch.p2m;
>  
>      if ( is_idle_vcpu(n) )
>          return;
> @@ -134,7 +122,7 @@ void p2m_restore_state(struct vcpu *n)
>      WRITE_SYSREG(hcr & ~HCR_VM, HCR_EL2);
>      isb();
>  
> -    p2m_load_VTTBR(n->domain);
> +    WRITE_SYSREG64(p2m->vttbr, VTTBR_EL2);
>      isb();
>  
>      if ( is_32bit_domain(n->domain) )
> -- 
> 1.9.1
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to