From mboxrd@z Thu Jan 1 00:00:00 1970 From: Claudio Carvalho Date: Thu, 22 Aug 2019 01:24:50 +0000 Subject: Re: [PATCH v5 2/7] powerpc/kernel: Add ucall_norets() ultravisor call handler Message-Id: List-Id: References: <20190808040555.2371-1-cclaudio@linux.ibm.com> <20190808040555.2371-3-cclaudio@linux.ibm.com> <87wofgqb2g.fsf@concordia.ellerman.id.au> In-Reply-To: <87wofgqb2g.fsf@concordia.ellerman.id.au> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: Michael Ellerman , linuxppc-dev@ozlabs.org Cc: Madhavan Srinivasan , Michael Anderson , Ram Pai , kvm-ppc@vger.kernel.org, Bharata B Rao , Ryan Grimm , Sukadev Bhattiprolu , Guerney Hunt , Thiago Bauermann On 8/14/19 7:46 AM, Michael Ellerman wrote: > Claudio Carvalho writes: >> diff --git a/arch/powerpc/kernel/ucall.S b/arch/powerpc/kernel/ucall.S >> new file mode 100644 >> index 000000000000..de9133e45d21 >> --- /dev/null >> +++ b/arch/powerpc/kernel/ucall.S >> @@ -0,0 +1,20 @@ >> +/* SPDX-License-Identifier: GPL-2.0 */ >> +/* >> + * Generic code to perform an ultravisor call. >> + * >> + * Copyright 2019, IBM Corporation. >> + * >> + */ >> +#include >> +#include >> + >> +_GLOBAL(ucall_norets) >> +EXPORT_SYMBOL_GPL(ucall_norets) >> + mfcr r0 >> + stw r0,8(r1) >> + >> + sc 2 /* Invoke the ultravisor */ >> + >> + lwz r0,8(r1) >> + mtcrf 0xff,r0 >> + blr /* Return r3 = status */ > Paulus points that we shouldn't need to save CR here. Our caller will > have already saved it if it needed to, and we don't use CR in this > function so we don't need to save it. Dropped the CR save/restore in the next patchset version: _GLOBAL(ucall_norets) EXPORT_SYMBOL_GPL(ucall_norets)         sc      2       /* Invoke the ultravisor */         blr             /* Return r3 = status */ Thanks, Claudio > > That's assuming the Ultravisor follows the hcall ABI in which CR2-4 are > non-volatile (PAPR § 14.5.3). > > I know plpar_hcall_norets() does save CR, but it shouldn't need to, that > seems to be historical. aka. no one knows why it does it but it always > has. > > cheers >