Report FAR_EL2's value on injecting EL1 exception

Propagate the value of FAR_EL2 to FAR_EL1 when injecting an
exception, only when the value is defined and known.

Fixes a bug where EL1 resumes running although it cannot
determine the faulting address from FAR_EL1.

Signed-off-by: Fuad Tabba <tabba@google.com>
Change-Id: If6c72b74a89251b2f18d14b96af63dc3adc1b739
diff --git a/src/arch/aarch64/hypervisor/exceptions.S b/src/arch/aarch64/hypervisor/exceptions.S
index beecc64..9e279c2 100644
--- a/src/arch/aarch64/hypervisor/exceptions.S
+++ b/src/arch/aarch64/hypervisor/exceptions.S
@@ -79,8 +79,9 @@
 	sub x18, x18, #0x18
 	cbz x18, system_register_access
 
-	/* Read syndrome register and call C handler. */
+	/* Call C handler passing the syndrome and fault address registers. */
 	mrs x0, esr_el2
+	mrs x1, far_el2
 	bl sync_lower_exception
 
 	/* Switch vCPU if requested by handler. */