• Jeenu Viswambharan's avatar
    EHF: Introduce preempted return code parameter to ehf_allow_ns_preemption() · af34cd72
    Jeenu Viswambharan authored
    
    
    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: default avatarJeenu Viswambharan <jeenu.viswambharan@arm.com>
    af34cd72
ehf.c 15 KB