|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen staging-4.12] xen/arm64: entry: Check if an SError is pending when receiving a vSError
commit 3236f62595fd3d46648c7a8cf5c60df8468c3f05
Author: Julien Grall <julien.grall@xxxxxxx>
AuthorDate: Thu Oct 31 15:09:11 2019 +0000
Commit: Stefano Stabellini <sstabellini@xxxxxxxxxx>
CommitDate: Wed Nov 27 14:30:18 2019 -0800
xen/arm64: entry: Check if an SError is pending when receiving a vSError
At the moment, when we receive an SError exception from the guest, we
don't check if there are any other pending. For hardening the code, we
should ensure any pending SError are accounted to the guest before
executing any code with SError unmasked.
The recently introduced macro 'guest_vector' could used to generate the
two vectors and therefore take advantage of any change required in the
future.
Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
Release-acked-by: Juergen Gross <jgross@xxxxxxxx>
---
xen/arch/arm/arm64/entry.S | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/xen/arch/arm/arm64/entry.S b/xen/arch/arm/arm64/entry.S
index 402833766b..c22e54b22a 100644
--- a/xen/arch/arm/arm64/entry.S
+++ b/xen/arch/arm/arm64/entry.S
@@ -386,11 +386,7 @@ guest_fiq_invalid:
invalid BAD_FIQ
guest_error:
- entry hyp=0, compat=0
- msr daifclr, #IFLAGS__AI_
- mov x0, sp
- bl do_trap_guest_serror
- exit hyp=0, compat=0
+ guest_vector compat=0, iflags=IFLAGS__AI_, trap=guest_serror
guest_sync_compat:
guest_vector compat=1, iflags=IFLAGS__AI_, trap=guest_sync
@@ -403,11 +399,7 @@ guest_fiq_invalid_compat:
invalid BAD_FIQ
guest_error_compat:
- entry hyp=0, compat=1
- msr daifclr, #IFLAGS__AI_
- mov x0, sp
- bl do_trap_guest_serror
- exit hyp=0, compat=1
+ guest_vector compat=1, iflags=IFLAGS__AI_, trap=guest_serror
ENTRY(return_to_new_vcpu32)
exit hyp=0, compat=1
--
generated by git-patchbot for /home/xen/git/xen.git#staging-4.12
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |