From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Message-ID: <1410369837.11440.18.camel@smoke> Subject: Re: [PATCH 04/13] arm64: Add new hcall HVC_CALL_FUNC From: Geoff Levand Date: Wed, 10 Sep 2014 10:23:57 -0700 In-Reply-To: <20140910170740.GE1710@arm.com> References: <20140910170740.GE1710@arm.com> Mime-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Will Deacon Cc: Marc Zyngier , Catalin Marinas , "kexec@lists.infradead.org" , "linux-arm-kernel@lists.infradead.org" , "christoffer.dall@linaro.org" Hi Will, On Wed, 2014-09-10 at 18:07 +0100, Will Deacon wrote: > On Tue, Sep 09, 2014 at 11:49:04PM +0100, Geoff Levand wrote: > > Add the new hcall HVC_CALL_FUNC that allows execution of a function at EL2. > > During CPU reset the CPU must be brought to the exception level it had on > > entry to the kernel. The HVC_CALL_FUNC hcall will provide the mechanism > > needed for this exception level switch. > > > > Signed-off-by: Geoff Levand > > --- > > arch/arm64/include/asm/virt.h | 11 +++++++++++ > > arch/arm64/kernel/hyp-stub.S | 10 ++++++++++ > > 2 files changed, 21 insertions(+) > > [...] > > > diff --git a/arch/arm64/kernel/hyp-stub.S b/arch/arm64/kernel/hyp-stub.S > > index 9ab5f70..a21cf51 100644 > > --- a/arch/arm64/kernel/hyp-stub.S > > +++ b/arch/arm64/kernel/hyp-stub.S > > @@ -75,7 +75,17 @@ el1_sync: > > 1: cmp x10, #HVC_SET_VECTORS > > b.ne 1f > > msr vbar_el2, x0 > > + b 2f > > > > +1: cmp x10, #HVC_CALL_FUNC > > + b.ne 1f > > + mov x29, lr > > + mov lr, x0 > > + mov x0, x1 > > + mov x1, x2 > > + mov x2, x3 > > + blr lr > > + mov lr, x29 > > Why are you clobbering x29? I can change this to x28, unless you can recommend another? -Geoff _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec