EHF: Introduce preempted return code parameter to ehf_allow_ns_preemption()
authorJeenu Viswambharan <jeenu.viswambharan@arm.com>
Mon, 22 Jan 2018 12:29:12 +0000 (12:29 +0000)
committerJeenu Viswambharan <jeenu.viswambharan@arm.com>
Tue, 27 Feb 2018 13:46:33 +0000 (13:46 +0000)
commitaf34cd72ca3b716d8a9800c83b1577e3a39cf41b
tree49d896aee91e6dae2edbcacae0afc3b3b983394d
parent5ff6da948710361dec294f4b5106978501531caf
EHF: Introduce preempted return code parameter to ehf_allow_ns_preemption()

When a Yielding SMC is preempted, it's possible that Non-secure world is
resumed afterwards. In this case, Non-secure execution would find itself
in a state where the SMC has returned. However, the dispatcher might not
get an opportunity to populate the corrected return code for having
been preempted, and therefore the caller of the Yielding SMC cannot
reliably determine whether the SMC had successfully completed or had
been preempted.

To solve this, this patch introduces a new parameter to the
ehf_allow_ns_preemption() API. An SPD, through this parameter, would
provide the expected error code when a Yielding SMC is preempted. EHF
can then populate the specified value in x0 of the Non-secure context so
that the caller of the Yielding SMC correctly identifies the SMC return
as a preemption.

Documentation updates to follow.

Change-Id: Ia9c3f8f03f9d72d81aa235eaae2ee0374b972e1e
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
bl31/ehf.c
include/bl31/ehf.h