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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 16 Feb 2018 19:22:56 +0000 (20:22 +0100)
commitac63fdb4a2b229bdd7ad8449a88791ad5da5f572
treeccef7fbd816e4bb7e60c6fc009d6d50a19c931c8
parent37dc3e6c117eced753d6ce6cce85535cec3ad013
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: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/arm-smccc.h