arch/aarch64: Fix nested interrupt issue
Fixes a bug in interrupt clear handling based on TF-A documentation
for AArch64. Interrupt clear requires writing back the IAR value to
the EOIR register. This change adds a local iar
variable instead
of using current_iar
, ensuring that the correct interrupt ID is
written when clearing the interrupt in case irq_global()
has been
preempted by a higher-priority interrupt.
Background on why IAR needs to be written: Arm standard aarch64 platforms write the id ICC_EOIR0_EL1 or ICC_EOIR1_EL1 system register in case of GICv3 depending on where the API is invoked from, EL3 or S-EL1. This deactivates the corresponding interrupt in the interrupt controller.
Signed-off-by: Ahmed Azeem ahmed.azeem@arm.com Signed-off-by: Rama Krishna Katta ramakrishna.katta@arm.com