arm/arm64: smccc: Implement SMCCC v1.1 inline primitive
authorMarc Zyngier <marc.zyngier@arm.com>
Tue, 6 Feb 2018 17:56:19 +0000 (17:56 +0000)
committerHaibo Chen <haibo.chen@nxp.com>
Thu, 12 Apr 2018 10:46:34 +0000 (18:46 +0800)
commitacecde832e2c6c16280614f13b2983ee282cdf30
tree3e25fedd87fb10ddaf518e55128e05be513fd8ea
parent4dfa7f7269320795b28f22d9688c7446d33dc243
arm/arm64: smccc: Implement SMCCC v1.1 inline primitive

commit f2d3b2e8759a upstream.

One of the major improvement of SMCCC v1.1 is that it only clobbers
the first 4 registers, both on 32 and 64bit. This means that it
becomes very easy to provide an inline version of the SMC call
primitive, and avoid performing a function call to stash the
registers that would otherwise be clobbered by SMCCC v1.0.

Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Alex Shi <alex.shi@linaro.org>
include/linux/arm-smccc.h