[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |