fix(ff-a): notification pending interrupt
Currently for S-EL1 partitions, the NPI is injected in two different
moments depending on the type of interrupt:
- For per-vCPU notifications NPI injected at the moment notifications
are set.
- For Global notifications NPI injected at context switch from the NWd
to the receiver SP.
This patch ammends what described above. The injection of the NPI now
happens at handling of FFA_RUN and FFA_MSG_SEND_DIRECT_REQ, when the
vCPU is resumed to running state.
Also, the injection of the NPI is done through the same method/function,
regardless of notifications type. This caters for a better
implementation, as it makes it easier to read and debug (if necessary).
For S-EL0 partitions, the NPI is not used. The S-EL0 partition must be
notified it has pending notifications through an IMPDEF direct messaging
request.
Change-Id: Ib1906c8e5de4be63ca7a7a1cafd25a4675b9b940
Signed-off-by: J-Alves <joao.alves@arm.com>
diff --git a/src/arch/fake/hypervisor/ffa.c b/src/arch/fake/hypervisor/ffa.c
index 27ed45a..916aea8 100644
--- a/src/arch/fake/hypervisor/ffa.c
+++ b/src/arch/fake/hypervisor/ffa.c
@@ -307,11 +307,15 @@
(void)cpu;
}
-void plat_ffa_inject_notification_pending_interrupt_context_switch(
- struct vcpu *next, struct vcpu *current)
+bool plat_ffa_inject_notification_pending_interrupt(
+ struct vcpu_locked target_locked, struct vcpu *current,
+ struct vm_locked receiver_locked)
{
- (void)next;
+ (void)target_locked;
(void)current;
+ (void)receiver_locked;
+
+ return false;
}
void plat_ffa_partition_info_get_forward( // NOLINTNEXTLINE