[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] arm: restore ELR_hyp and SPSR_hyp on return from hypervisor to hypervisor.



On Mon, 20 Feb 2012, Ian Campbell wrote:
> On Mon, 2012-02-20 at 15:22 +0000, Ian Campbell wrote:
> > This is necessary to handle nested traps to the hypervisor more than one 
> > deep.
> 
> A sort of corollary to this patch is the following.
> 
> The situation with the LR register when in hyp mode is a bit odd, since
> this is normally a banked register but for hyp mode it actually accesses
> LR_usr instead.
> 
> However, although I think the following is correct I'm not sure if it is
> useful to combine LR_usr and LR like this -- in particular I fear it
> might be more confusing than helpful. Making the return-to-user case a
> proper superset of return-to-hypervisor (as is the case on the save
> path) is nice though.
> 
> What do people think?

I am OK with this.

> 8<---------------------------------------------------------------
> 
> >From 3132c2976ae4c83d6d9b94ad80ee04c4880f13da Mon Sep 17 00:00:00 2001
> From: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Date: Mon, 20 Feb 2012 15:07:09 +0000
> Subject: [PATCH] arm: lr register in hyp mode is really LR_usr.
> 
> Save and restore it in the same way for both hypervisor and user stack frames
> rather than saving both individually in the user stack frame.
> 
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
>  xen/arch/arm/entry.S          |   14 ++------------
>  xen/include/public/arch-arm.h |   15 ++++++++++++---
>  2 files changed, 14 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
> index 36f1119..0e85c3c 100644
> --- a/xen/arch/arm/entry.S
> +++ b/xen/arch/arm/entry.S
> @@ -29,8 +29,6 @@
>       blne save_guest_regs
>  
>  save_guest_regs:
> -     ldr r11, [sp, #UREGS_lr]
> -     str r11, [sp, #UREGS_LR_usr]
>       ldr r11, =0xffffffff  /* Clobber SP which is only valid for hypervisor 
> frames. */
>       str r11, [sp, #UREGS_sp]

It would be nice to have a comment here saying "no need to save LR again
because LR_usr and LR are the same physical register"

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.